Mercurial > cpython-lru_cache-weakref
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 67162:fc834b323f26 | 67163:5605f6920b63 |
|---|---|
| 513 PyObject *PyErr_SetExcFromWindowsErrWithFilename( | 513 PyObject *PyErr_SetExcFromWindowsErrWithFilename( |
| 514 PyObject *exc, | 514 PyObject *exc, |
| 515 int ierr, | 515 int ierr, |
| 516 const char *filename) | 516 const char *filename) |
| 517 { | 517 { |
| 518 PyObject *name = filename ? PyUnicode_FromString(filename) : NULL; | 518 PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL; |
| 519 PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObject(exc, | 519 PyObject *ret = PyErr_SetExcFromWindowsErrWithFilenameObject(exc, |
| 520 ierr, | 520 ierr, |
| 521 name); | 521 name); |
| 522 Py_XDECREF(name); | 522 Py_XDECREF(name); |
| 523 return ret; | 523 return ret; |
| 550 } | 550 } |
| 551 PyObject *PyErr_SetFromWindowsErrWithFilename( | 551 PyObject *PyErr_SetFromWindowsErrWithFilename( |
| 552 int ierr, | 552 int ierr, |
| 553 const char *filename) | 553 const char *filename) |
| 554 { | 554 { |
| 555 PyObject *name = filename ? PyUnicode_FromString(filename) : NULL; | 555 PyObject *name = filename ? PyUnicode_DecodeFSDefault(filename) : NULL; |
| 556 PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject( | 556 PyObject *result = PyErr_SetExcFromWindowsErrWithFilenameObject( |
| 557 PyExc_WindowsError, | 557 PyExc_WindowsError, |
| 558 ierr, name); | 558 ierr, name); |
| 559 Py_XDECREF(name); | 559 Py_XDECREF(name); |
| 560 return result; | 560 return result; |
