Fix PEP 293 related problems with --disable-unicode builds
reported by Michael Hudson in
http://mail.python.org/pipermail/python-dev/2002-November/030299.html
diff --git a/Python/codecs.c b/Python/codecs.c
index 1424bb5..9302a3d 100644
--- a/Python/codecs.c
+++ b/Python/codecs.c
@@ -486,6 +486,7 @@
}
+#ifdef Py_USING_UNICODE
PyObject *PyCodec_IgnoreErrors(PyObject *exc)
{
int end;
@@ -728,6 +729,7 @@
return NULL;
}
}
+#endif
static PyObject *strict_errors(PyObject *self, PyObject *exc)
{
@@ -735,6 +737,7 @@
}
+#ifdef Py_USING_UNICODE
static PyObject *ignore_errors(PyObject *self, PyObject *exc)
{
return PyCodec_IgnoreErrors(exc);
@@ -757,6 +760,7 @@
{
return PyCodec_BackslashReplaceErrors(exc);
}
+#endif
void _PyCodecRegistry_Init(void)
@@ -774,6 +778,7 @@
METH_O
}
},
+#ifdef Py_USING_UNICODE
{
"ignore",
{
@@ -806,6 +811,7 @@
METH_O
}
}
+#endif
};
if (_PyCodec_SearchPath == NULL)
_PyCodec_SearchPath = PyList_New(0);
diff --git a/Python/exceptions.c b/Python/exceptions.c
index e4a6880..015d45a 100644
--- a/Python/exceptions.c
+++ b/Python/exceptions.c
@@ -892,6 +892,7 @@
};
+#ifdef Py_USING_UNICODE
static
int get_int(PyObject *exc, const char *name, int *value)
{
@@ -1469,6 +1470,7 @@
return PyObject_CallFunction(PyExc_UnicodeTranslateError, "u#iis",
object, length, start, end, reason);
}
+#endif
@@ -1496,11 +1498,13 @@
PyDoc_STRVAR(UnicodeError__doc__, "Unicode related error.");
+#ifdef Py_USING_UNICODE
PyDoc_STRVAR(UnicodeEncodeError__doc__, "Unicode encoding error.");
PyDoc_STRVAR(UnicodeDecodeError__doc__, "Unicode decoding error.");
PyDoc_STRVAR(UnicodeTranslateError__doc__, "Unicode translation error.");
+#endif
PyDoc_STRVAR(SystemError__doc__,
"Internal error in the Python interpreter.\n\
@@ -1675,12 +1679,14 @@
FloatingPointError__doc__},
{"ValueError", &PyExc_ValueError, 0, ValueError__doc__},
{"UnicodeError", &PyExc_UnicodeError, &PyExc_ValueError, UnicodeError__doc__},
+#ifdef Py_USING_UNICODE
{"UnicodeEncodeError", &PyExc_UnicodeEncodeError, &PyExc_UnicodeError,
UnicodeEncodeError__doc__, UnicodeEncodeError_methods},
{"UnicodeDecodeError", &PyExc_UnicodeDecodeError, &PyExc_UnicodeError,
UnicodeDecodeError__doc__, UnicodeDecodeError_methods},
{"UnicodeTranslateError", &PyExc_UnicodeTranslateError, &PyExc_UnicodeError,
UnicodeTranslateError__doc__, UnicodeTranslateError_methods},
+#endif
{"ReferenceError", &PyExc_ReferenceError, 0, ReferenceError__doc__},
{"SystemError", &PyExc_SystemError, 0, SystemError__doc__},
{"MemoryError", &PyExc_MemoryError, 0, MemoryError__doc__},