set _IOMYBUF in setvbuf() when necessary
authoreck <none@none>
Fri, 14 Dec 1990 14:47:26 +0000 (14:47 +0000)
committereck <none@none>
Fri, 14 Dec 1990 14:47:26 +0000 (14:47 +0000)
lang/cem/libcc.ansi/stdio/setvbuf.c

index 34ef83b..a1b7c01 100644 (file)
@@ -23,8 +23,13 @@ setvbuf(register FILE *stream, char *buf, int mode, size_t size)
 
        stream->_flags &= ~(_IOMYBUF | _IONBF | _IOLBF);
 
-       if (!buf && (mode != _IONBF))
-               if ((buf = (char *) malloc(size)) == NULL) retval = EOF;
+       if (!buf && (mode != _IONBF)) {
+               if ((buf = (char *) malloc(size)) == NULL) {
+                       retval = EOF;
+               } else {
+                       stream->_flags |= _IOMYBUF;
+               }
+       }
 
        if (io_testflag(stream, _IOREADING) || io_testflag(stream, _IOWRITING))
                retval = EOF;