bpo-36935: Remove usage of the deprecated PyErr_SetFromWindowsErrWithUnicodeFilename() (GH-13355)
In e895de3e7f3cc2f7213b87621cfe9812ea4343f0, the
deprecated function PyErr_SetFromWindowsErrWithUnicodeFilename() was
added in two functions in Modules/_winapi.c. This function was
deprecated in 3.3.
diff --git a/Modules/_winapi.c b/Modules/_winapi.c
index 1317fc9..e9dcec6 100644
--- a/Modules/_winapi.c
+++ b/Modules/_winapi.c
@@ -508,7 +508,9 @@
Py_END_ALLOW_THREADS
if (handle == NULL) {
- PyErr_SetFromWindowsErrWithUnicodeFilename(0, name);
+ PyObject *temp = PyUnicode_FromWideChar(name, -1);
+ PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
+ Py_XDECREF(temp);
handle = INVALID_HANDLE_VALUE;
}
@@ -1405,7 +1407,9 @@
Py_END_ALLOW_THREADS
if (handle == NULL) {
- PyErr_SetFromWindowsErrWithUnicodeFilename(0, name);
+ PyObject *temp = PyUnicode_FromWideChar(name, -1);
+ PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp);
+ Py_XDECREF(temp);
handle = INVALID_HANDLE_VALUE;
}