cpython: 13e6d3cb2ecd (original) (raw)

Mercurial > cpython

changeset 71193:13e6d3cb2ecd

Issue #9642: Uniformize the tests on the availability of the mbcs codec Add a new HAVE_MBCS define. [#9642]

Victor Stinner victor.stinner@haypocalc.com
date Mon, 04 Jul 2011 14:23:54 +0200
parents 75b18b10064f
children 4f14050a963f
files Include/unicodeobject.h Misc/NEWS Modules/_codecsmodule.c Modules/timemodule.c Objects/unicodeobject.c Python/bltinmodule.c
diffstat 6 files changed, 22 insertions(+), 15 deletions(-)[+] [-] Include/unicodeobject.h 8 Misc/NEWS 3 Modules/_codecsmodule.c 10 Modules/timemodule.c 2 Objects/unicodeobject.c 12 Python/bltinmodule.c 2

line wrap: on

line diff

--- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -109,6 +109,10 @@ Copyright (c) Corporation for National R

endif

#endif +#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +# define HAVE_MBCS +#endif + #ifdef HAVE_WCHAR_H /* Work around a cosmetic bug in BSDI 4.x wchar.h; thanks to Thomas Wouters */

ifdef _HAVE_BSDI

@@ -1162,7 +1166,7 @@ PyAPI_FUNC(PyObject ) PyUnicode_Transla ); #endif -#ifdef MS_WIN32 +#ifdef HAVE_MBCS / --- MBCS codecs for Windows -------------------------------------------- / @@ -1191,7 +1195,7 @@ PyAPI_FUNC(PyObject) PyUnicode_EncodeMB ); #endif -#endif /* MS_WIN32 / +#endif / HAVE_MBCS / / --- Decimal Encoder ---------------------------------------------------- */

--- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 3.3 Alpha 1? Core and Builtins ----------------- +- Issue #9642: Uniformize the tests on the availability of the mbcs codec, add

--- a/Modules/_codecsmodule.c +++ b/Modules/_codecsmodule.c @@ -588,7 +588,7 @@ charmap_decode(PyObject *self, return codec_tuple(unicode, pbuf.len); } -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS static PyObject * mbcs_decode(PyObject *self, @@ -613,7 +613,7 @@ mbcs_decode(PyObject self, return codec_tuple(decoded, consumed); } -#endif / MS_WINDOWS / +#endif / HAVE_MBCS / / --- Encoder ------------------------------------------------------------ */ @@ -989,7 +989,7 @@ charmap_build(PyObject *self, PyObject * return PyUnicode_BuildEncodingMap(map); } -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS static PyObject * mbcs_encode(PyObject *self, @@ -1014,7 +1014,7 @@ mbcs_encode(PyObject self, return v; } -#endif / MS_WINDOWS / +#endif / HAVE_MBCS / / --- Error handler registry --------------------------------------------- */ @@ -1101,7 +1101,7 @@ static PyMethodDef _codecs_functions[] = {"charmap_decode", charmap_decode, METH_VARARGS}, {"charmap_build", charmap_build, METH_VARARGS}, {"readbuffer_encode", readbuffer_encode, METH_VARARGS}, -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS {"mbcs_encode", mbcs_encode, METH_VARARGS}, {"mbcs_decode", mbcs_decode, METH_VARARGS}, #endif

--- a/Modules/timemodule.c +++ b/Modules/timemodule.c @@ -43,7 +43,7 @@ static long main_thread; #endif /* MS_WINDOWS / #endif / !WATCOMC || QNX */ -#if defined(MS_WINDOWS) +#if defined(HAVE_MBCS)

define TZNAME_ENCODING "mbcs"

#else

define TZNAME_ENCODING "utf-8"

--- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1506,7 +1506,7 @@ PyUnicode_Decode(const char *s, (strcmp(lower, "latin1") == 0) || (strcmp(lower, "iso-8859-1") == 0)) return PyUnicode_DecodeLatin1(s, size, errors); -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS else if (strcmp(lower, "mbcs") == 0) return PyUnicode_DecodeMBCS(s, size, errors); #endif @@ -1644,7 +1644,7 @@ PyUnicode_AsEncodedObject(PyObject *unic PyObject * PyUnicode_EncodeFSDefault(PyObject *unicode) { -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(unicode), PyUnicode_GET_SIZE(unicode), NULL); @@ -1746,7 +1746,7 @@ PyUnicode_AsEncodedString(PyObject *unic return PyUnicode_EncodeLatin1(PyUnicode_AS_UNICODE(unicode), PyUnicode_GET_SIZE(unicode), errors); -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS else if (strcmp(lower, "mbcs") == 0) return PyUnicode_EncodeMBCS(PyUnicode_AS_UNICODE(unicode), PyUnicode_GET_SIZE(unicode), @@ -1848,7 +1848,7 @@ PyUnicode_DecodeFSDefault(const char s) PyObject PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size) { -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS return PyUnicode_DecodeMBCS(s, size, NULL); #elif defined(APPLE) return PyUnicode_DecodeUTF8(s, size, "surrogateescape"); @@ -4942,7 +4942,7 @@ PyUnicode_AsASCIIString(PyObject unicod NULL); } -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS / --- MBCS codecs for Windows -------------------------------------------- */ @@ -5229,7 +5229,7 @@ PyUnicode_AsMBCSString(PyObject unicode #undef NEED_RETRY -#endif / MS_WINDOWS / +#endif / HAVE_MBCS / / --- Character Mapping Codec -------------------------------------------- */

--- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -18,7 +18,7 @@ Don't forget to modify PyUnicode_DecodeFSDefault() if you touch any of the values for Py_FileSystemDefaultEncoding */ -#if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) +#ifdef HAVE_MBCS const char *Py_FileSystemDefaultEncoding = "mbcs"; int Py_HasFileSystemDefaultEncoding = 1; #elif defined(APPLE)