always flush line-buffered output when filling an input buffer
authoreck <none@none>
Thu, 21 Jun 1990 11:13:23 +0000 (11:13 +0000)
committereck <none@none>
Thu, 21 Jun 1990 11:13:23 +0000 (11:13 +0000)
lang/cem/libcc.ansi/stdio/fillbuf.c

index c6b811e..1fea48b 100644 (file)
@@ -13,6 +13,7 @@ int
 __fillbuf(register FILE *stream)
 {
        static unsigned char ch[FOPEN_MAX];
+       register int i;
 
        stream->_count = 0;
        if (fileno(stream) < 0) return EOF;
@@ -33,13 +34,12 @@ __fillbuf(register FILE *stream)
                        stream->_bufsiz = BUFSIZ;
                }
        }
-       if (io_testflag(stream, _IONBF | _IOLBF)) {
-               register int i;
-               for (i = 0; i < FOPEN_MAX; i++) {
-                       if (__iotab[i] && io_testflag(__iotab[i], _IOLBF))
-                               if (io_testflag(__iotab[i], _IOWRITING))
-                                       (void) fflush(__iotab[i]);
-               }
+
+       /* flush line-buffered output when filling an input buffer */
+       for (i = 0; i < FOPEN_MAX; i++) {
+               if (__iotab[i] && io_testflag(__iotab[i], _IOLBF))
+                       if (io_testflag(__iotab[i], _IOWRITING))
+                               (void) fflush(__iotab[i]);
        }
 
        if (!stream->_buf) {