Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 5850:6f67a1bda15a legacy-trunk
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().
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Sat, 19 Jul 1997 19:17:22 +0000 |
| parents | 5ed3a21cc122 |
| children | 8d2194e22e67 |
line wrap: on
line diff
--- a/Python/pythonrun.c Sat Jul 19 00:02:22 1997 +0000 +++ b/Python/pythonrun.c Sat Jul 19 19:17:22 1997 +0000 @@ -73,7 +73,6 @@ 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 @@ { 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_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; } /*
