/* nyes.c -- yes(1) with count */ /* $Id$ */ /* Carlos Duarte , 980825 */ #include #include #include int isnumber(char *s, int *val) { int n; char *err; n = strtol(s, &err, 0); if (err == s || *err != 0) return 0; if (val) *val = n; return 1; } char * argv_to_string(char *av[], int ac) { char *fake_av[] = { "y", 0 }; int fake_ac = 1; char *s, *t; int tot, i; if (ac == 0) { av = fake_av; ac = fake_ac; } tot=0; for (i=0; i= argc) { printf("-n takes a number option\n"); exit(1); } if (isnumber(argv[i], &n)) break; printf("%s -- is not a number\n", argv[i]); exit(1); default: printf("%s -- bad option\n", argv[0]); exit(1); } } s = argv_to_string(&argv[i], argc-i); if (n) { do printf("%s\n", s); while (--n != 0); } else for (;;) printf("%s\n", s); free(s); return 0; }