xref: /csrg-svn/old/sh/print.c (revision 14479)
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