xref: /csrg-svn/lib/libc/stdio/setbuffer.c (revision 8327)
1*8327Smckusick /* @(#)setbuffer.c	4.1 (Berkeley) 10/05/82 */
2*8327Smckusick #include	<stdio.h>
3*8327Smckusick 
4*8327Smckusick setbuffer(iop, buf, size)
5*8327Smckusick 	register struct _iobuf *iop;
6*8327Smckusick 	char *buf;
7*8327Smckusick 	int size;
8*8327Smckusick {
9*8327Smckusick 	if (iop->_base != NULL && iop->_flag&_IOMYBUF)
10*8327Smckusick 		free(iop->_base);
11*8327Smckusick 	iop->_flag &= ~(_IOMYBUF|_IONBF|_IOLBF);
12*8327Smckusick 	if ((iop->_base = buf) == NULL) {
13*8327Smckusick 		iop->_flag |= _IONBF;
14*8327Smckusick 		iop->_bufsiz = NULL;
15*8327Smckusick 	} else {
16*8327Smckusick 		iop->_ptr = iop->_base;
17*8327Smckusick 		iop->_bufsiz = size;
18*8327Smckusick 	}
19*8327Smckusick 	iop->_cnt = 0;
20*8327Smckusick }
21