summaryrefslogtreecommitdiffstats
path: root/PC/getpathp.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-07-27 13:48:07 (GMT)
committerGuido van Rossum <guido@python.org>1998-07-27 13:48:07 (GMT)
commit8b2b3ce4be9adcf2c177d24fde9d984158971adf (patch)
tree248c387370f035b9403b562d6ff083ad3ea16f2f /PC/getpathp.c
parent76310fcc475ce58b3c8495a963519237722e2860 (diff)
downloadcpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.zip
cpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.tar.gz
cpython-8b2b3ce4be9adcf2c177d24fde9d984158971adf.tar.bz2
Two changes:
(1) Use Py_GetPythonHome() instead of getenv("PYTHONHOME"); (2) Mark Hammond's patch to search for .pyc/.pyo landmark as well.
Diffstat (limited to 'PC/getpathp.c')
-rw-r--r--PC/getpathp.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/PC/getpathp.c b/PC/getpathp.c
index 48912f5..f0714b5 100644
--- a/PC/getpathp.c
+++ b/PC/getpathp.c
@@ -307,7 +307,7 @@ calculate_path()
char argv0_path[MAXPATHLEN+1];
char *buf;
int bufsz;
- char *pythonhome = getenv("PYTHONHOME");
+ char *pythonhome = Py_GetPythonHome();
char *envpath = getenv("PYTHONPATH");
#ifdef MS_WIN32
char *machinepath, *userpath;
@@ -329,8 +329,19 @@ calculate_path()
if (pythonhome == NULL || *pythonhome == '\0') {
if (search_for_prefix(argv0_path, LANDMARK))
pythonhome = prefix;
- else
- pythonhome = NULL;
+ else {
+ /* Couldnt find a source version - lets see if a compiled version exists. */
+ char LANDMARK_Look[MAX_PATH+1];
+ strcpy(LANDMARK_Look, LANDMARK);
+ /* Turn it into ".pyc" or ".pyc" depending on the current mode. */
+ strcat(LANDMARK_Look, Py_OptimizeFlag ? "o": "c");
+ /* And search again */
+ if (search_for_prefix(argv0_path, LANDMARK_Look))
+ pythonhome = prefix;
+ else
+ /* Give up in disgust - just use the default! */
+ pythonhome = NULL;
+ }
}
else
strcpy(prefix, pythonhome);
@@ -478,3 +489,4 @@ Py_GetProgramFullPath()
calculate_path();
return progpath;
}
+