diff options
author | Ka-Ping Yee <ping@zesty.ca> | 2001-01-24 17:19:08 (GMT) |
---|---|---|
committer | Ka-Ping Yee <ping@zesty.ca> | 2001-01-24 17:19:08 (GMT) |
commit | fa004ad36c86f4af406cfa3a84ec8b6cb391e6dd (patch) | |
tree | 61544d6bc2f118d4187cfc4887711f728d0fb7cf /Objects/stringobject.c | |
parent | 726b78ecb8660278399abaf36f98dec56ecf1271 (diff) | |
download | cpython-fa004ad36c86f4af406cfa3a84ec8b6cb391e6dd.zip cpython-fa004ad36c86f4af406cfa3a84ec8b6cb391e6dd.tar.gz cpython-fa004ad36c86f4af406cfa3a84ec8b6cb391e6dd.tar.bz2 |
Show '\011', '\012', and '\015' as '\t', '\n', '\r' in strings.
Switch from octal escapes to hex escapes for other nonprintable characters.
Diffstat (limited to 'Objects/stringobject.c')
-rw-r--r-- | Objects/stringobject.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/Objects/stringobject.c b/Objects/stringobject.c index df3ab49..9cf64ba 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -335,8 +335,14 @@ string_print(PyStringObject *op, FILE *fp, int flags) c = op->ob_sval[i]; if (c == quote || c == '\\') fprintf(fp, "\\%c", c); - else if (c < ' ' || c >= 0177) - fprintf(fp, "\\%03o", c & 0377); + else if (c == '\t') + fprintf(fp, "\\t"); + else if (c == '\n') + fprintf(fp, "\\n"); + else if (c == '\r') + fprintf(fp, "\\r"); + else if (c < ' ' || c >= 0x7f) + fprintf(fp, "\\x%02x", c & 0xff); else fputc(c, fp); } @@ -374,10 +380,15 @@ string_repr(register PyStringObject *op) c = op->ob_sval[i]; if (c == quote || c == '\\') *p++ = '\\', *p++ = c; - else if (c < ' ' || c >= 0177) { - sprintf(p, "\\%03o", c & 0377); - while (*p != '\0') - p++; + else if (c == '\t') + *p++ = '\\', *p++ = 't'; + else if (c == '\n') + *p++ = '\\', *p++ = 'n'; + else if (c == '\r') + *p++ = '\\', *p++ = 'r'; + else if (c < ' ' || c >= 0x7f) { + sprintf(p, "\\x%02x", c & 0xff); + p += 4; } else *p++ = c; |