1: /* Copyright (c) 1979 Regents of the University of California */
2:
3: static char sccsid[] = "@(#)READE.c 1.6 10/28/83";
4:
5: #include "h00vars.h"
6:
7: long
8: READE(curfile, name)
9:
10: register struct iorec *curfile;
11: char *name;
12: {
13: register short *sptr;
14: register int len;
15: register int nextlen;
16: register int cnt;
17: char *cp;
18: char namebuf[NAMSIZ];
19: int retval;
20:
21: if (curfile->funit & FWRITE) {
22: ERROR("%s: Attempt to read, but open for writing\n",
23: curfile->pfname);
24: return;
25: }
26: UNSYNC(curfile);
27: retval = fscanf(curfile->fbuf,
28: "%*[ \t\n]%74[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]",
29: namebuf);
30: if (retval == EOF) {
31: ERROR("%s: Tried to read past end of file\n", curfile->pfname);
32: return;
33: }
34: if (retval == 0)
35: goto ename;
36: for (len = 0; len < NAMSIZ && namebuf[len]; len++)
37: /* void */;
38: len++;
39: sptr = (short *)name;
40: cnt = *sptr++;
41: cp = name + sizeof (short) + *sptr;
42: do {
43: nextlen = *sptr++;
44: nextlen = *sptr - nextlen;
45: if (nextlen == len && RELEQ(len, namebuf, cp)) {
46: return *((short *) name) - cnt;
47: }
48: cp += (int)nextlen;
49: } while (--cnt);
50: ename:
51: ERROR("Unknown name \"%s\" found on enumerated type read\n", namebuf);
52: }
Defined functions
READE
defined in line
7; used 2 times
Defined variables
sccsid
defined in line
3;
never used