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.
This commit is contained in:
Victor Stinner 2015-03-24 12:16:28 +01:00
parent 10dc48497e
commit 91afbb6088
3 changed files with 17 additions and 21 deletions

View File

@ -15,10 +15,6 @@ PyAPI_FUNC(char*) Py_EncodeLocale(
const wchar_t *text,
size_t *error_pos);
PyAPI_FUNC(int) _Py_wstat(
const wchar_t* path,
struct stat *buf);
#ifndef Py_LIMITED_API
#ifdef MS_WINDOWS

View File

@ -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)
{

View File

@ -520,23 +520,6 @@ Py_EncodeLocale(const wchar_t *text, size_t *error_pos)
}
/* Get file status. Encode the path to the locale encoding. */
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;
}
#ifdef MS_WINDOWS
static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */