]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - bcd/bcd.c
Changed deprecated curses call to new equivalent.
[bsdgames-darwin.git] / bcd / bcd.c
index ea554a343fcc22aaa0dc759977d40d04c94a8eb9..6cc595a0206644a8eca7eb4910e01170e78efc37 100644 (file)
--- a/bcd/bcd.c
+++ b/bcd/bcd.c
@@ -1,4 +1,4 @@
-/*     $NetBSD: bcd.c,v 1.5 1995/03/21 15:08:15 cgd Exp $      */
+/*     $NetBSD: bcd.c,v 1.11 2000/07/03 03:57:40 matt Exp $    */
 
 /*
  * Copyright (c) 1989, 1993
 
 /*
  * Copyright (c) 1989, 1993
  * SUCH DAMAGE.
  */
 
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
 #ifndef lint
-static char copyright[] =
-"@(#) Copyright (c) 1989, 1993\n\
-       The Regents of the University of California.  All rights reserved.\n";
+__COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\
+       The Regents of the University of California.  All rights reserved.\n");
 #endif /* not lint */
 
 #ifndef lint
 #endif /* not lint */
 
 #ifndef lint
+#if 0
 static char sccsid[] = "@(#)bcd.c      8.2 (Berkeley) 3/20/94";
 static char sccsid[] = "@(#)bcd.c      8.2 (Berkeley) 3/20/94";
+#else
+__RCSID("$NetBSD: bcd.c,v 1.11 2000/07/03 03:57:40 matt Exp $");
+#endif
 #endif /* not lint */
 
 /*
 #endif /* not lint */
 
 /*
@@ -79,9 +83,12 @@ static char sccsid[] = "@(#)bcd.c    8.2 (Berkeley) 3/20/94";
 #include <sys/types.h>
 
 #include <stdio.h>
 #include <sys/types.h>
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <ctype.h>
 #include <ctype.h>
+#include <unistd.h>
 
 
-u_short holes[256] = {
+const u_short holes[256] = {
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
     0x0,        0x0,     0x0,     0x0,     0x0,     0x0,     0x0,     0x0,
@@ -121,6 +128,9 @@ u_short holes[256] = {
  */
 #define        bit(w,i)        ((w)&(1<<(i)))
 
  */
 #define        bit(w,i)        ((w)&(1<<(i)))
 
+int    main __P((int, char *[]));
+void   printcard __P((char *));
+
 int
 main(argc, argv)
        int argc;
 int
 main(argc, argv)
        int argc;
@@ -128,6 +138,9 @@ main(argc, argv)
 {
        char cardline[80];
 
 {
        char cardline[80];
 
+       /* revoke setgid privileges */
+       setgid(getgid());
+
        /*
         * The original bcd prompts with a "%" when reading from stdin,
         * but this seems kind of silly.  So this one doesn't.
        /*
         * The original bcd prompts with a "%" when reading from stdin,
         * but this seems kind of silly.  So this one doesn't.
@@ -144,16 +157,16 @@ main(argc, argv)
 
 #define        COLUMNS 48
 
 
 #define        COLUMNS 48
 
+void
 printcard(str)
 printcard(str)
-       register char *str;
+       char *str;
 {
 {
-       static char rowchars[] = "   123456789";
-       register int i, row;
-       register char *p;
-       char *index();
+       static const char rowchars[] = "   123456789";
+       int i, row;
+       unsigned char *p;
 
        /* ruthlessly remove newlines and truncate at 48 characters. */
 
        /* ruthlessly remove newlines and truncate at 48 characters. */
-       if ((p = index(str, '\n')))
+       if ((p = strchr(str, '\n')))
                *p = '\0';
 
        if (strlen(str) > COLUMNS)
                *p = '\0';
 
        if (strlen(str) > COLUMNS)
@@ -177,7 +190,7 @@ printcard(str)
        p = str;
        putchar('/');
        for (i = 1; *p; i++, p++)
        p = str;
        putchar('/');
        for (i = 1; *p; i++, p++)
-               if (holes[*p])
+               if (holes[(int)*p])
                        putchar(*p);
                else
                        putchar(' ');
                        putchar(*p);
                else
                        putchar(' ');
@@ -195,7 +208,7 @@ printcard(str)
        for (row = 0; row <= 11; ++row) {
                putchar('|');
                for (i = 0, p = str; *p; i++, p++) {
        for (row = 0; row <= 11; ++row) {
                putchar('|');
                for (i = 0, p = str; *p; i++, p++) {
-                       if (bit(holes[*p], 11 - row))
+                       if (bit(holes[(int)*p], 11 - row))
                                putchar(']');
                        else
                                putchar(rowchars[row]);
                                putchar(']');
                        else
                                putchar(rowchars[row]);