From 91afbb60885d5904dc6cb4d063ae33454507bf71 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 24 Mar 2015 12:16:28 +0100 Subject: Issue #23753: Move _Py_wstat() from Python/fileutils.c to Modules/getpath.c I expected more users of _Py_wstat(), but in practice it's only used by Modules/getpath.c. Move the function because it's not needed on Windows. Windows uses PC/getpathp.c which uses the Win32 API (ex: GetFileAttributesW()) not the POSIX API. --- Modules/getpath.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'Modules/getpath.c') diff --git a/Modules/getpath.c b/Modules/getpath.c index 3564d72afb..429bef3489 100644 --- a/Modules/getpath.c +++ b/Modules/getpath.c @@ -131,6 +131,23 @@ static wchar_t exec_prefix[MAXPATHLEN+1]; static wchar_t progpath[MAXPATHLEN+1]; static wchar_t *module_search_path = NULL; +/* Get file status. Encode the path to the locale encoding. */ + +static int +_Py_wstat(const wchar_t* path, struct stat *buf) +{ + int err; + char *fname; + fname = Py_EncodeLocale(path, NULL); + if (fname == NULL) { + errno = EINVAL; + return -1; + } + err = stat(fname, buf); + PyMem_Free(fname); + return err; +} + static void reduce(wchar_t *dir) { -- cgit v1.2.1