Annotation of cci/usr/src/bin/adb/input.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.