diff options
author | mjl <mjl@NetBSD.org> | 1999-07-24 15:50:44 +0000 |
---|---|---|
committer | mjl <mjl@NetBSD.org> | 1999-07-24 15:50:44 +0000 |
commit | a4477ce63070b816df1ad7f347b2c267f0d9d752 (patch) | |
tree | fd250dcd9e149963f38c08471e53bcea4379aa80 /atc | |
parent | b89a361943e53da59951cfbcb406221a2d5c4baa (diff) | |
download | bsdgames-darwin-a4477ce63070b816df1ad7f347b2c267f0d9d752.tar.gz bsdgames-darwin-a4477ce63070b816df1ad7f347b2c267f0d9d752.tar.zst bsdgames-darwin-a4477ce63070b816df1ad7f347b2c267f0d9d752.zip |
Use getopt instead of home grown command line parsing.
Patch from Joseph Myers <jsm28@cam.ac.uk> in PR/8062.
Diffstat (limited to 'atc')
-rw-r--r-- | atc/main.c | 74 |
1 files changed, 30 insertions, 44 deletions
@@ -1,4 +1,4 @@ -/* $NetBSD: main.c,v 1.9 1999/07/17 19:57:03 hubertf Exp $ */ +/* $NetBSD: main.c,v 1.10 1999/07/24 15:50:44 mjl Exp $ */ /*- * Copyright (c) 1990, 1993 @@ -55,7 +55,7 @@ __COPYRIGHT("@(#) Copyright (c) 1990, 1993\n\ #if 0 static char sccsid[] = "@(#)main.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: main.c,v 1.9 1999/07/17 19:57:03 hubertf Exp $"); +__RCSID("$NetBSD: main.c,v 1.10 1999/07/24 15:50:44 mjl Exp $"); #endif #endif /* not lint */ @@ -72,7 +72,7 @@ main(ac, av) int f_usage = 0, f_list = 0, f_showscore = 0; int f_printpath = 0; const char *file = NULL; - char *name, *ptr; + int ch; struct sigaction sa; #ifdef BSD struct itimerval itv; @@ -82,56 +82,42 @@ main(ac, av) open_score_file(); setregid(getgid(), getgid()); - start_time = seed = time(0); + start_time = seed = time(NULL); - name = *av++; - while (*av) { -#ifndef SAVEDASH - if (**av == '-') - ++*av; - else + while ((ch = getopt(ac, av, "ulstpg:f:r:")) != -1) { + switch (ch) { + case '?': + case 'u': + default: + f_usage++; + break; + case 'l': + f_list++; + break; + case 's': + case 't': + f_showscore++; + break; + case 'p': + f_printpath++; + break; + case 'r': + seed = atoi(optarg); + break; + case 'f': + case 'g': + file = optarg; 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 'r': - seed = atoi(*av); - av++; - break; - case 'f': - case 'g': - file = *av; - av++; - break; - default: - warnx("unknown option '%c'\n", *ptr); - f_usage++; - break; - } - ptr++; } } + if (optind < ac) + f_usage++; srandom(seed); if (f_usage) fprintf(stderr, "Usage: %s -[u?lstp] [-[gf] game_name] [-r random seed]\n", - name); + av[0]); if (f_showscore) log_score(1); if (f_list) |