Fix fileutils for Windows
* Don't define _Py_wstat() on Windows, Windows has its own _wstat() function with a different API (the stat buffer has another type) * Include windows.h
This commit is contained in:
parent
e7c8083bf1
commit
b306d7594f
|
@ -11,7 +11,7 @@ PyAPI_FUNC(wchar_t *) _Py_char2wchar(
|
|||
PyAPI_FUNC(char*) _Py_wchar2char(
|
||||
const wchar_t *text);
|
||||
|
||||
#if defined(MS_WINDOWS) || defined(HAVE_STAT)
|
||||
#if defined(HAVE_STAT) && !defined(MS_WINDOWS)
|
||||
PyAPI_FUNC(int) _Py_wstat(
|
||||
const wchar_t* path,
|
||||
struct stat *buf);
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
#include "Python.h"
|
||||
#ifdef MS_WINDOWS
|
||||
# include <windows.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STAT
|
||||
|
||||
|
@ -183,10 +186,6 @@ _Py_wchar2char(const wchar_t *text)
|
|||
return result;
|
||||
}
|
||||
|
||||
#if defined(MS_WINDOWS) || defined(HAVE_STAT)
|
||||
int
|
||||
_Py_wstat(const wchar_t* path, struct stat *buf)
|
||||
{
|
||||
/* In principle, this should use HAVE__WSTAT, and _wstat
|
||||
should be detected by autoconf. However, no current
|
||||
POSIX system provides that function, so testing for
|
||||
|
@ -194,9 +193,10 @@ _Py_wstat(const wchar_t* path, struct stat *buf)
|
|||
Not sure whether the MS_WINDOWS guards are necessary:
|
||||
perhaps for cygwin/mingw builds?
|
||||
*/
|
||||
#ifdef MS_WINDOWS
|
||||
return _wstat(path, buf);
|
||||
#else
|
||||
#if defined(HAVE_STAT) && !defined(MS_WINDOWS)
|
||||
int
|
||||
_Py_wstat(const wchar_t* path, struct stat *buf)
|
||||
{
|
||||
int err;
|
||||
char *fname;
|
||||
fname = _Py_wchar2char(path);
|
||||
|
@ -207,7 +207,6 @@ _Py_wstat(const wchar_t* path, struct stat *buf)
|
|||
err = stat(fname, buf);
|
||||
PyMem_Free(fname);
|
||||
return err;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in New Issue