1*14479Ssam #ifndef lint
2*14479Ssam static char sccsid[] = "@(#)print.c 4.2 08/11/83";
3*14479Ssam #endif
46701Smckusick
56701Smckusick #
66701Smckusick /*
76701Smckusick * UNIX shell
86701Smckusick *
96701Smckusick * S. R. Bourne
106701Smckusick * Bell Telephone Laboratories
116701Smckusick *
126701Smckusick */
136701Smckusick
146701Smckusick #include "defs.h"
156701Smckusick
166701Smckusick CHAR numbuf[6];
176701Smckusick
186701Smckusick
196701Smckusick /* printing and io conversion */
206701Smckusick
newline()216701Smckusick newline()
226701Smckusick { prc(NL);
236701Smckusick }
246701Smckusick
blank()256701Smckusick blank()
266701Smckusick { prc(SP);
276701Smckusick }
286701Smckusick
prp()296701Smckusick prp()
306701Smckusick {
316701Smckusick IF (flags&prompt)==0 ANDF cmdadr
326701Smckusick THEN prs(cmdadr); prs(colon);
336701Smckusick FI
346701Smckusick }
356701Smckusick
prs(as)366701Smckusick VOID prs(as)
376701Smckusick STRING as;
386701Smckusick {
396701Smckusick REG STRING s;
406701Smckusick
416701Smckusick IF s=as
426701Smckusick THEN write(output,s,length(s)-1);
436701Smckusick FI
446701Smckusick }
456701Smckusick
prc(c)466701Smckusick VOID prc(c)
476701Smckusick CHAR c;
486701Smckusick {
496701Smckusick IF c
506701Smckusick THEN write(output,&c,1);
516701Smckusick FI
526701Smckusick }
536701Smckusick
prt(t)546701Smckusick prt(t)
556701Smckusick L_INT t;
566701Smckusick {
576701Smckusick REG INT hr, min, sec;
586701Smckusick
596701Smckusick t += 30; t /= 60;
606701Smckusick sec=t%60; t /= 60;
616701Smckusick min=t%60;
626701Smckusick IF hr=t/60
636701Smckusick THEN prn(hr); prc('h');
646701Smckusick FI
656701Smckusick prn(min); prc('m');
666701Smckusick prn(sec); prc('s');
676701Smckusick }
686701Smckusick
prn(n)696701Smckusick prn(n)
706701Smckusick INT n;
716701Smckusick {
726701Smckusick itos(n); prs(numbuf);
736701Smckusick }
746701Smckusick
itos(n)756701Smckusick itos(n)
766701Smckusick {
776701Smckusick REG char *abuf; REG POS a, i; INT pr, d;
786701Smckusick abuf=numbuf; pr=FALSE; a=n;
796701Smckusick FOR i=10000; i!=1; i/=10
806701Smckusick DO IF (pr |= (d=a/i)) THEN *abuf++=d+'0' FI
816701Smckusick a %= i;
826701Smckusick OD
836701Smckusick *abuf++=a+'0';
846701Smckusick *abuf++=0;
856701Smckusick }
866701Smckusick
stoi(icp)876701Smckusick stoi(icp)
886701Smckusick STRING icp;
896701Smckusick {
906701Smckusick REG CHAR *cp = icp;
916701Smckusick REG INT r = 0;
926701Smckusick REG CHAR c;
936701Smckusick
946701Smckusick WHILE (c = *cp, digit(c)) ANDF c ANDF r>=0
956701Smckusick DO r = r*10 + c - '0'; cp++ OD
966701Smckusick IF r<0 ORF cp==icp
976701Smckusick THEN failed(icp,badnum);
986701Smckusick ELSE return(r);
996701Smckusick FI
1006701Smckusick }
1016701Smckusick
102