clean up awk syntax
[unix-history] / usr / src / old / sh / print.c
CommitLineData
f6227721
SL
1#ifndef lint
2static char sccsid[] = "@(#)print.c 4.2 %G%";
3#endif
e5e8435d
KM
4
5#
6/*
7 * UNIX shell
8 *
9 * S. R. Bourne
10 * Bell Telephone Laboratories
11 *
12 */
13
14#include "defs.h"
15
16CHAR numbuf[6];
17
18
19/* printing and io conversion */
20
21newline()
22{ prc(NL);
23}
24
25blank()
26{ prc(SP);
27}
28
29prp()
30{
31 IF (flags&prompt)==0 ANDF cmdadr
32 THEN prs(cmdadr); prs(colon);
33 FI
34}
35
36VOID 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
46VOID prc(c)
47 CHAR c;
48{
49 IF c
50 THEN write(output,&c,1);
51 FI
52}
53
54prt(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
69prn(n)
70 INT n;
71{
72 itos(n); prs(numbuf);
73}
74
75itos(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
87stoi(icp)
88STRING 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