summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@haypocalc.com>2010-10-07 22:09:40 (GMT)
committerVictor Stinner <victor.stinner@haypocalc.com>2010-10-07 22:09:40 (GMT)
commitb306d7594ff0ed5ba666dbb26491a269abfbc9d7 (patch)
tree6c0e7fbba4a7d70e4087d69705922a387115053c
parente7c8083bf1cfaef8a00b171ec2c170fad92974b7 (diff)
downloadcpython-b306d7594ff0ed5ba666dbb26491a269abfbc9d7.zip
cpython-b306d7594ff0ed5ba666dbb26491a269abfbc9d7.tar.gz
cpython-b306d7594ff0ed5ba666dbb26491a269abfbc9d7.tar.bz2
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
-rw-r--r--Include/fileutils.h2
-rw-r--r--Python/fileutils.c15
2 files changed, 8 insertions, 9 deletions
diff --git a/Include/fileutils.h b/Include/fileutils.h
index 2971d9d..9b2d34d 100644
--- a/Include/fileutils.h
+++ b/Include/fileutils.h
@@ -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);
diff --git a/Python/fileutils.c b/Python/fileutils.c
index 0e87860..5d01867 100644
--- a/Python/fileutils.c
+++ b/Python/fileutils.c
@@ -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