summaryrefslogtreecommitdiff
path: root/Python/pythonrun.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1995-01-09 17:53:26 +0000
committerGuido van Rossum <guido@python.org>1995-01-09 17:53:26 +0000
commitf05f8f886a8076f394baa6a07f83c34553f24ef5 (patch)
tree680c4f97248be1d5a47a47a7745ba4f98334411c /Python/pythonrun.c
parent0818e12a5d2d9f760645311a043dbdcd0ffb90cf (diff)
downloadcpython-f05f8f886a8076f394baa6a07f83c34553f24ef5.tar.gz
__builtins__ mods (and sys_checkinterval for ceval.c)
Diffstat (limited to 'Python/pythonrun.c')
-rw-r--r--Python/pythonrun.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index c706081c68..a25cbba848 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -32,6 +32,7 @@ OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include "graminit.h"
#include "errcode.h"
#include "sysmodule.h"
+#include "bltinmodule.h"
#include "compile.h"
#include "eval.h"
#include "ceval.h"
@@ -48,6 +49,7 @@ extern char *getpythonpath();
extern grammar gram; /* From graminit.c */
/* Forward */
+static void initmain PROTO((void));
static object *run_err_node PROTO((node *n, char *filename,
object *globals, object *locals));
static object *run_node PROTO((node *n, char *filename,
@@ -83,6 +85,24 @@ initall()
setpythonpath(getpythonpath());
initsigs(); /* Signal handling stuff, including initintr() */
+
+ initmain();
+}
+
+/* Create __main__ module */
+
+static void
+initmain()
+{
+ object *m, *d;
+ m = add_module("__main__");
+ if (m == NULL)
+ fatal("can't create __main__ module");
+ d = getmoduledict(m);
+ if (dictlookup(d, "__builtins__") == NULL) {
+ if (dictinsert(d, "__builtins__", getbuiltindict()))
+ fatal("can't add __builtins__ to __main__");
+ }
}
/* Parse input from a file and execute it */