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);
|
setvbuf(stderr, (char *)NULL, _IOLBF, BUFSIZ);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (stdin_is_interactive) {
|
else if (Py_InteractiveFlag) {
|
||||||
setvbuf(stdin, (char *)NULL, _IOLBF, BUFSIZ);
|
char *ibuffer = malloc(BUFSIZ);
|
||||||
setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
|
char *obuffer = malloc(BUFSIZ);
|
||||||
|
setvbuf(stdin, ibuffer, _IOLBF, BUFSIZ);
|
||||||
|
setvbuf(stdout, obuffer, _IOLBF, BUFSIZ);
|
||||||
/* Leave stderr alone - it should be unbuffered anyway. */
|
/* Leave stderr alone - it should be unbuffered anyway. */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue