diff options
author | Guido van Rossum <guido@python.org> | 1997-07-19 19:17:22 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-07-19 19:17:22 (GMT) |
commit | ad6dfda9afa3459eb802618c07969f6a1a0a1287 (patch) | |
tree | c8b659b91d34edda60041ffd917c1191f5636d11 | |
parent | 0c88e1fd9671f9707a011676a9b075ef90df7059 (diff) | |
download | cpython-ad6dfda9afa3459eb802618c07969f6a1a0a1287.zip cpython-ad6dfda9afa3459eb802618c07969f6a1a0a1287.tar.gz cpython-ad6dfda9afa3459eb802618c07969f6a1a0a1287.tar.bz2 |
Moved some stuff here from main.c (part of a big restructuring - wait
for more!).
- The global flags that can be set from environment variables are now
set in Py_Initialize (except the silly Py_SuppressPrint, which no
longer exists). This saves duplicate code in frozenmain.c and main.c.
- Py_GetProgramName() is now here; added Py_SetProgramName(). An
embedding program should no longer provide Py_GetProgramName(),
instead it should call Py_SetProgramName() *before* calling
Py_Initialize().
-rw-r--r-- | Python/pythonrun.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index b458d7a..caa0a4c 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -73,7 +73,6 @@ static void initsigs Py_PROTO((void)); int Py_DebugFlag; /* Needed by parser.c */ int Py_VerboseFlag; /* Needed by import.c */ -int Py_SuppressPrintingFlag; /* Needed by ceval.c */ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */ /* Initialize the current interpreter; pass in the Python path. */ @@ -107,11 +106,20 @@ Py_Initialize() { PyThreadState *tstate; PyInterpreterState *interp; + char *p; + if (PyThreadState_Get()) return; + + if ((p = getenv("PYTHONDEBUG")) && *p != '\0') + Py_DebugFlag = 1; + if ((p = getenv("PYTHONVERBOSE")) && *p != '\0') + Py_VerboseFlag = 1; + interp = PyInterpreterState_New(); if (interp == NULL) Py_FatalError("PyInterpreterState_New() failed"); + tstate = PyThreadState_New(interp); if (tstate == NULL) Py_FatalError("PyThreadState_New() failed"); @@ -120,6 +128,23 @@ Py_Initialize() Py_Setup(); PySys_SetPath(Py_GetPath()); + /* XXX Who should set the path -- Setup or Initialize? */ +} + +static char *progname = "python"; + +void +Py_SetProgramName(pn) + char *pn; +{ + if (pn && *pn) + progname = pn; +} + +char * +Py_GetProgramName() +{ + return progname; } /* |