Close #13119: use "\r\n" newline for sys.stdout/err on Windows

sys.stdout and sys.stderr are now using "\r\n" newline on Windows, as Python 2.
This commit is contained in:
Victor Stinner 2012-08-04 01:37:32 +02:00
parent 401e17d0f0
commit 90ef747e04
3 changed files with 28 additions and 5 deletions

View file

@ -870,12 +870,15 @@ create_stdio(PyObject* io,
Py_CLEAR(raw);
Py_CLEAR(text);
newline = "\n";
#ifdef MS_WINDOWS
if (!write_mode) {
/* translate \r\n to \n for sys.stdin on Windows */
newline = NULL;
}
/* sys.stdin: enable universal newline mode, translate "\r\n" and "\r"
newlines to "\n".
sys.stdout and sys.stderr: translate "\n" to "\r\n". */
newline = NULL;
#else
/* sys.stdin: split lines at "\n".
sys.stdout and sys.stderr: don't translate newlines (use "\n"). */
newline = "\n";
#endif
stream = PyObject_CallMethod(io, "TextIOWrapper", "OsssO",