summaryrefslogtreecommitdiff
path: root/Objects/stringobject.c
diff options
context:
space:
mode:
authorMartin v. Löwis <martin@v.loewis.de>2002-09-09 06:17:05 +0000
committerMartin v. Löwis <martin@v.loewis.de>2002-09-09 06:17:05 +0000
commit8f6d2253a0885372581f2e889a824d0cf2516bb0 (patch)
tree51a12e986f3fd1497880af9893d3bca09d984272 /Objects/stringobject.c
parent48c7044a0132a7808007f12c9d4f5d88c25666ef (diff)
downloadcpython-8f6d2253a0885372581f2e889a824d0cf2516bb0.tar.gz
Fix escaping of non-ASCII characters.
Diffstat (limited to 'Objects/stringobject.c')
-rw-r--r--Objects/stringobject.c6
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)