diff options
author | Georg Brandl <georg@python.org> | 2008-06-11 18:37:52 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2008-06-11 18:37:52 (GMT) |
commit | 559e5d7f4d1155e95fb6f925c927a263f9196935 (patch) | |
tree | 4688423e81e9ffed7a5b2c87c50b55419e8e885a /Objects/stringlib | |
parent | ea6d58d9d3033436b52e84960b9571525a4f5412 (diff) | |
download | cpython-559e5d7f4d1155e95fb6f925c927a263f9196935.zip cpython-559e5d7f4d1155e95fb6f925c927a263f9196935.tar.gz cpython-559e5d7f4d1155e95fb6f925c927a263f9196935.tar.bz2 |
#2630: Implement PEP 3138.
The repr() of a string now contains printable Unicode characters unescaped.
The new ascii() builtin can be used to get a repr() with only ASCII characters in it.
PEP and patch were written by Atsuo Ishimoto.
Diffstat (limited to 'Objects/stringlib')
-rw-r--r-- | Objects/stringlib/string_format.h | 4 | ||||
-rw-r--r-- | Objects/stringlib/stringdefs.h | 2 | ||||
-rw-r--r-- | Objects/stringlib/unicodedefs.h | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/Objects/stringlib/string_format.h b/Objects/stringlib/string_format.h index 37bd370..3f44e96 100644 --- a/Objects/stringlib/string_format.h +++ b/Objects/stringlib/string_format.h @@ -766,6 +766,10 @@ do_conversion(PyObject *obj, STRINGLIB_CHAR conversion) return PyObject_Repr(obj); case 's': return STRINGLIB_TOSTR(obj); +#if PY_VERSION_HEX >= 0x03000000 + case 'a': + return STRINGLIB_TOASCII(obj); +#endif default: if (conversion > 32 && conversion < 127) { /* It's the ASCII subrange; casting to char is safe diff --git a/Objects/stringlib/stringdefs.h b/Objects/stringlib/stringdefs.h index bdc3a29..946de05 100644 --- a/Objects/stringlib/stringdefs.h +++ b/Objects/stringlib/stringdefs.h @@ -24,5 +24,5 @@ #define STRINGLIB_CMP memcmp #define STRINGLIB_TOSTR PyObject_Str #define STRINGLIB_GROUPING _PyBytes_InsertThousandsGrouping - +#define STRINGLIB_TOASCII PyObject_Repr #endif /* !STRINGLIB_STRINGDEFS_H */ diff --git a/Objects/stringlib/unicodedefs.h b/Objects/stringlib/unicodedefs.h index 8f87fe0..d579c1c 100644 --- a/Objects/stringlib/unicodedefs.h +++ b/Objects/stringlib/unicodedefs.h @@ -25,8 +25,10 @@ #if PY_VERSION_HEX < 0x03000000 #define STRINGLIB_TOSTR PyObject_Unicode +#define STRINGLIB_TOASCII PyObject_Repr #else #define STRINGLIB_TOSTR PyObject_Str +#define STRINGLIB_TOASCII PyObject_ASCII #endif #define STRINGLIB_WANT_CONTAINS_OBJ 1 |