Fix PEP 263 code --without-unicode. Fixes #591943.
diff --git a/Python/compile.c b/Python/compile.c
index 512b5a3..b671937 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1185,6 +1185,9 @@
static PyObject *
decode_utf8(char **sPtr, char *end, char* encoding)
{
+#ifndef Py_USING_UNICODE
+ abort();
+#else
PyObject *u, *v;
char *s, *t;
t = s = *sPtr;
@@ -1197,6 +1200,7 @@
v = PyUnicode_AsEncodedString(u, encoding, NULL);
Py_DECREF(u);
return v;
+#endif
}
static PyObject *
@@ -1312,12 +1316,18 @@
strcmp(encoding, "iso-8859-1") != 0);
if (rawmode || strchr(s, '\\') == NULL) {
if (need_encoding) {
+#ifndef Py_USING_UNICODE
+ /* This should not happen - we never see any other
+ encoding. */
+ abort();
+#else
PyObject* u = PyUnicode_DecodeUTF8(s, len, NULL);
if (u == NULL)
return NULL;
v = PyUnicode_AsEncodedString(u, encoding, NULL);
Py_DECREF(u);
return v;
+#endif
} else {
return PyString_FromStringAndSize(s, len);
}