From c7990b3d314c0f4543f030c0a87d64d64496014f Mon Sep 17 00:00:00 2001 From: ceriel Date: Mon, 17 Aug 1987 14:23:16 +0000 Subject: [PATCH] some fixes to freopen --- lang/cem/libcc/stdio/freopen.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/lang/cem/libcc/stdio/freopen.c b/lang/cem/libcc/stdio/freopen.c index dfc2cb59f..c217212c1 100644 --- a/lang/cem/libcc/stdio/freopen.c +++ b/lang/cem/libcc/stdio/freopen.c @@ -6,15 +6,14 @@ FILE *freopen(name,mode,fp) char *name , *mode; -FILE *fp; +register FILE *fp; { char *malloc(); int fd, - flags = 0; + flags = fp->_flags & ~(IO_WRITEMODE|IO_READMODE|IO_ERR|IO_EOF|IO_PERPRINTF); fflush(fp); close(fileno(fp)); - if (io_testflag(fp, IO_MYBUF) && fp->_buf) free(fp->_buf); switch(*mode){ @@ -51,10 +50,9 @@ FILE *fp; if (fp != &_stdin && fp != &_stdout && fp != &_stderr) free(fp); return NULL; } - fp->_count = 0; + if (fp->_buf) fp->_count = BUFSIZ; fp->_fd = fd; fp->_flags = flags; - fp->_buf = 0; return(fp); } -- 2.34.1