Add -E command line switch (ignore environment variables like PYTHONHOME
and PYTHONPATH).
diff --git a/Python/frozenmain.c b/Python/frozenmain.c
index a03a2f8..efc87d7 100644
--- a/Python/frozenmain.c
+++ b/Python/frozenmain.c
@@ -30,9 +30,9 @@
Py_FrozenFlag = 1; /* Suppress errors from getpath.c */
- if ((p = getenv("PYTHONINSPECT")) && *p != '\0')
+ if ((p = Py_GETENV("PYTHONINSPECT")) && *p != '\0')
inspect = 1;
- if ((p = getenv("PYTHONUNBUFFERED")) && *p != '\0')
+ if ((p = Py_GETENV("PYTHONUNBUFFERED")) && *p != '\0')
unbuffered = 1;
if (unbuffered) {
diff --git a/Python/import.c b/Python/import.c
index 456a5be..82524f6 100644
--- a/Python/import.c
+++ b/Python/import.c
@@ -1069,7 +1069,7 @@
char tempbuf[MAX_PATH];
#endif
- if (getenv("PYTHONCASEOK") != NULL)
+ if (Py_GETENV("PYTHONCASEOK") != NULL)
return 1;
#ifdef __CYGWIN__
@@ -1092,7 +1092,7 @@
struct ffblk ffblk;
int done;
- if (getenv("PYTHONCASEOK") != NULL)
+ if (Py_GETENV("PYTHONCASEOK") != NULL)
return 1;
done = findfirst(buf, &ffblk, FA_ARCH|FA_RDONLY|FA_HIDDEN|FA_DIREC);
@@ -1109,7 +1109,7 @@
FSSpec fss;
OSErr err;
- if (getenv("PYTHONCASEOK") != NULL)
+ if (Py_GETENV("PYTHONCASEOK") != NULL)
return 1;
#ifndef USE_GUSI1
@@ -1147,7 +1147,7 @@
char dirname[MAXPATHLEN + 1];
const int dirlen = len - namelen - 1; /* don't want trailing SEP */
- if (getenv("PYTHONCASEOK") != NULL)
+ if (Py_GETENV("PYTHONCASEOK") != NULL)
return 1;
/* Copy the dir component into dirname; substitute "." if empty */
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index fbc3b16..c74b062 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -63,6 +63,7 @@
int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
int Py_FrozenFlag; /* Needed by getpath.c */
int Py_UnicodeFlag = 0; /* Needed by compile.c */
+int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */
static int initialized = 0;
@@ -98,11 +99,11 @@
return;
initialized = 1;
- if ((p = getenv("PYTHONDEBUG")) && *p != '\0')
+ if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0')
Py_DebugFlag = Py_DebugFlag ? Py_DebugFlag : 1;
- if ((p = getenv("PYTHONVERBOSE")) && *p != '\0')
+ if ((p = Py_GETENV("PYTHONVERBOSE")) && *p != '\0')
Py_VerboseFlag = Py_VerboseFlag ? Py_VerboseFlag : 1;
- if ((p = getenv("PYTHONOPTIMIZE")) && *p != '\0')
+ if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0')
Py_OptimizeFlag = Py_OptimizeFlag ? Py_OptimizeFlag : 1;
interp = PyInterpreterState_New();
@@ -225,7 +226,7 @@
#ifdef Py_TRACE_REFS
if (
#ifdef MS_WINDOWS /* Only ask on Windows if env var set */
- getenv("PYTHONDUMPREFS") &&
+ Py_GETENV("PYTHONDUMPREFS") &&
#endif /* MS_WINDOWS */
_Py_AskYesNo("Print left references?")) {
_Py_PrintReferences(stderr);
@@ -394,8 +395,8 @@
Py_GetPythonHome(void)
{
char *home = default_home;
- if (home == NULL)
- home = getenv("PYTHONHOME");
+ if (home == NULL && !Py_IgnoreEnvironmentFlag)
+ home = Py_GETENV("PYTHONHOME");
return home;
}