Annotation of 40BSD/cmd/adb/input.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

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