]> granicus.if.org Git - python/commitdiff
Moved some stuff here from main.c (part of a big restructuring - wait
authorGuido van Rossum <guido@python.org>
Sat, 19 Jul 1997 19:17:22 +0000 (19:17 +0000)
committerGuido van Rossum <guido@python.org>
Sat, 19 Jul 1997 19:17:22 +0000 (19:17 +0000)
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

index b458d7a37ab5f06c43a6c087c6fa6234a02581bf..caa0a4cce5c7d21d082a2f9a7a6ecfb758c02c36 100644 (file)
@@ -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;
 }
 
 /*