xref: /plan9/sys/src/cmd/sleep.c (revision 7e254d1cd097e70d036c904c3aeb045816b212bf)
13e12c5d1SDavid du Colombier #include <u.h>
23e12c5d1SDavid du Colombier #include <libc.h>
33e12c5d1SDavid du Colombier 
43e12c5d1SDavid du Colombier void
main(int argc,char * argv[])53e12c5d1SDavid du Colombier main(int argc, char *argv[])
63e12c5d1SDavid du Colombier {
7*7e254d1cSDavid du Colombier 	long n;
8*7e254d1cSDavid du Colombier 	char *p, *q;
97dd7cddfSDavid du Colombier 
105e492409SDavid du Colombier 	if(argc>1){
11*7e254d1cSDavid du Colombier 		for(n = strtol(argv[1], &p, 0); n > 0; n--)
127dd7cddfSDavid du Colombier 			sleep(1000);
135e492409SDavid du Colombier 		/*
145e492409SDavid du Colombier 		 * no floating point because it is useful to
155e492409SDavid du Colombier 		 * be able to run sleep when bootstrapping
165e492409SDavid du Colombier 		 * a machine.
175e492409SDavid du Colombier 		 */
18*7e254d1cSDavid du Colombier 		if(*p++ == '.' && (n = strtol(p, &q, 10)) > 0){
19*7e254d1cSDavid du Colombier 			switch(q - p){
205e492409SDavid du Colombier 			case 0:
215e492409SDavid du Colombier 				break;
225e492409SDavid du Colombier 			case 1:
23*7e254d1cSDavid du Colombier 				n *= 100;
245e492409SDavid du Colombier 				break;
255e492409SDavid du Colombier 			case 2:
26*7e254d1cSDavid du Colombier 				n *= 10;
275e492409SDavid du Colombier 				break;
285e492409SDavid du Colombier 			default:
295e492409SDavid du Colombier 				p[3] = 0;
30*7e254d1cSDavid du Colombier 				n = strtol(p, 0, 10);
315e492409SDavid du Colombier 				break;
325e492409SDavid du Colombier 			}
33*7e254d1cSDavid du Colombier 			sleep(n);
345e492409SDavid du Colombier 		}
355e492409SDavid du Colombier 	}
363e12c5d1SDavid du Colombier 	exits(0);
373e12c5d1SDavid du Colombier }
38