lint fixes
[unix-history] / usr / src / usr.bin / pascal / libpc / READE.c
CommitLineData
0148435a
KM
1/* Copyright (c) 1979 Regents of the University of California */
2
e5053b93 3static char sccsid[] = "@(#)READE.c 1.3 %G%";
0148435a
KM
4
5#include "h00vars.h"
6#include "h01errs.h"
7
8READE(curfile, name)
9
10 register struct iorec *curfile;
11 char *name;
12{
13 long data;
14
15 register short *sptr;
16 register int len;
17 register int nextlen;
18 register int cnt;
19 char *cp;
20 char namebuf[NAMSIZ];
53909d1e 21 int retval;
0148435a
KM
22
23 if (curfile->funit & FWRITE) {
24 ERROR(EREADIT, curfile->pfname);
25 return;
26 }
27 UNSYNC(curfile);
53909d1e 28 retval = fscanf(curfile->fbuf,
0148435a 29 "%*[ \t\n]%74[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]",
53909d1e
KM
30 namebuf);
31 if (retval == EOF) {
32 ERROR(EPASTEOF, curfile->pfname);
33 return;
34 }
35 if (retval == 0) {
0148435a
KM
36 ERROR(ENUMNTFD, namebuf);
37 return;
38 }
e5053b93 39 curfile->funit &= ~EOLN;
0148435a
KM
40 curfile->funit |= SYNC;
41 for (len = 0; len < NAMSIZ && namebuf[len]; len++)
42 /* void */;
43 len++;
44 sptr = (short *)name;
45 cnt = *sptr++;
46 cp = name + sizeof (short) + *sptr;
47 do {
48 nextlen = *sptr++;
49 nextlen = *sptr - nextlen;
50 if (nextlen == len && RELEQ(len, namebuf, cp)) {
51 return *((short *) name) - cnt;
52 }
53 cp += nextlen;
54 } while (--cnt);
55 ERROR(ENUMNTFD, namebuf);
56}