Create _Py_wchar2char() function, reverse of _Py_char2wchar()
* Use _Py_wchar2char() in _wstat() and _Py_wfopen()
* Document _Py_char2wchar()
diff --git a/Modules/getpath.c b/Modules/getpath.c
index fff502e..faf8b56 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -139,13 +139,16 @@
static int
_wstat(const wchar_t* path, struct stat *buf)
{
- char fname[PATH_MAX];
- size_t res = wcstombs(fname, path, sizeof(fname));
- if (res == (size_t)-1) {
+ int err;
+ char *fname;
+ fname = _Py_wchar2char(path);
+ if (fname == NULL) {
errno = EINVAL;
return -1;
}
- return stat(fname, buf);
+ err = stat(fname, buf);
+ PyMem_Free(fname);
+ return err;
}
#endif