diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-04-30 16:37:52 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-04-30 16:37:52 (GMT) |
commit | b9a20ad036ea0e4b8dd2f57158375d5138dd0663 (patch) | |
tree | 35abb81f2c0c83526901f24af0119ab0c4a315a1 | |
parent | 56d6410c2dfd60c109de6d3a59dab25d29dda9ce (diff) | |
download | cpython-b9a20ad036ea0e4b8dd2f57158375d5138dd0663.zip cpython-b9a20ad036ea0e4b8dd2f57158375d5138dd0663.tar.gz cpython-b9a20ad036ea0e4b8dd2f57158375d5138dd0663.tar.bz2 |
PyUnicode_DecodeFSDefaultAndSize() uses surrogateescape error handler
This function is only used to decode Python module filenames, but Python
doesn't support surrogates in modules filenames yet. So nobody noticed this
minor bug.
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 8 |
2 files changed, 6 insertions, 4 deletions
@@ -12,6 +12,8 @@ What's New in Python 3.2 Alpha 1? Core and Builtins ----------------- +- PyUnicode_DecodeFSDefaultAndSize() uses surrogateescape error handler + - Issue #8419: Prevent the dict constructor from accepting non-string keyword arguments. diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 369306e..23b322f 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1600,19 +1600,19 @@ PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size) if (Py_FileSystemDefaultEncoding) { #if defined(MS_WINDOWS) && defined(HAVE_USABLE_WCHAR_T) if (strcmp(Py_FileSystemDefaultEncoding, "mbcs") == 0) { - return PyUnicode_DecodeMBCS(s, size, "replace"); + return PyUnicode_DecodeMBCS(s, size, "surrogateescape"); } #elif defined(__APPLE__) if (strcmp(Py_FileSystemDefaultEncoding, "utf-8") == 0) { - return PyUnicode_DecodeUTF8(s, size, "replace"); + return PyUnicode_DecodeUTF8(s, size, "surrogateescape"); } #endif return PyUnicode_Decode(s, size, Py_FileSystemDefaultEncoding, - "replace"); + "surrogateescape"); } else { - return PyUnicode_DecodeUTF8(s, size, "replace"); + return PyUnicode_DecodeUTF8(s, size, "surrogateescape"); } } |