|
|
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.