@@ -28,7 +28,7 @@ static char **orig_argv;
2828static int orig_argc ;
2929
3030/* command line options */
31- #define BASE_OPTS "c:diOStuUvxXhVW :"
31+ #define BASE_OPTS "c:diOSEtuUvxXhVW :"
3232
3333#ifndef RISCOS
3434#define PROGRAM_OPTS BASE_OPTS
@@ -53,6 +53,7 @@ Options and arguments (and corresponding environment variables):\n\
5353-O : optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)\n\
5454-OO : remove doc-strings in addition to the -O optimizations\n\
5555-S : don't imply 'import site' on initialization\n\
56+ -E : ignore environment variables (such as PYTHONPATH)\n\
5657-t : issue warnings about inconsistent tab usage (-tt: issue errors)\n\
5758" ;
5859static char * usage_mid = "\
@@ -108,6 +109,8 @@ Py_Main(int argc, char **argv)
108109 int stdin_is_interactive = 0 ;
109110 int help = 0 ;
110111 int version = 0 ;
112+ int saw_inspect_flag = 0 ;
113+ int saw_unbuffered_flag = 0 ;
111114 PyCompilerFlags cf ;
112115
113116 orig_argc = argc ; /* For Py_GetArgcArgv() */
@@ -117,11 +120,6 @@ Py_Main(int argc, char **argv)
117120 Py_RISCOSWimpFlag = 0 ;
118121#endif
119122
120- if ((p = getenv ("PYTHONINSPECT" )) && * p != '\0' )
121- inspect = 1 ;
122- if ((p = getenv ("PYTHONUNBUFFERED" )) && * p != '\0' )
123- unbuffered = 1 ;
124-
125123 PySys_ResetWarnOptions ();
126124
127125 while ((c = _PyOS_GetOpt (argc , argv , PROGRAM_OPTS )) != EOF ) {
@@ -146,6 +144,7 @@ Py_Main(int argc, char **argv)
146144
147145 case 'i' :
148146 inspect ++ ;
147+ saw_inspect_flag = 1 ;
149148 Py_InteractiveFlag ++ ;
150149 break ;
151150
@@ -157,12 +156,17 @@ Py_Main(int argc, char **argv)
157156 Py_NoSiteFlag ++ ;
158157 break ;
159158
159+ case 'E' :
160+ Py_IgnoreEnvironmentFlag ++ ;
161+ break ;
162+
160163 case 't' :
161164 Py_TabcheckFlag ++ ;
162165 break ;
163166
164167 case 'u' :
165168 unbuffered ++ ;
169+ saw_unbuffered_flag = 1 ;
166170 break ;
167171
168172 case 'v' :
@@ -210,6 +214,13 @@ Py_Main(int argc, char **argv)
210214 exit (0 );
211215 }
212216
217+ if (!saw_inspect_flag &&
218+ (p = Py_GETENV ("PYTHONINSPECT" )) && * p != '\0' )
219+ inspect = 1 ;
220+ if (!saw_unbuffered_flag &&
221+ (p = Py_GETENV ("PYTHONUNBUFFERED" )) && * p != '\0' )
222+ unbuffered = 1 ;
223+
213224 if (command == NULL && _PyOS_optind < argc &&
214225 strcmp (argv [_PyOS_optind ], "-" ) != 0 )
215226 {
@@ -307,7 +318,7 @@ Py_Main(int argc, char **argv)
307318 }
308319 else {
309320 if (filename == NULL && stdin_is_interactive ) {
310- char * startup = getenv ("PYTHONSTARTUP" );
321+ char * startup = Py_GETENV ("PYTHONSTARTUP" );
311322 if (startup != NULL && startup [0 ] != '\0' ) {
312323 FILE * fp = fopen (startup , "r" );
313324 if (fp != NULL ) {
0 commit comments