From: ceriel Date: Mon, 17 Aug 1987 14:23:16 +0000 (+0000) Subject: some fixes to freopen X-Git-Tag: release-5-5~3893 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=c7990b3d314c0f4543f030c0a87d64d64496014f;p=ack.git some fixes to freopen --- 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); }