]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - hangman/main.c
off-by-one. aaron@openbsd
[bsdgames-darwin.git] / hangman / main.c
index 0bab3e90c74388563583290d847bff4e08bab490..a59e212d7ac5d4b7c81a20f05cb5e4ed97809d59 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: main.c,v 1.8 1999/09/17 20:45:49 jsm Exp $     */
+/*     $NetBSD: main.c,v 1.11 2003/08/07 09:37:22 agc Exp $    */
 
 /*
  * Copyright (c) 1983, 1993
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
@@ -43,10 +39,11 @@ __COPYRIGHT("@(#) Copyright (c) 1983, 1993\n\
 #if 0
 static char sccsid[] = "@(#)main.c     8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: main.c,v 1.8 1999/09/17 20:45:49 jsm Exp $");
+__RCSID("$NetBSD: main.c,v 1.11 2003/08/07 09:37:22 agc Exp $");
 #endif
 #endif /* not lint */
 
+#include       <err.h>
 #include       "hangman.h"
 
 /*
@@ -60,16 +57,21 @@ main(argc, argv)
        int ch;
 
        /* Revoke setgid privileges */
-       setregid(getgid(), getgid());
+       setgid(getgid());
 
-       while ((ch = getopt(argc, argv, "d:")) != -1) {
+       while ((ch = getopt(argc, argv, "d:m:")) != -1) {
                switch (ch) {
                case 'd':
                        Dict_name = optarg;
                        break;
+               case 'm':
+                       Minlen = atoi(optarg);
+                       if (Minlen < 2)
+                               errx(1, "minimum word length too short");
+                       break;
                case '?':
                default:
-                       (void)fprintf(stderr, "usage: hangman [-d wordlist]\n");
+                       (void)fprintf(stderr, "usage: hangman [-d wordlist] [-m minlen]\n");
                        exit(1);
                }
        }