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