]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - trek/getpar.c
grammar fix
[bsdgames-darwin.git] / trek / getpar.c
index 9a98626888ecf3f07d91060f727620b33bc80fdd..4a271d326106ac2eb83669500f20ef3e89217d41 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: getpar.c,v 1.9 2002/02/26 02:37:28 wiz Exp $   */
+/*     $NetBSD: getpar.c,v 1.18 2009/08/12 08:54:54 dholland Exp $     */
 
 /*
  * Copyright (c) 1980, 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.
  *
@@ -38,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)getpar.c   8.1 (Berkeley) 5/31/93";
 #else
-__RCSID("$NetBSD: getpar.c,v 1.9 2002/02/26 02:37:28 wiz Exp $");
+__RCSID("$NetBSD: getpar.c,v 1.18 2009/08/12 08:54:54 dholland Exp $");
 #endif
 #endif /* not lint */
 
@@ -48,21 +44,19 @@ __RCSID("$NetBSD: getpar.c,v 1.9 2002/02/26 02:37:28 wiz Exp $");
 #include "getpar.h"
 #include "trek.h"
 
-static int testterm __P((void));
+static int testterm(void);
 
 /**
  **    get integer parameter
  **/
 
 int
-getintpar(s)
-       const char      *s;
+getintpar(const char *s)
 {
        int     i;
        int             n;
 
-       while (1)
-       {
+       while (1) {
                if (testnl() && s)
                        printf("%s: ", s);
                i = scanf("%d", &n);
@@ -79,14 +73,13 @@ getintpar(s)
  **    get floating parameter
  **/
 
-double getfltpar(s)
-       const char      *s;
+double
+getfltpar(const char *s)
 {
        int             i;
        double                  d;
 
-       while (1)
-       {
+       while (1) {
                if (testnl() && s)
                        printf("%s: ", s);
                i = scanf("%lf", &d);
@@ -103,16 +96,14 @@ double getfltpar(s)
  **    get yes/no parameter
  **/
 
-const struct cvntab    Yntab[] =
-{
+static const struct cvntab Yntab[] = {
        { "y",  "es",   (cmdfun)1,      1 },
        { "n",  "o",    (cmdfun)0,      0 },
        { NULL, NULL,   NULL,           0 }
 };
 
 int
-getynpar(s)
-       const char      *s;
+getynpar(const char *s)
 {
        const struct cvntab     *r;
 
@@ -125,9 +116,8 @@ getynpar(s)
  **    get coded parameter
  **/
 
-const struct cvntab *getcodpar(s, tab)
-       const char              *s;
-       const struct cvntab     tab[];
+const struct cvntab *
+getcodpar(const char *s, const struct cvntab tab[])
 {
        char                            input[100];
        const struct cvntab             *r;
@@ -137,27 +127,26 @@ const struct cvntab *getcodpar(s, tab)
        int                             f;
 
        flag = 0;
-       while (1)
-       {
+       while (1) {
                flag |= (f = testnl());
                if (flag)
                        printf("%s: ", s);
-               if (f)
-                       cgetc(0);               /* throw out the newline */
+               if (f) {
+                       /* throw out the newline */
+                       getchar();
+               }
                scanf("%*[ \t;]");
-               if ((c = scanf("%[^ \t;\n]", input)) < 0)
+               if ((c = scanf("%99[^ \t;\n]", input)) < 0)
                        exit(1);
                if (c == 0)
                        continue;
                flag = 1;
 
                /* if command list, print four per line */
-               if (input[0] == '?' && input[1] == 0)
-               {
+               if (input[0] == '?' && input[1] == 0) {
                        c = 4;
-                       for (r = tab; r->abrev; r++)
-                       {
-                               strcpy(input, r->abrev);
+                       for (r = tab; r->abbrev; r++) {
+                               strcpy(input, r->abbrev);
                                strcat(input, r->full);
                                printf("%14.14s", input);
                                if (--c > 0)
@@ -171,14 +160,12 @@ const struct cvntab *getcodpar(s, tab)
                }
 
                /* search for in table */
-               for (r = tab; r->abrev; r++)
-               {
+               for (r = tab; r->abbrev; r++) {
                        p = input;
-                       for (q = r->abrev; *q; q++)
+                       for (q = r->abbrev; *q; q++)
                                if (*p++ != *q)
                                        break;
-                       if (!*q)
-                       {
+                       if (!*q) {
                                for (q = r->full; *p && *q; q++, p++)
                                        if (*p != *q)
                                                break;
@@ -188,12 +175,10 @@ const struct cvntab *getcodpar(s, tab)
                }
 
                /* check for not found */
-               if (!r->abrev)
-               {
+               if (!r->abbrev) {
                        printf("invalid input; ? for valid inputs\n");
                        skiptonl(0);
-               }
-               else
+               } else
                        return (r);
        }
 }
@@ -204,11 +189,7 @@ const struct cvntab *getcodpar(s, tab)
  **/
 
 void
-getstrpar(s, r, l, t)
-       const char      *s;
-       char    *r;
-       int     l;
-       const char      *t;
+getstrpar(const char *s, char *r, int l, const char *t)
 {
        int     i;
        char            format[20];
@@ -216,13 +197,12 @@ getstrpar(s, r, l, t)
 
        if (t == 0)
                t = " \t\n;";
-       (void)sprintf(format, "%%%d[^%s]", l, t);
-       while (1)
-       {
+       (void)snprintf(format, sizeof(format), "%%%d[^%s]", l, t);
+       while (1) {
                if ((f = testnl()) && s)
                        printf("%s: ", s);
                if (f)
-                       cgetc(0);
+                       getchar();
                scanf("%*[\t ;]");
                i = scanf(format, r);
                if (i < 0)
@@ -238,18 +218,21 @@ getstrpar(s, r, l, t)
  **/
 
 int
-testnl()
+testnl(void)
 {
-       char            c;
+       int c;
 
-       while ((c = cgetc(0)) != '\n')
+       while ((c = getchar()) != '\n') {
+               if (c == EOF) {
+                       exit(1);
+               }
                if ((c >= '0' && c <= '9') || c == '.' || c == '!' ||
-                               (c >= 'A' && c <= 'Z') ||
-                               (c >= 'a' && c <= 'z') || c == '-')
-               {
+                   (c >= 'A' && c <= 'Z') ||
+                   (c >= 'a' && c <= 'z') || c == '-') {
                        ungetc(c, stdin);
                        return(0);
                }
+       }
        ungetc(c, stdin);
        return (1);
 }
@@ -260,12 +243,14 @@ testnl()
  **/
 
 void
-skiptonl(c)
-int    c;
+skiptonl(int c)
 {
-       while (c != '\n')
-               if (!(c = cgetc(0)))
-                       return;
+       while (c != '\n') {
+               c = getchar();
+               if (c == EOF) {
+                       exit(1);
+               }
+       }
        ungetc('\n', stdin);
        return;
 }
@@ -276,12 +261,14 @@ int       c;
  **/
 
 static int
-testterm()
+testterm(void)
 {
-       char            c;
+       int c;
 
-       if (!(c = cgetc(0)))
-               return (1);
+       c = getchar();
+       if (c == EOF) {
+               exit(1);
+       }
        if (c == '.')
                return (0);
        if (c == '\n' || c == ';')
@@ -299,19 +286,17 @@ testterm()
 */
 
 int
-readdelim(d)
-char   d;
+readdelim(int d)
 {
-       char    c;
+       int c;
 
-       while ((c = cgetc(0)) != '\0')
-       {
+       while ((c = getchar()) != EOF) {
                if (c == d)
                        return (1);
                if (c == ' ')
                        continue;
                ungetc(c, stdin);
-               break;
+               return 0;
        }
-       return (0);
+       exit(1);
 }