xref: /csrg-svn/lib/libc/stdio/ungetc.c (revision 2037)
1*2037Swnj /* @(#)ungetc.c	4.1 (Berkeley) 12/21/80 */
2*2037Swnj #include <stdio.h>
3*2037Swnj 
4*2037Swnj ungetc(c, iop)
5*2037Swnj register FILE *iop;
6*2037Swnj {
7*2037Swnj 	if (c == EOF)
8*2037Swnj 		return(-1);
9*2037Swnj 	if ((iop->_flag&_IOREAD)==0 || iop->_ptr <= iop->_base)
10*2037Swnj 		if (iop->_ptr == iop->_base && iop->_cnt==0)
11*2037Swnj 			*iop->_ptr++;
12*2037Swnj 		else
13*2037Swnj 			return(-1);
14*2037Swnj 	iop->_cnt++;
15*2037Swnj 	*--iop->_ptr = c;
16*2037Swnj 	return(0);
17*2037Swnj }
18