From ad6dfda9afa3459eb802618c07969f6a1a0a1287 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sat, 19 Jul 1997 19:17:22 +0000 Subject: 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(). --- Python/pythonrun.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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; } /* -- cgit v0.12