From 2a212191f8bd19c2deab88764b894dd31f39af78 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 11 Apr 1997 21:57:53 +0000 Subject: 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. --- Modules/main.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Modules/main.c b/Modules/main.c index 0cab825..3057e46 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. */ } -- cgit v0.12