Change in when and how stdin and stdout are set to line-buffering.
This used to be done whenever stdin was interactive. Now we only do it when the -i flag is given. Also (and this is the real reason for this fix) we explicitly allocate a buffer -- this seems to be necessary on Windows.
This commit is contained in:
parent
7844e38a98
commit
2a212191f8
|
@ -203,9 +203,11 @@ main(argc, argv)
|
|||
setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ);
|
||||
#endif
|
||||
}
|
||||
else if (stdin_is_interactive) {
|
||||
setvbuf(stdin, (char *)NULL, _IOLBF, BUFSIZ);
|
||||
setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
|
||||
else if (Py_InteractiveFlag) {
|
||||
char *ibuffer = malloc(BUFSIZ);
|
||||
char *obuffer = malloc(BUFSIZ);
|
||||
setvbuf(stdin, ibuffer, _IOLBF, BUFSIZ);
|
||||
setvbuf(stdout, obuffer, _IOLBF, BUFSIZ);
|
||||
/* Leave stderr alone - it should be unbuffered anyway. */
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue