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;
 }
 
 /*