summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
Diffstat (limited to 'Python')
-rw-r--r--Python/compile.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/Python/compile.c b/Python/compile.c
index d41867f..cdb72ac 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1130,19 +1130,12 @@ parsestr(struct compiling *com, char *s)
int first = *s;
int quote = first;
int rawmode = 0;
-#ifdef Py_USING_UNICODE
int unicode = 0;
-#endif
+
if (isalpha(quote) || quote == '_') {
if (quote == 'u' || quote == 'U') {
-#ifdef Py_USING_UNICODE
quote = *++s;
unicode = 1;
-#else
- com_error(com, PyExc_SyntaxError,
- "Unicode literals not supported in this Python");
- return NULL;
-#endif
}
if (quote == 'r' || quote == 'R') {
quote = *++s;
@@ -1250,6 +1243,18 @@ parsestr(struct compiling *com, char *s)
com_error(com, PyExc_ValueError,
"invalid \\x escape");
return NULL;
+#ifndef Py_USING_UNICODE
+ case 'u':
+ case 'U':
+ case 'N':
+ if (unicode) {
+ Py_DECREF(v);
+ com_error(com, PyExc_ValueError,
+ "Unicode escapes not legal "
+ "when Unicode disabled");
+ return NULL;
+ }
+#endif
default:
*p++ = '\\';
*p++ = s[-1];