From 0f7c7985baf304b2fe0cbdd330083a21776cec09 Mon Sep 17 00:00:00 2001 From: dtb Date: Tue, 14 Jun 2022 17:06:13 -0400 Subject: [PATCH] use libio --- src/sleep.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/sleep.c b/src/sleep.c index 7e713e0..ab5921c 100644 --- a/src/sleep.c +++ b/src/sleep.c @@ -1,20 +1,26 @@ +#include /* isdigit(3) */ #include /* atoi(3) */ #include /* EX_USAGE */ #include /* sleep(3) */ -#include "libstris.h" /* stris(3) */ -#include "noargvzero.h" +#include "libio.h" + +static char *program_name = "sleep"; int main(int argc, char **argv){ int s; - NOARGVZERO(argv); - if(argc != 2 || !stris(STRIS_TYPE_INT, argv[1])){ - write(2, "Usage: ", 7); - for(s = 0; argv[0][s] != '\0'; ++s); - write(2, argv[0], s); + if(argc != 2){ +usage: write(2, "Usage: ", 7); + if(argv[0] == NULL) + argv[0] = program_name; + fdprint(2, argv[0]); write(2, " [seconds]\n", 11); return EX_USAGE; } - s = atoi(argv[1]); + s = parse_uint(argv[1]); + while(isdigit(*argv[1])) + ++argv[1]; + if(*argv[1] != '\0') + goto usage; while(s > 0) s = sleep(s); return s;