diff Python/pythonrun.c @ 20401:b74610c92d8b legacy-trunk

SF patch #467455 : Enhanced environment variables, by Toby Dickenson. This patch changes to logic to: if env.var. set and non-empty: if env.var. is an integer: set flag to that integer if flag is zero: # [actually, <= 0 --GvR] set flag to 1 Under this patch, anyone currently using PYTHONVERBOSE=yes will get the same output as before. PYTHONVERBNOSE=2 will generate more verbosity than before. The only unusual case that the following three are still all equivalent: PYTHONVERBOSE=yespleas PYTHONVERBOSE=1 PYTHONVERBOSE=0
author Guido van Rossum <guido@python.org>
date Fri, 12 Oct 2001 22:17:56 +0000
parents c0a44829bcd5
children c1ecafd15560
line wrap: on
line diff
--- a/Python/pythonrun.c	Fri Oct 12 22:08:39 2001 +0000
+++ b/Python/pythonrun.c	Fri Oct 12 22:17:56 2001 +0000
@@ -87,6 +87,17 @@
 
 */
 
+static int
+add_flag(int flag, const char *envs)
+{
+	int env = atoi(envs);
+	if (flag < env)
+		flag = env;
+	if (flag < 1)
+		flag = 1;
+	return flag;
+}
+
 void
 Py_Initialize(void)
 {
@@ -101,11 +112,11 @@
 	initialized = 1;
 	
 	if ((p = Py_GETENV("PYTHONDEBUG")) && *p != '\0')
-		Py_DebugFlag = Py_DebugFlag ? Py_DebugFlag : 1;
+		Py_DebugFlag = add_flag(Py_DebugFlag, p);
 	if ((p = Py_GETENV("PYTHONVERBOSE")) && *p != '\0')
-		Py_VerboseFlag = Py_VerboseFlag ? Py_VerboseFlag : 1;
+		Py_VerboseFlag = add_flag(Py_VerboseFlag, p);
 	if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0')
-		Py_OptimizeFlag = Py_OptimizeFlag ? Py_OptimizeFlag : 1;
+		Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p);
 
 	interp = PyInterpreterState_New();
 	if (interp == NULL)