ack/lang/cem/libcc/stdio/setbuf.c

25 lines
473 B
C
Raw Normal View History

1987-03-31 10:45:53 +00:00
/* $Header$ */
1987-01-27 15:57:55 +00:00
#include <stdio.h>
setbuf(iop, buffer)
register FILE *iop;
char *buffer;
{
if ( iop->_buf && io_testflag(iop,IO_MYBUF) )
free(iop->_buf);
iop->_flags &= ~(IO_MYBUF | IO_UNBUFF | IO_PERPRINTF);
iop->_buf = (unsigned char *) buffer;
iop->_count = 0;
1989-02-21 10:01:55 +00:00
if ( iop->_buf == NULL ) {
1987-01-27 15:57:55 +00:00
iop->_flags |= IO_UNBUFF;
1989-02-21 10:01:55 +00:00
iop->_bufsiz = 1;
} else {
if (io_testflag(iop, IO_WRITEMODE)) iop->_count = BUFSIZ;
iop->_bufsiz = BUFSIZ;
}
1987-01-27 15:57:55 +00:00
iop->_ptr = iop->_buf;
}