Fix PEP 293 related problems with --disable-unicode builds
authorWalter Dörwald <walter@livinglogic.de>
Thu, 21 Nov 2002 20:08:33 +0000 (20:08 +0000)
committerWalter Dörwald <walter@livinglogic.de>
Thu, 21 Nov 2002 20:08:33 +0000 (20:08 +0000)
reported by Michael Hudson in
http://mail.python.org/pipermail/python-dev/2002-November/030299.html

Include/pyerrors.h
Python/codecs.c
Python/exceptions.c

index 18dee2876e6eb63c11a604e800d5dd12fa37f178..868584991d7210acbba7434e2eb8033461feaec6 100644 (file)
@@ -138,8 +138,10 @@ PyAPI_FUNC(void) PyErr_SetInterrupt(void);
 PyAPI_FUNC(void) PyErr_SyntaxLocation(char *, int);
 PyAPI_FUNC(PyObject *) PyErr_ProgramText(char *, int);
 
+#ifdef Py_USING_UNICODE
 /* The following functions are used to create and modify unicode
    exceptions from C */
+
 /* create a UnicodeDecodeError object */
 PyAPI_FUNC(PyObject *) PyUnicodeDecodeError_Create(
        const char *, const char *, int, int, int, const char *);
@@ -198,6 +200,7 @@ PyAPI_FUNC(int) PyUnicodeDecodeError_SetReason(
        PyObject *, const char *);
 PyAPI_FUNC(int) PyUnicodeTranslateError_SetReason(
        PyObject *, const char *);
+#endif
 
 
 /* These APIs aren't really part of the error implementation, but
index 1424bb5b709487e8fa71078524b4be33612d7fbb..9302a3d8707696222049e75a640531a8e407be66 100644 (file)
@@ -486,6 +486,7 @@ PyObject *PyCodec_StrictErrors(PyObject *exc)
 }
 
 
+#ifdef Py_USING_UNICODE
 PyObject *PyCodec_IgnoreErrors(PyObject *exc)
 {
     int end;
@@ -728,6 +729,7 @@ PyObject *PyCodec_BackslashReplaceErrors(PyObject *exc)
        return NULL;
     }
 }
+#endif
 
 static PyObject *strict_errors(PyObject *self, PyObject *exc)
 {
@@ -735,6 +737,7 @@ static PyObject *strict_errors(PyObject *self, PyObject *exc)
 }
 
 
+#ifdef Py_USING_UNICODE
 static PyObject *ignore_errors(PyObject *self, PyObject *exc)
 {
     return PyCodec_IgnoreErrors(exc);
@@ -757,6 +760,7 @@ static PyObject *backslashreplace_errors(PyObject *self, PyObject *exc)
 {
     return PyCodec_BackslashReplaceErrors(exc);
 }
+#endif
 
 
 void _PyCodecRegistry_Init(void)
@@ -774,6 +778,7 @@ void _PyCodecRegistry_Init(void)
                METH_O
            }
        },
+#ifdef Py_USING_UNICODE
        {
            "ignore",
            {
@@ -806,6 +811,7 @@ void _PyCodecRegistry_Init(void)
                METH_O
            }
        }
+#endif
     };
     if (_PyCodec_SearchPath == NULL)
        _PyCodec_SearchPath = PyList_New(0);
index e4a68803eeb9730181e1a1830f15030401186c52..015d45a7586584d50375d81699727cef061a4f38 100644 (file)
@@ -892,6 +892,7 @@ static PyMethodDef KeyError_methods[] = {
 };
 
 
+#ifdef Py_USING_UNICODE
 static
 int get_int(PyObject *exc, const char *name, int *value)
 {
@@ -1469,6 +1470,7 @@ PyObject * PyUnicodeTranslateError_Create(
     return PyObject_CallFunction(PyExc_UnicodeTranslateError, "u#iis",
        object, length, start, end, reason);
 }
+#endif
 
 
 \f
@@ -1496,11 +1498,13 @@ PyDoc_STRVAR(ValueError__doc__,
 
 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 @@ static struct {
   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__},