Index: games/atc/main.c =================================================================== RCS file: /cvs/src/games/atc/main.c,v retrieving revision 1.23 diff -u -p -r1.23 main.c --- games/atc/main.c 13 Jul 2014 14:01:04 -0000 1.23 +++ games/atc/main.c 19 Nov 2015 22:36:50 -0000 @@ -46,12 +46,13 @@ #include "pathnames.h" int -main(int ac, char *av[]) +main(int argc, char *argv[]) { + int ch; int f_usage = 0, f_list = 0, f_showscore = 0; int f_printpath = 0; const char *file = NULL; - char *name, *ptr, *seed; + char *seed; struct sigaction sa; gid_t gid; struct itimerval itv; @@ -66,58 +67,48 @@ main(int ac, char *av[]) makenoise = 1; seed = NULL; - name = *av++; - while (*av) { -#ifndef SAVEDASH - if (**av == '-') - ++*av; - else - break; -#endif - ptr = *av++; - while (*ptr) { - switch (*ptr) { - case '?': - case 'u': - f_usage++; - break; - case 'l': - f_list++; - break; - case 's': - case 't': - f_showscore++; - break; - case 'p': - f_printpath++; - break; - case 'q': - makenoise = 0; - break; - case 'r': - seed = *av; - av++; - break; - case 'f': - case 'g': - file = *av; - av++; - break; - default: - warnx("unknown option '%c'", *ptr); - f_usage++; - break; - } - ptr++; + while ((ch = getopt(argc, argv, "f:g:lpqr:stu?")) != -1) { + switch (ch) { + case 'f': + case 'g': + file = optarg; + break; + case 'l': + f_list = 1; + break; + case 'p': + f_printpath = 1; + break; + case 'q': + makenoise = 0; + break; + case 'r': + seed = optarg; + break; + case 's': + case 't': + f_showscore = 1; + break; + case 'u': + case '?': + default: + f_usage = 1; + break; } } + argc -= optind; + argv += optind; + + if (argc > 0) + f_usage = 1; + if (seed != NULL) setseed(seed); if (f_usage) fprintf(stderr, "usage: %s [-lpqstu?] [-f game] [-g game] [-r seed]\n", - name); + getprogname()); if (f_showscore) log_score(1); if (f_list)