Commit b9a20ad0 authored by Victor Stinner's avatar Victor Stinner

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.
parent 56d6410c
......@@ -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.
......
......@@ -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");
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment