From ae6265f8d06dbec7d08c73ca23dad0f040d09b8e Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 15 May 2010 16:27:27 +0000 Subject: Issue #8715: Create PyUnicode_EncodeFSDefault() function: Encode a Unicode object to Py_FileSystemDefaultEncoding with the "surrogateescape" error handler, return a bytes object. If Py_FileSystemDefaultEncoding is not set, fall back to UTF-8. --- Python/import.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'Python') diff --git a/Python/import.c b/Python/import.c index 923888d5df..d23eb6a941 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1633,8 +1633,7 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf, if (!v) return NULL; if (PyUnicode_Check(v)) { - v = PyUnicode_AsEncodedString(v, - Py_FileSystemDefaultEncoding, NULL); + v = PyUnicode_EncodeFSDefault(v); if (v == NULL) return NULL; } @@ -2752,14 +2751,7 @@ ensure_fromlist(PyObject *mod, PyObject *fromlist, char *buf, Py_ssize_t buflen, char *subname; PyObject *submod; char *p; - if (!Py_FileSystemDefaultEncoding) { - item8 = PyUnicode_EncodeASCII(PyUnicode_AsUnicode(item), - PyUnicode_GetSize(item), - NULL); - } else { - item8 = PyUnicode_AsEncodedString(item, - Py_FileSystemDefaultEncoding, NULL); - } + item8 = PyUnicode_EncodeFSDefault(item); if (!item8) { PyErr_SetString(PyExc_ValueError, "Cannot encode path item"); return 0; -- cgit v1.2.1