diff Python/errors.c @ 67163:5605f6920b63

Issue #10780: PyErr_SetFromWindowsErrWithFilename() and PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the filesystem encoding instead of UTF-8.
author Victor Stinner <victor.stinner@haypocalc.com>
date Tue, 28 Dec 2010 00:28:21 +0000
parents 1b7a0385c65f
children 3c9232a684ae
line wrap: on
line diff
--- a/Python/errors.c	Mon Dec 27 20:12:13 2010 +0000
+++ b/Python/errors.c	Tue Dec 28 00:28:21 2010 +0000
@@ -515,7 +515,7 @@
     int ierr,
     const char *filename)
 {
-    PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
+    PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
     PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObject(exc,
                                                                  ierr,
                                                                  name);
@@ -552,7 +552,7 @@
     int ierr,
     const char *filename)
 {
-    PyObject *name = filename ? PyUnicode_FromString(filename) : NULL;
+    PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL;
     PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject(
                                                   PyExc_WindowsError,
                                                   ierr, name);