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)

Reply via email to