diff options
-rw-r--r-- | Modules/main.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Modules/main.c b/Modules/main.c index 3057e46..23a910e 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -204,10 +204,14 @@ main(argc, argv) #endif } else if (Py_InteractiveFlag) { - char *ibuffer = malloc(BUFSIZ); - char *obuffer = malloc(BUFSIZ); - setvbuf(stdin, ibuffer, _IOLBF, BUFSIZ); - setvbuf(stdout, obuffer, _IOLBF, BUFSIZ); +#ifdef MS_WINDOWS + /* Doesn't have to have line-buffered -- use unbuffered */ + setvbuf(stdin, (char *)NULL, _IONBF, BUFSIZ); + setvbuf(stdout, (char *)NULL, _IONBF, BUFSIZ); +#else + setvbuf(stdin, (char *)NULL, _IOLBF, BUFSIZ); + setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ); +#endif /* Leave stderr alone - it should be unbuffered anyway. */ } |