change over to new error message format
[unix-history] / usr / src / usr.bin / pascal / libpc / READ4.c
CommitLineData
ffbbb01b
KM
1/* Copyright (c) 1979 Regents of the University of California */
2
86997b19 3static char sccsid[] = "@(#)READ4.c 1.5 %G%";
ffbbb01b
KM
4
5#include "h00vars.h"
ffbbb01b 6
492cc5d3 7long
ffbbb01b
KM
8READ4(curfile)
9
10 register struct iorec *curfile;
11{
492cc5d3
KM
12 long data;
13 int retval;
ffbbb01b
KM
14
15 if (curfile->funit & FWRITE) {
86997b19
KM
16 ERROR("%s: Attempt to read, but open for writing\n",
17 curfile->pfname);
ffbbb01b
KM
18 return;
19 }
20 UNSYNC(curfile);
53909d1e
KM
21 retval = fscanf(curfile->fbuf, "%ld", &data);
22 if (retval == EOF) {
86997b19 23 ERROR("%s: Tried to read past end of file\n", curfile->pfname);
53909d1e
KM
24 return;
25 }
26 if (retval == 0) {
86997b19 27 ERROR("%s: Bad data found on integer read\n", curfile->pfname);
ffbbb01b
KM
28 return;
29 }
e5053b93 30 curfile->funit &= ~EOLN;
ffbbb01b
KM
31 curfile->funit |= SYNC;
32 return data;
33}