mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
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:
parent
10dc48497e
commit
91afbb6088
3 changed files with 17 additions and 21 deletions
|
@ -15,10 +15,6 @@ PyAPI_FUNC(char*) Py_EncodeLocale(
|
||||||
const wchar_t *text,
|
const wchar_t *text,
|
||||||
size_t *error_pos);
|
size_t *error_pos);
|
||||||
|
|
||||||
PyAPI_FUNC(int) _Py_wstat(
|
|
||||||
const wchar_t* path,
|
|
||||||
struct stat *buf);
|
|
||||||
|
|
||||||
#ifndef Py_LIMITED_API
|
#ifndef Py_LIMITED_API
|
||||||
|
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
|
|
|
@ -131,6 +131,23 @@ static wchar_t exec_prefix[MAXPATHLEN+1];
|
||||||
static wchar_t progpath[MAXPATHLEN+1];
|
static wchar_t progpath[MAXPATHLEN+1];
|
||||||
static wchar_t *module_search_path = NULL;
|
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
|
static void
|
||||||
reduce(wchar_t *dir)
|
reduce(wchar_t *dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
#ifdef MS_WINDOWS
|
||||||
static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
|
static __int64 secs_between_epochs = 11644473600; /* Seconds between 1.1.1601 and 1.1.1970 */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue