bug fix
authorceriel <none@none>
Fri, 6 Feb 1987 10:37:09 +0000 (10:37 +0000)
committerceriel <none@none>
Fri, 6 Feb 1987 10:37:09 +0000 (10:37 +0000)
lang/cem/libcc/stdio/flushbuf.c

index 6dc9181..90bf01f 100644 (file)
@@ -14,8 +14,8 @@ _flushbuf(c, iop)
                                else {
                                        extern unsigned char _sobuf[];
 
-                                       iop->_buf = iop->_ptr = _sobuf;
-                                       iop->_count = BUFSIZ;
+                                       iop->_buf = _sobuf;
+                                       iop->_count = BUFSIZ-1;
                                }
                        }
                        else {
@@ -25,11 +25,11 @@ _flushbuf(c, iop)
                                        iop->_flags |= IO_UNBUFF;
                                }
                                else {
-                                       iop->_ptr = iop->_buf;
                                        iop->_flags |= IO_MYBUF;
-                                       iop->_count = BUFSIZ;
+                                       iop->_count = BUFSIZ-1;
                                }
                        }
+                       iop->_ptr = iop->_buf;
                }
        }
 
@@ -44,7 +44,7 @@ _flushbuf(c, iop)
                return c;
        }
        else {
-               int count = BUFSIZ - iop->_count;
+               int count = iop->_ptr - iop->_buf;
 
                iop->_count = BUFSIZ - 1;
                iop->_ptr = iop->_buf + 1;