diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2005-03-08 15:05:18 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2005-03-08 15:05:18 (GMT) |
commit | ad80c6bb2afa6d46fc19104127d7b02f8a5e2169 (patch) | |
tree | 3e1a47152e5f36929f0730c70604b904eb6e9f99 | |
parent | 6349e8956774f675eb10a81d3498eb613ebb397f (diff) | |
download | cpython-ad80c6bb2afa6d46fc19104127d7b02f8a5e2169.zip cpython-ad80c6bb2afa6d46fc19104127d7b02f8a5e2169.tar.gz cpython-ad80c6bb2afa6d46fc19104127d7b02f8a5e2169.tar.bz2 |
Build with --disable-unicode again. Fixes #1158607.
-rw-r--r-- | Lib/codecs.py | 18 | ||||
-rw-r--r-- | Lib/test/test_support.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Modules/_codecsmodule.c | 14 | ||||
-rw-r--r-- | Modules/_tkinter.c | 4 | ||||
-rw-r--r-- | setup.py | 11 |
6 files changed, 39 insertions, 12 deletions
diff --git a/Lib/codecs.py b/Lib/codecs.py index b283925..b4103fb 100644 --- a/Lib/codecs.py +++ b/Lib/codecs.py @@ -720,11 +720,19 @@ def make_encoding_map(decoding_map): ### error handlers -strict_errors = lookup_error("strict") -ignore_errors = lookup_error("ignore") -replace_errors = lookup_error("replace") -xmlcharrefreplace_errors = lookup_error("xmlcharrefreplace") -backslashreplace_errors = lookup_error("backslashreplace") +try: + strict_errors = lookup_error("strict") + ignore_errors = lookup_error("ignore") + replace_errors = lookup_error("replace") + xmlcharrefreplace_errors = lookup_error("xmlcharrefreplace") + backslashreplace_errors = lookup_error("backslashreplace") +except LookupError: + # In --disable-unicode builds, these error handler are missing + strict_errors = None + ignore_errors = None + replace_errors = None + xmlcharrefreplace_errors = None + backslashreplace_errors = None # Tell modulefinder that using codecs probably needs the encodings # package diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py index 485e9e0..a296caf 100644 --- a/Lib/test/test_support.py +++ b/Lib/test/test_support.py @@ -144,7 +144,7 @@ else: TESTFN_UNICODE_UNENCODEABLE = None else: # Japanese characters (I think - from bug 846133) - TESTFN_UNICODE_UNENCODEABLE = u"@test-\u5171\u6709\u3055\u308c\u308b" + TESTFN_UNICODE_UNENCODEABLE = eval('u"@test-\u5171\u6709\u3055\u308c\u308b"') try: # XXX - Note - should be using TESTFN_ENCODING here - but for # Windows, "mbcs" currently always operates as if in @@ -96,6 +96,8 @@ Library Build ----- +- Bug #1158607: Build with --disable-unicode again. + - term.h is now properly detected again. - Check for tzset no longer dependent on tm->tm_zone to exist in the struct diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c index ccad827..a6c42b1 100644 --- a/Modules/_codecsmodule.c +++ b/Modules/_codecsmodule.c @@ -104,8 +104,15 @@ codec_encode(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "O|ss:encode", &v, &encoding, &errors)) return NULL; +#ifdef Py_USING_UNICODE if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); +#else + if (encoding == NULL) { + PyErr_SetString(PyExc_ValueError, "no encoding specified"); + return NULL; + } +#endif /* Encode via the codec registry */ v = PyCodec_Encode(v, encoding, errors); @@ -137,8 +144,15 @@ codec_decode(PyObject *self, PyObject *args) if (!PyArg_ParseTuple(args, "O|ss:decode", &v, &encoding, &errors)) return NULL; +#ifdef Py_USING_UNICODE if (encoding == NULL) encoding = PyUnicode_GetDefaultEncoding(); +#else + if (encoding == NULL) { + PyErr_SetString(PyExc_ValueError, "no encoding specified"); + return NULL; + } +#endif /* Decode via the codec registry */ v = PyCodec_Decode(v, encoding, errors); diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 76c2a44..632f3d6 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -838,8 +838,10 @@ static PyGetSetDef PyTclObject_getsetlist[] = { }; static PyMethodDef PyTclObject_methods[] = { +#ifdef Py_USING_UNICODE {"__unicode__", (PyCFunction)PyTclObject_unicode, METH_NOARGS, PyTclObject_unicode__doc__}, +#endif {0} }; @@ -991,7 +993,7 @@ FromObj(PyObject* tkapp, Tcl_Obj *value) } } #else - res = PyString_FromStringAndSize(value->bytes, value->length); + result = PyString_FromStringAndSize(value->bytes, value->length); #endif return result; } @@ -770,11 +770,12 @@ class PyBuildExt(build_ext): )) # Hye-Shik Chang's CJKCodecs modules. - exts.append(Extension('_multibytecodec', - ['cjkcodecs/multibytecodec.c'])) - for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): - exts.append(Extension('_codecs_' + loc, - ['cjkcodecs/_codecs_%s.c' % loc])) + if have_unicode: + exts.append(Extension('_multibytecodec', + ['cjkcodecs/multibytecodec.c'])) + for loc in ('kr', 'jp', 'cn', 'tw', 'hk', 'iso2022'): + exts.append(Extension('_codecs_' + loc, + ['cjkcodecs/_codecs_%s.c' % loc])) # Dynamic loading module if sys.maxint == 0x7fffffff: |