summaryrefslogtreecommitdiffstats
path: root/Python/pythonrun.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-02-28 04:31:39 (GMT)
committerGuido van Rossum <guido@python.org>1998-02-28 04:31:39 (GMT)
commit0829c754bbb7b3ea66801c7da69f6cb189b80543 (patch)
tree7962bf6823c9a2640f1294f5c729ef9a80e984f8 /Python/pythonrun.c
parent10026de6a39b2c7e4c96944809b14ad9e886b887 (diff)
downloadcpython-0829c754bbb7b3ea66801c7da69f6cb189b80543.zip
cpython-0829c754bbb7b3ea66801c7da69f6cb189b80543.tar.gz
cpython-0829c754bbb7b3ea66801c7da69f6cb189b80543.tar.bz2
Fix the handling of errors in Py_FlushLine() in a few places.
(Basically, the error is cleared... Like almost everywhere else...)
Diffstat (limited to 'Python/pythonrun.c')
-rw-r--r--Python/pythonrun.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/Python/pythonrun.c b/Python/pythonrun.c
index 4cd0e3f..83a0bc1 100644
--- a/Python/pythonrun.c
+++ b/Python/pythonrun.c
@@ -676,7 +676,8 @@ PyErr_PrintEx(set_sys_last_vars)
return;
if (PyErr_GivenExceptionMatches(exception, PyExc_SystemExit)) {
- err = Py_FlushLine();
+ if (Py_FlushLine())
+ PyErr_Clear();
fflush(stdout);
if (v == NULL || v == Py_None)
Py_Exit(0);
@@ -714,10 +715,10 @@ PyErr_PrintEx(set_sys_last_vars)
if (f == NULL)
fprintf(stderr, "lost sys.stderr\n");
else {
- err = Py_FlushLine();
+ if (Py_FlushLine())
+ PyErr_Clear();
fflush(stdout);
- if (err == 0)
- err = PyTraceBack_Print(tb, f);
+ err = PyTraceBack_Print(tb, f);
if (err == 0 &&
PyErr_GivenExceptionMatches(exception, PyExc_SyntaxError))
{
@@ -1062,7 +1063,8 @@ call_sys_exitfunc()
Py_DECREF(exitfunc);
}
- Py_FlushLine();
+ if (Py_FlushLine())
+ PyErr_Clear();
}
static void