xref: /csrg-svn/usr.bin/pascal/libpc/READ4.c (revision 2309)
11679Smckusick /* Copyright (c) 1979 Regents of the University of California */
21679Smckusick 
3*2309Smckusic static char sccsid[] = "@(#)READ4.c 1.3 01/28/81";
41679Smckusick 
51679Smckusick #include "h00vars.h"
61679Smckusick #include "h01errs.h"
71679Smckusick 
81679Smckusick READ4(curfile)
91679Smckusick 
101679Smckusick 	register struct iorec	*curfile;
111679Smckusick {
122223Smckusic 	int			data, retval;
131679Smckusick 
141679Smckusick 	if (curfile->funit & FWRITE) {
151679Smckusick 		ERROR(EREADIT, curfile->pfname);
161679Smckusick 		return;
171679Smckusick 	}
181679Smckusick 	UNSYNC(curfile);
192223Smckusic 	retval = fscanf(curfile->fbuf, "%ld", &data);
202223Smckusic 	if (retval == EOF) {
212223Smckusic 		ERROR(EPASTEOF, curfile->pfname);
222223Smckusic 		return;
232223Smckusic 	}
242223Smckusic 	if (retval == 0) {
251679Smckusick 		ERROR(EBADINUM, curfile->pfname);
261679Smckusick 		return;
271679Smckusick 	}
28*2309Smckusic 	curfile->funit &= ~EOLN;
291679Smckusick 	curfile->funit |= SYNC;
301679Smckusick 	return data;
311679Smckusick }
32