V9/libc/stdio/setbuf.c

Compare this file to the similar file:
Show the results in this format:

/* @(#)setbuf.c	4.1 (Berkeley) 12/21/80 */
#include	<stdio.h>

setbuf(iop, buf)
register struct _iobuf *iop;
char *buf;
{
	extern _cleanup();
	extern _setcleanup;

	if(_setcleanup){
		_setcleanup = 0;
		onexit(_cleanup);
	}
	if (iop->_base != NULL && iop->_flag&_IOMYBUF)
		free(iop->_base);
	iop->_flag &= ~(_IOMYBUF|_IONBF|_IOLBF);
	if ((iop->_base = (unsigned char *)buf) == NULL)
		iop->_flag |= _IONBF;
	else
		iop->_ptr = iop->_base;
	iop->_cnt = 0;
}