X-Git-Url: https://git.cameronkatri.com/bsdgames-darwin.git/blobdiff_plain/b2ca333c4ad541145141d538923e93ec3464e29d..e68df2be2d86409745cee75571833732bdd20c9a:/trek/getpar.c diff --git a/trek/getpar.c b/trek/getpar.c index f2370f10..5d568323 100644 --- a/trek/getpar.c +++ b/trek/getpar.c @@ -1,4 +1,4 @@ -/* $NetBSD: getpar.c,v 1.3 1995/04/22 10:58:57 cgd Exp $ */ +/* $NetBSD: getpar.c,v 1.12 2004/01/27 20:30:31 jsm Exp $ */ /* * Copyright (c) 1980, 1993 @@ -12,11 +12,7 @@ * 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. * @@ -33,25 +29,32 @@ * SUCH DAMAGE. */ +#include #ifndef lint #if 0 static char sccsid[] = "@(#)getpar.c 8.1 (Berkeley) 5/31/93"; #else -static char rcsid[] = "$NetBSD: getpar.c,v 1.3 1995/04/22 10:58:57 cgd Exp $"; +__RCSID("$NetBSD: getpar.c,v 1.12 2004/01/27 20:30:31 jsm Exp $"); #endif #endif /* not lint */ -# include -# include "getpar.h" +#include +#include +#include +#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) @@ -73,9 +76,9 @@ char *s; **/ double getfltpar(s) -char *s; + const char *s; { - register int i; + int i; double d; while (1) @@ -96,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; } @@ -117,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; @@ -137,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; @@ -149,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; @@ -194,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;"; @@ -227,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 == '!' || @@ -248,8 +255,9 @@ testnl() ** scan for newline **/ +void skiptonl(c) -char c; +int c; { while (c != '\n') if (!(c = cgetc(0))) @@ -263,9 +271,10 @@ char c; ** test for valid terminator **/ +static int testterm() { - register char c; + char c; if (!(c = cgetc(0))) return (1); @@ -278,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);