diff options
author | Guido van Rossum <guido@python.org> | 2001-03-23 17:54:43 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-03-23 17:54:43 (GMT) |
commit | 66e8e86cf8a2f48a4aca1b05cef7fa7f6dd3ca48 (patch) | |
tree | 1bb46efaedd2892a9310e193a641286f7e99d7eb /Python/pythonrun.c | |
parent | 62d248892f8782d01cfeb1951d53eaeac81750fe (diff) | |
download | cpython-66e8e86cf8a2f48a4aca1b05cef7fa7f6dd3ca48.zip cpython-66e8e86cf8a2f48a4aca1b05cef7fa7f6dd3ca48.tar.gz cpython-66e8e86cf8a2f48a4aca1b05cef7fa7f6dd3ca48.tar.bz2 |
Finishing touch to Ping's changes. This is a patch that Ping sent me
but apparently he had to go to school, so I am checking it in for him.
This makes PyRun_HandleSystemExit() a static instead, called
handle_system_exit(), and let it use the current exception rather than
passing in an exception. This slightly simplifies the code.
Diffstat (limited to 'Python/pythonrun.c')
-rw-r--r-- | Python/pythonrun.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c index f1ed396..9bb20de 100644 --- a/Python/pythonrun.c +++ b/Python/pythonrun.c @@ -798,9 +798,11 @@ print_error_text(PyObject *f, int offset, char *text) PyFile_WriteString("^\n", f); } -void -PyRun_HandleSystemExit(PyObject* value) +static void +handle_system_exit(void) { + PyObject *exception, *value, *tb; + PyErr_Fetch(&exception, &value, &tb); if (Py_FlushLine()) PyErr_Clear(); fflush(stdout); @@ -831,15 +833,14 @@ void PyErr_PrintEx(int set_sys_last_vars) { PyObject *exception, *v, *tb, *hook; + + if (PyErr_ExceptionMatches(PyExc_SystemExit)) { + handle_system_exit(); + } PyErr_Fetch(&exception, &v, &tb); PyErr_NormalizeException(&exception, &v, &tb); - if (exception == NULL) return; - - if (PyErr_GivenExceptionMatches(exception, PyExc_SystemExit)) { - PyRun_HandleSystemExit(v); - } if (set_sys_last_vars) { PySys_SetObject("last_type", exception); PySys_SetObject("last_value", v); @@ -852,12 +853,11 @@ PyErr_PrintEx(int set_sys_last_vars) PyObject *result = PyEval_CallObject(hook, args); if (result == NULL) { PyObject *exception2, *v2, *tb2; + if (PyErr_ExceptionMatches(PyExc_SystemExit)) { + handle_system_exit(); + } PyErr_Fetch(&exception2, &v2, &tb2); PyErr_NormalizeException(&exception2, &v2, &tb2); - if (PyErr_GivenExceptionMatches( - exception2, PyExc_SystemExit)) { - PyRun_HandleSystemExit(v2); - } if (Py_FlushLine()) PyErr_Clear(); fflush(stdout); |