diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 21:48:45 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2010-03-21 21:48:45 (GMT) |
commit | ffbc2f63e1ae5356e03f8b0cbf606616c311862e (patch) | |
tree | 21b807e7e152d929cfb8edba5440ccbaa686eb78 /Python/pythonrun.c | |
parent | b531bfba4e46a6295dce7529af7e454520683487 (diff) | |
download | cpython-ffbc2f63e1ae5356e03f8b0cbf606616c311862e.zip cpython-ffbc2f63e1ae5356e03f8b0cbf606616c311862e.tar.gz cpython-ffbc2f63e1ae5356e03f8b0cbf606616c311862e.tar.bz2 |
Merged revisions 78872 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k
................
r78872 | victor.stinner | 2010-03-12 15:45:56 +0100 (ven., 12 mars 2010) | 12 lines
Merged revisions 78826 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r78826 | victor.stinner | 2010-03-10 23:30:19 +0100 (mer., 10 mars 2010) | 5 lines
Issue #3137: Don't ignore errors at startup, especially a keyboard interrupt
(SIGINT). If an error occurs while importing the site module, the error is
printed and Python exits. Initialize the GIL before importing the site
module.
........
................
Diffstat (limited to 'Python/pythonrun.c')
-rw-r--r-- | Python/pythonrun.c | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index 3764740..f4f8766 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -296,13 +296,14 @@ Py_InitializeEx(int install_sigs) if (initstdio() < 0) Py_FatalError( "Py_Initialize: can't initialize sys standard streams"); - if (!Py_NoSiteFlag) - initsite(); /* Module site */ /* auto-thread-state API, if available */ #ifdef WITH_THREAD _PyGILState_Init(interp, tstate); #endif /* WITH_THREAD */ + + if (!Py_NoSiteFlag) + initsite(); /* Module site */ } void @@ -711,22 +712,12 @@ initmain(void) static void initsite(void) { - PyObject *m, *f; + PyObject *m; m = PyImport_ImportModule("site"); if (m == NULL) { - f = PySys_GetObject("stderr"); - if (f == NULL || f == Py_None) - return; - if (Py_VerboseFlag) { - PyFile_WriteString( - "'import site' failed; traceback:\n", f); - PyErr_Print(); - } - else { - PyFile_WriteString( - "'import site' failed; use -v for traceback\n", f); - PyErr_Clear(); - } + PyErr_Print(); + Py_Finalize(); + exit(1); } else { Py_DECREF(m); @@ -1907,6 +1898,8 @@ err_input(perrdetail *err) char *msg = NULL; errtype = PyExc_SyntaxError; switch (err->error) { + case E_ERROR: + return; case E_SYNTAX: errtype = PyExc_IndentationError; if (err->expected == INDENT) |