|
|
1.1 root 1: #
2: /*
3: *
4: * UNIX debugger
5: *
6: */
7:
8: #include "defs.h"
9: static char sccsid[] = "%Z%%M% %I% %G%";
10:
11: INT mkfault;
12: CHAR line[LINSIZ];
13: INT infile;
14: CHAR *lp;
15: CHAR peekc,lastc = EOR;
16: INT eof;
17:
18: /* input routines */
19:
20: eol(c)
21: CHAR c;
22: {
23: return(c==EOR ORF c==';');
24: }
25:
26: rdc()
27: { REP readchar();
28: PER lastc==SP ORF lastc==TB
29: DONE
30: return(lastc);
31: }
32:
33: readchar()
34: {
35: IF eof
36: THEN lastc=0;
37: ELSE IF lp==0
38: THEN lp=line;
39: REP eof = read(infile,lp,1)==0;
40: IF mkfault THEN error(0); FI
41: PER eof==0 ANDF *lp++!=EOR DONE
42: *lp=0; lp=line;
43: FI
44: IF lastc = peekc THEN peekc=0;
45: ELIF lastc = *lp THEN lp++;
46: FI
47: FI
48: return(lastc);
49: }
50:
51: nextchar()
52: {
53: IF eol(rdc())
54: THEN lp--; return(0);
55: ELSE return(lastc);
56: FI
57: }
58:
59: quotchar()
60: {
61: IF readchar()=='\\'
62: THEN return(readchar());
63: ELIF lastc=='\''
64: THEN return(0);
65: ELSE return(lastc);
66: FI
67: }
68:
69: getformat(deformat)
70: STRING deformat;
71: {
72: REG STRING fptr;
73: REG BOOL quote;
74: fptr=deformat; quote=FALSE;
75: WHILE (quote ? readchar()!=EOR : !eol(readchar()))
76: DO IF (*fptr++ = lastc)=='"'
77: THEN quote = ~quote;
78: FI
79: OD
80: lp--;
81: IF fptr!=deformat THEN *fptr++ = '\0'; FI
82: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.