Issue #10841: set binary mode on files; the parser translates newlines
On Windows, set the binary mode on stdin, stdout, stderr and all
io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser
translates newlines (\r\n => \n).
diff --git a/Parser/tokenizer.c b/Parser/tokenizer.c
index 556be46..1eb62aa 100644
--- a/Parser/tokenizer.c
+++ b/Parser/tokenizer.c
@@ -892,6 +892,13 @@
}
if (tok->prompt != NULL) {
char *newtok = PyOS_Readline(stdin, stdout, tok->prompt);
+ if (newtok != NULL) {
+ char *translated = translate_newlines(newtok, 0, tok);
+ PyMem_FREE(newtok);
+ if (translated == NULL)
+ return EOF;
+ newtok = translated;
+ }
#ifndef PGEN
if (tok->encoding && newtok && *newtok) {
/* Recode to UTF-8 */