From: Guido van Rossum Date: Fri, 11 Apr 1997 21:57:53 +0000 (+0000) Subject: Change in when and how stdin and stdout are set to line-buffering. X-Git-Tag: v1.5a1~157 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2a212191f8bd19c2deab88764b894dd31f39af78;p=python 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. --- diff --git a/Modules/main.c b/Modules/main.c index 0cab825157..3057e46f83 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -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. */ }