Mercurial > cpython-lru_cache-weakref
diff Python/pythonrun.c @ 61846:815ba3872f85
Issue #3798: sys.exit(message) writes the message to sys.stderr file, instead
of the C file stderr, to use stderr encoding and error handler
| author | Victor Stinner <victor.stinner@haypocalc.com> |
|---|---|
| date | Fri, 21 May 2010 23:45:42 +0000 |
| parents | deed5fce82d6 |
| children | a25ad9c4ace0 |
line wrap: on
line diff
--- a/Python/pythonrun.c Fri May 21 22:52:10 2010 +0000 +++ b/Python/pythonrun.c Fri May 21 23:45:42 2010 +0000 @@ -1386,10 +1386,12 @@ exitcode = (int)PyLong_AsLong(value); else { PyObject *sys_stderr = PySys_GetObject("stderr"); - if (sys_stderr != NULL) - PyObject_CallMethod(sys_stderr, "flush", NULL); - PyObject_Print(value, stderr, Py_PRINT_RAW); - fflush(stderr); + if (sys_stderr != NULL && sys_stderr != Py_None) { + PyFile_WriteObject(value, sys_stderr, Py_PRINT_RAW); + } else { + PyObject_Print(value, stderr, Py_PRINT_RAW); + fflush(stderr); + } PySys_WriteStderr("\n"); exitcode = 1; }
