Bell 32V development
[unix-history] / usr / src / cmd / sh / print.c
CommitLineData
862515b8
TL
1#
2/*
3 * UNIX shell
4 *
5 * S. R. Bourne
6 * Bell Telephone Laboratories
7 *
8 */
9
10#include "defs.h"
11
12CHAR numbuf[6];
13
14
15/* printing and io conversion */
16
17newline()
18{ prc(NL);
19}
20
21blank()
22{ prc(SP);
23}
24
25prp()
26{
27 IF (flags&prompt)==0 ANDF cmdadr
28 THEN prs(cmdadr); prs(colon);
29 FI
30}
31
32VOID 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
42VOID prc(c)
43 CHAR c;
44{
45 IF c
46 THEN write(output,&c,1);
47 FI
48}
49
50prt(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
65prn(n)
66 INT n;
67{
68 itos(n); prs(numbuf);
69}
70
71itos(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
83stoi(icp)
84STRING 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}
97