mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +00:00
Make sure that the message "Error in sys.exitfunc:" goes to sys.stderr
and not to C's stderr.
This commit is contained in:
parent
6deac7a105
commit
bf02fb28d9
1 changed files with 4 additions and 2 deletions
|
@ -1052,12 +1052,14 @@ call_sys_exitfunc()
|
||||||
PyObject *exitfunc = PySys_GetObject("exitfunc");
|
PyObject *exitfunc = PySys_GetObject("exitfunc");
|
||||||
|
|
||||||
if (exitfunc) {
|
if (exitfunc) {
|
||||||
PyObject *res;
|
PyObject *res, *f;
|
||||||
Py_INCREF(exitfunc);
|
Py_INCREF(exitfunc);
|
||||||
PySys_SetObject("exitfunc", (PyObject *)NULL);
|
PySys_SetObject("exitfunc", (PyObject *)NULL);
|
||||||
|
f = PySys_GetObject("stderr");
|
||||||
res = PyEval_CallObject(exitfunc, (PyObject *)NULL);
|
res = PyEval_CallObject(exitfunc, (PyObject *)NULL);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
fprintf(stderr, "Error in sys.exitfunc:\n");
|
if (f)
|
||||||
|
PyFile_WriteString("Error in sys.exitfunc:\n", f);
|
||||||
PyErr_Print();
|
PyErr_Print();
|
||||||
}
|
}
|
||||||
Py_DECREF(exitfunc);
|
Py_DECREF(exitfunc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue