Files
MINGW-packages/mingw-w64-python3.10/0133-PC-launcher.c-Use-function-available-in-original-msv.patch
2022-03-18 21:11:05 +05:30

75 lines
2.6 KiB
Diff

From 1fb7e56d33a4e9813b67a66995baad3bf16b7320 Mon Sep 17 00:00:00 2001
From: Naveen M K <naveen521kk@gmail.com>
Date: Tue, 8 Mar 2022 21:27:36 +0530
Subject: [PATCH 133/N] PC/launcher.c: Use function available in original
msvcrt.dll
_wdupenv_s -> _wgetenv_s
fread_s -> fread
Signed-off-by: Naveen M K <naveen521kk@gmail.com>
---
PC/launcher.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/PC/launcher.c b/PC/launcher.c
index 734e753..b8dea55 100644
--- a/PC/launcher.c
+++ b/PC/launcher.c
@@ -925,7 +925,7 @@ static COMMAND path_command;
static COMMAND * find_on_path(wchar_t * name)
{
wchar_t * pathext;
- size_t varsize;
+ size_t requiredSize;
wchar_t * context = NULL;
wchar_t * extension;
COMMAND * result = NULL;
@@ -941,19 +941,23 @@ static COMMAND * find_on_path(wchar_t * name)
}
}
else {
- /* No extension - search using registered extensions. */
- rc = _wdupenv_s(&pathext, &varsize, L"PATHEXT");
- if (rc == 0) {
- extension = wcstok_s(pathext, L";", &context);
- while (extension) {
- len = SearchPathW(NULL, name, extension, MSGSIZE, path_command.value, NULL);
- if (len) {
- result = &path_command;
- break;
+ _wgetenv_s(&requiredSize, NULL, 0, L"PATHEXT");
+ if (requiredSize > 0) {
+ pathext = (wchar_t *)malloc(requiredSize * sizeof(wchar_t));
+ /* No extension - search using registered extensions. */
+ rc = _wgetenv_s(&requiredSize, pathext, requiredSize, L"PATHEXT");
+ if (rc == 0) {
+ extension = wcstok_s(pathext, L";", &context);
+ while (extension) {
+ len = SearchPathW(NULL, name, extension, MSGSIZE, path_command.value, NULL);
+ if (len) {
+ result = &path_command;
+ break;
+ }
+ extension = wcstok_s(NULL, L";", &context);
}
- extension = wcstok_s(NULL, L";", &context);
+ free(pathext);
}
- free(pathext);
}
}
return result;
@@ -1910,7 +1914,7 @@ process(int argc, wchar_t ** argv)
if (_wfopen_s(&f, venv_cfg_path, L"r")) {
error(RC_BAD_VENV_CFG, L"Cannot read '%ls'", venv_cfg_path);
}
- cb = fread_s(buffer, sizeof(buffer), sizeof(buffer[0]),
+ cb = fread(buffer, sizeof(buffer[0]),
sizeof(buffer) / sizeof(buffer[0]), f);
fclose(f);
--
2.35.1