From 9abaf4d3b78d756e4c0e30b7accb70e531dd9085 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 12 Oct 2001 22:17:56 +0000 Subject: 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 --- Python/pythonrun.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'Python/pythonrun.c') diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 8dd9c14c3b..963df8a4ba 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -87,6 +87,17 @@ Py_IsInitialized(void) */ +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 @@ Py_Initialize(void) 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) -- cgit v1.2.1