mirror of
https://github.com/python/cpython.git
synced 2025-07-09 20:35:26 +00:00
bpo-35890 : Fix some API calling consistency (GH-11742)
Unicode version of Windows APIs are used in places, but not for GetVersionEx in Python/sysmodule.c The wcstok_s is called on Windows in Modules/main.c and PC/launcher.c, but not in Python/pathconfig.c
This commit is contained in:
parent
4c70d9f79c
commit
8ebc6451f3
3 changed files with 13 additions and 6 deletions
|
@ -1126,7 +1126,7 @@ sys_getwindowsversion_impl(PyObject *module)
|
|||
{
|
||||
PyObject *version;
|
||||
int pos = 0;
|
||||
OSVERSIONINFOEX ver;
|
||||
OSVERSIONINFOEXW ver;
|
||||
DWORD realMajor, realMinor, realBuild;
|
||||
HANDLE hKernel32;
|
||||
wchar_t kernel32_path[MAX_PATH];
|
||||
|
@ -1134,7 +1134,7 @@ sys_getwindowsversion_impl(PyObject *module)
|
|||
DWORD verblock_size;
|
||||
|
||||
ver.dwOSVersionInfoSize = sizeof(ver);
|
||||
if (!GetVersionEx((OSVERSIONINFO*) &ver))
|
||||
if (!GetVersionExW((OSVERSIONINFOW*) &ver))
|
||||
return PyErr_SetFromWindowsErr(0);
|
||||
|
||||
version = PyStructSequence_New(&WindowsVersionType);
|
||||
|
@ -1145,7 +1145,7 @@ sys_getwindowsversion_impl(PyObject *module)
|
|||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwMinorVersion));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwBuildNumber));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.dwPlatformId));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyUnicode_FromString(ver.szCSDVersion));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyUnicode_FromWideChar(ver.szCSDVersion, -1));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMajor));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wServicePackMinor));
|
||||
PyStructSequence_SET_ITEM(version, pos++, PyLong_FromLong(ver.wSuiteMask));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue