summaryrefslogtreecommitdiffstats
path: root/PC/getpathp.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-08-13 19:55:43 (GMT)
committerGuido van Rossum <guido@python.org>1997-08-13 19:55:43 (GMT)
commit8f1b6519803ffa7aef45beb58bda654533cb1fa8 (patch)
tree9193bd17a6f0c7cb820fd53952fb08ee0a80abb8 /PC/getpathp.c
parent0e6ae93894b1383616d436dcfde2ebc1ad05ea4c (diff)
downloadcpython-8f1b6519803ffa7aef45beb58bda654533cb1fa8.zip
cpython-8f1b6519803ffa7aef45beb58bda654533cb1fa8.tar.gz
cpython-8f1b6519803ffa7aef45beb58bda654533cb1fa8.tar.bz2
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).)
Diffstat (limited to 'PC/getpathp.c')
-rw-r--r--PC/getpathp.c11
1 files 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 <windows.h>
+#endif
+
#include <sys/types.h>
#include <sys/stat.h>
#include <string.h>
@@ -149,7 +153,6 @@ static void
get_progpath()
{
#ifdef MS_WIN32
-#include <windows.h>
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';
}