59 lines
2.1 KiB
Diff
59 lines
2.1 KiB
Diff
From b35c7f11a9c0b3c223b2322ec5ccc4e89eb7988b Mon Sep 17 00:00:00 2001
|
|
From: Ray Donnelly <mingw.android@gmail.com>
|
|
Date: Thu, 17 Jun 2021 18:51:48 +0530
|
|
Subject: [PATCH 033/N] mingw add ModuleFileName dir to PATH
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Co-authored-by: Алексей <alexey.pawlow@gmail.com>
|
|
Co-authored-by: Christoph Reiter <reiter.christoph@gmail.com>
|
|
---
|
|
Modules/getpath.c | 30 ++++++++++++++++++++++++++++++
|
|
1 file changed, 30 insertions(+)
|
|
|
|
diff --git a/Modules/getpath.c b/Modules/getpath.c
|
|
index 4cb6738..e05787b 100644
|
|
--- a/Modules/getpath.c
|
|
+++ b/Modules/getpath.c
|
|
@@ -1635,6 +1635,36 @@ calculate_path(PyCalculatePath *calculate, _PyPathConfig *pathconfig)
|
|
return status;
|
|
}
|
|
|
|
+#ifdef MS_WINDOWS
|
|
+ if (calculate->path_env) {
|
|
+ wchar_t *module_path, *norm_path;
|
|
+ // Add path of executable/dll to system path. This
|
|
+ // is so that the correct tcl??.dll and tk??.dll get used.
|
|
+ module_path = calculate->dll_path[0] ? calculate->dll_path : pathconfig->program_full_path;
|
|
+ norm_path = (wchar_t *)alloca(sizeof(wchar_t) * (wcslen(module_path) + 1));
|
|
+ if (norm_path) {
|
|
+ wchar_t *slashes, *end, *new_path;
|
|
+ wcscpy(norm_path, module_path);
|
|
+ slashes = wcschr(norm_path, L'/');
|
|
+ while (slashes) {
|
|
+ *slashes = L'\\';
|
|
+ slashes = wcschr(slashes + 1, L'/');
|
|
+ }
|
|
+ end = wcsrchr(norm_path, L'\\') ? wcsrchr(norm_path, L'\\') : norm_path + wcslen(norm_path);
|
|
+ end[1] = L'\0';
|
|
+
|
|
+ new_path = (wchar_t *)alloca(sizeof(wchar_t) * (wcslen(L"PATH=") + wcslen(calculate->path_env) + 1 + wcslen(norm_path) + 1));
|
|
+ if (new_path) {
|
|
+ wcscpy(new_path, L"PATH=");
|
|
+ wcscat(new_path, calculate->path_env);
|
|
+ wcscat(new_path, L";");
|
|
+ wcscat(new_path, norm_path);
|
|
+ _wputenv(new_path);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+#endif
|
|
+
|
|
if ((!calculate->prefix_found || !calculate->exec_prefix_found)
|
|
&& calculate->warnings)
|
|
{
|
|
--
|
|
2.36.1
|
|
|