]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - trek/getpar.c
convert __attribute__s to applicable cdefs.h macros
[bsdgames-darwin.git] / trek / getpar.c
index e032e4d882a81da387102d39a25d2b9ad1f3ba1d..5d5683231892060310bdd9b0b5de0014003f3981 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: getpar.c,v 1.12 2004/01/27 20:30:31 jsm Exp $  */
+
 /*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1980, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * 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.
  *
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-/*static char sccsid[] = "from: @(#)getpar.c   4.8 (Berkeley) 6/1/90";*/
-static char rcsid[] = "$Id: getpar.c,v 1.2 1993/08/01 18:50:28 mycroft Exp $";
+#if 0
+static char sccsid[] = "@(#)getpar.c   8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: getpar.c,v 1.12 2004/01/27 20:30:31 jsm Exp $");
+#endif
 #endif /* not lint */
 
-# include      <stdio.h>
-# include      "getpar.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "getpar.h"
+#include "trek.h"
+
+static int testterm(void);
 
 /**
  **    get integer parameter
  **/
 
+int
 getintpar(s)
-char   *s;
+       const char      *s;
 {
-       register int    i;
+       int     i;
        int             n;
 
        while (1)
@@ -68,9 +76,9 @@ char  *s;
  **/
 
 double getfltpar(s)
-char   *s;
+       const char      *s;
 {
-       register int            i;
+       int             i;
        double                  d;
 
        while (1)
@@ -91,20 +99,21 @@ char        *s;
  **    get yes/no parameter
  **/
 
-struct cvntab  Yntab[] =
+const struct cvntab    Yntab[] =
 {
-       "y",    "es",   (int (*)())1,   0,
-       "n",    "o",    (int (*)())0,   0,
-       0
+       { "y",  "es",   (cmdfun)1,      1 },
+       { "n",  "o",    (cmdfun)0,      0 },
+       { NULL, NULL,   NULL,           0 }
 };
 
+int
 getynpar(s)
-char   *s;
+       const char      *s;
 {
-       struct cvntab           *r;
+       const struct cvntab     *r;
 
        r = getcodpar(s, Yntab);
-       return ((int) r->value);
+       return r->value2;
 }
 
 
@@ -112,14 +121,14 @@ char      *s;
  **    get coded parameter
  **/
 
-struct cvntab *getcodpar(s, tab)
-char           *s;
-struct cvntab  tab[];
+const struct cvntab *getcodpar(s, tab)
+       const char              *s;
+       const struct cvntab     tab[];
 {
        char                            input[100];
-       register struct cvntab          *r;
+       const struct cvntab             *r;
        int                             flag;
-       register char                   *p, *q;
+       const char                      *p, *q;
        int                             c;
        int                             f;
 
@@ -132,7 +141,7 @@ struct cvntab       tab[];
                if (f)
                        cgetc(0);               /* throw out the newline */
                scanf("%*[ \t;]");
-               if ((c = scanf("%[^ \t;\n]", input)) < 0)
+               if ((c = scanf("%99[^ \t;\n]", input)) < 0)
                        exit(1);
                if (c == 0)
                        continue;
@@ -144,7 +153,8 @@ struct cvntab       tab[];
                        c = 4;
                        for (r = tab; r->abrev; r++)
                        {
-                               concat(r->abrev, r->full, input);
+                               strcpy(input, r->abrev);
+                               strcat(input, r->full);
                                printf("%14.14s", input);
                                if (--c > 0)
                                        continue;
@@ -189,15 +199,16 @@ struct cvntab     tab[];
  **    get string parameter
  **/
 
+void
 getstrpar(s, r, l, t)
-char   *s;
-char   *r;
-int    l;
-char   *t;
+       const char      *s;
+       char    *r;
+       int     l;
+       const char      *t;
 {
-       register int    i;
+       int     i;
        char            format[20];
-       register int    f;
+       int     f;
 
        if (t == 0)
                t = " \t\n;";
@@ -222,9 +233,10 @@ char       *t;
  **    test if newline is next valid character
  **/
 
+int
 testnl()
 {
-       register char           c;
+       char            c;
 
        while ((c = cgetc(0)) != '\n')
                if ((c >= '0' && c <= '9') || c == '.' || c == '!' ||
@@ -243,8 +255,9 @@ testnl()
  **    scan for newline
  **/
 
+void
 skiptonl(c)
-char   c;
+int    c;
 {
        while (c != '\n')
                if (!(c = cgetc(0)))
@@ -258,9 +271,10 @@ char       c;
  **    test for valid terminator
  **/
 
+static int
 testterm()
 {
-       register char           c;
+       char            c;
 
        if (!(c = cgetc(0)))
                return (1);
@@ -273,19 +287,20 @@ testterm()
 
 
 /*
-**  TEST FOR SPECIFIED DELIMETER
+**  TEST FOR SPECIFIED DELIMITER
 **
 **     The standard input is scanned for the parameter.  If found,
 **     it is thrown away and non-zero is returned.  If not found,
 **     zero is returned.
 */
 
+int
 readdelim(d)
 char   d;
 {
-       register char   c;
+       char    c;
 
-       while (c = cgetc(0))
+       while ((c = cgetc(0)) != '\0')
        {
                if (c == d)
                        return (1);