summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-07-19 19:17:22 (GMT)
committerGuido van Rossum <guido@python.org>1997-07-19 19:17:22 (GMT)
commitad6dfda9afa3459eb802618c07969f6a1a0a1287 (patch)
treec8b659b91d34edda60041ffd917c1191f5636d11
parent0c88e1fd9671f9707a011676a9b075ef90df7059 (diff)
downloadcpython-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.c27
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;
}
/*