Kaydet (Commit) ea62d253 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Bug #1421664: Set sys.stderr.encoding

üst cf0a2a85
......@@ -12,6 +12,9 @@ What's New in Python 2.5 alpha 1?
Core and builtins
-----------------
- Bug #1421664: sys.stderr.encoding is now set to the same value as
sys.stdout.encoding.
- __import__ accepts keyword arguments.
- Patch #1460496: round() now accepts keyword arguments.
......
......@@ -281,6 +281,16 @@ Py_InitializeEx(int install_sigs)
}
Py_XDECREF(sys_isatty);
sys_stream = PySys_GetObject("stderr");
sys_isatty = PyObject_CallMethod(sys_stream, "isatty", "");
if (!sys_isatty)
PyErr_Clear();
if(sys_isatty && PyObject_IsTrue(sys_isatty)) {
if (!PyFile_SetEncoding(sys_stream, codeset))
Py_FatalError("Cannot set codeset of stderr");
}
Py_XDECREF(sys_isatty);
if (!Py_FileSystemDefaultEncoding)
Py_FileSystemDefaultEncoding = codeset;
else
......
......@@ -1069,6 +1069,11 @@ _PySys_Init(void)
if (!PyFile_SetEncoding(sysout, buf))
return NULL;
}
if(isatty(_fileno(stderr))) {
sprintf(buf, "cp%d", GetConsoleOutputCP());
if (!PyFile_SetEncoding(syserr, buf))
return NULL;
}
#endif
PyDict_SetItemString(sysdict, "stdin", sysin);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment