Annotation of 43BSD/bin/sh/print.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)print.c    4.2 8/11/83";
                      3: #endif
                      4: 
                      5: #
                      6: /*
                      7:  * UNIX shell
                      8:  *
                      9:  * S. R. Bourne
                     10:  * Bell Telephone Laboratories
                     11:  *
                     12:  */
                     13: 
                     14: #include       "defs.h"
                     15: 
                     16: CHAR           numbuf[6];
                     17: 
                     18: 
                     19: /* printing and io conversion */
                     20: 
                     21: newline()
                     22: {      prc(NL);
                     23: }
                     24: 
                     25: blank()
                     26: {      prc(SP);
                     27: }
                     28: 
                     29: prp()
                     30: {
                     31:        IF (flags&prompt)==0 ANDF cmdadr
                     32:        THEN    prs(cmdadr); prs(colon);
                     33:        FI
                     34: }
                     35: 
                     36: VOID   prs(as)
                     37:        STRING          as;
                     38: {
                     39:        REG STRING      s;
                     40: 
                     41:        IF s=as
                     42:        THEN    write(output,s,length(s)-1);
                     43:        FI
                     44: }
                     45: 
                     46: VOID   prc(c)
                     47:        CHAR            c;
                     48: {
                     49:        IF c
                     50:        THEN    write(output,&c,1);
                     51:        FI
                     52: }
                     53: 
                     54: prt(t)
                     55:        L_INT           t;
                     56: {
                     57:        REG INT hr, min, sec;
                     58: 
                     59:        t += 30; t /= 60;
                     60:        sec=t%60; t /= 60;
                     61:        min=t%60;
                     62:        IF hr=t/60
                     63:        THEN    prn(hr); prc('h');
                     64:        FI
                     65:        prn(min); prc('m');
                     66:        prn(sec); prc('s');
                     67: }
                     68: 
                     69: prn(n)
                     70:        INT             n;
                     71: {
                     72:        itos(n); prs(numbuf);
                     73: }
                     74: 
                     75: itos(n)
                     76: {
                     77:        REG char *abuf; REG POS a, i; INT pr, d;
                     78:        abuf=numbuf; pr=FALSE; a=n;
                     79:        FOR i=10000; i!=1; i/=10
                     80:        DO      IF (pr |= (d=a/i)) THEN *abuf++=d+'0' FI
                     81:                a %= i;
                     82:        OD
                     83:        *abuf++=a+'0';
                     84:        *abuf++=0;
                     85: }
                     86: 
                     87: stoi(icp)
                     88: STRING icp;
                     89: {
                     90:        REG CHAR        *cp = icp;
                     91:        REG INT         r = 0;
                     92:        REG CHAR        c;
                     93: 
                     94:        WHILE (c = *cp, digit(c)) ANDF c ANDF r>=0
                     95:        DO r = r*10 + c - '0'; cp++ OD
                     96:        IF r<0 ORF cp==icp
                     97:        THEN    failed(icp,badnum);
                     98:        ELSE    return(r);
                     99:        FI
                    100: }
                    101: 

unix.superglobalmegacorp.com

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