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;
 }