From: Guido van Rossum Date: Tue, 28 May 2002 18:47:29 +0000 (+0000) Subject: Accept u"..." literals even when Unicode is disabled. But these X-Git-Tag: v2.3c1~5576 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=05459c5e5ece64ba8da62455970d1c1479011ff7;p=python Accept u"..." literals even when Unicode is disabled. But these literals must not contain \u, \U or \N escapes. (XXX Should they also not contain non-ASCII characters?) --- diff --git a/Python/compile.c b/Python/compile.c index d41867f7cf..cdb72acf84 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];