xref: /original-bsd/usr.bin/pascal/libpc/READ4.c (revision 1b9b0bae)
1 /* Copyright (c) 1979 Regents of the University of California */
2 
3 static char sccsid[] = "@(#)READ4.c 1.2 01/24/81";
4 
5 #include "h00vars.h"
6 #include "h01errs.h"
7 
8 READ4(curfile)
9 
10 	register struct iorec	*curfile;
11 {
12 	int			data, retval;
13 
14 	if (curfile->funit & FWRITE) {
15 		ERROR(EREADIT, curfile->pfname);
16 		return;
17 	}
18 	UNSYNC(curfile);
19 	retval = fscanf(curfile->fbuf, "%ld", &data);
20 	if (retval == EOF) {
21 		ERROR(EPASTEOF, curfile->pfname);
22 		return;
23 	}
24 	if (retval == 0) {
25 		ERROR(EBADINUM, curfile->pfname);
26 		return;
27 	}
28 	curfile->funit |= SYNC;
29 	return data;
30 }
31