From 8f1b6519803ffa7aef45beb58bda654533cb1fa8 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 13 Aug 1997 19:55:43 +0000 Subject: Some changes to make it work on NT; add the directory where the binary lives to the end of the path. (Still to do: add $PYTHONPATH to the front instead of using it as is; add the Win32 registry paths as in getpath_nt.c (which can then retire).) --- PC/getpathp.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/PC/getpathp.c b/PC/getpathp.c index b7d903b..b6279e7 100644 --- a/PC/getpathp.c +++ b/PC/getpathp.c @@ -35,6 +35,10 @@ PERFORMANCE OF THIS SOFTWARE. #include "Python.h" #include "osdefs.h" +#ifdef MS_WIN32 +#include +#endif + #include #include #include @@ -149,7 +153,6 @@ static void get_progpath() { #ifdef MS_WIN32 -#include if (!GetModuleFileName(NULL, progpath, MAXPATHLEN)) progpath[0] = '\0'; /* failure */ #else @@ -239,6 +242,7 @@ calculate_path() if (*pt == DELIM) bufsz++; /* number of DELIM plus one */ bufsz *= strlen(PYTHONPATH) + strlen(prefix); /* high estimate */ + bufsz += strlen(argv0_path) + 1; module_search_path = buf = malloc(bufsz); @@ -251,7 +255,7 @@ calculate_path() } for (pt = PYTHONPATH; *pt; pt++) { if (!strncmp(pt, ".\\lib", 5) && - ((ch = *(pt + 5)) == '\\' || ch == DELIM || !ch)){ + ((ch = *(pt + 5)) == '\\' || ch == DELIM || !ch)) { pt += 4; for (pt2 = prefix; *pt2; pt2++) *buf++ = *pt2; @@ -259,6 +263,9 @@ calculate_path() else *buf++ = *pt; } + *buf++ = DELIM; + strcpy(buf, argv0_path); + buf += strlen(buf); *buf = '\0'; } -- cgit v0.12