diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2002-09-09 06:17:05 +0000 |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2002-09-09 06:17:05 +0000 |
commit | 8f6d2253a0885372581f2e889a824d0cf2516bb0 (patch) | |
tree | 51a12e986f3fd1497880af9893d3bca09d984272 /Objects/stringobject.c | |
parent | 48c7044a0132a7808007f12c9d4f5d88c25666ef (diff) | |
download | cpython-8f6d2253a0885372581f2e889a824d0cf2516bb0.tar.gz |
Fix escaping of non-ASCII characters.
Diffstat (limited to 'Objects/stringobject.c')
-rw-r--r-- | Objects/stringobject.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c index dd38ee3c85..c090e9b2d6 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -541,6 +541,7 @@ PyObject *PyString_DecodeEscape(const char *s, end = s + len; while (s < end) { if (*s != '\\') { + non_esc: #ifdef Py_USING_UNICODE if (recode_encoding && (*s & 0x80)) { PyObject *u, *w; @@ -656,8 +657,9 @@ PyObject *PyString_DecodeEscape(const char *s, #endif default: *p++ = '\\'; - *p++ = s[-1]; - break; + s--; + goto non_esc; /* an arbitry number of unescaped + UTF-8 bytes may follow. */ } } if (p-buf < newlen) |