X-Git-Url: https://git.distorted.org.uk/~mdw/fwd/blobdiff_plain/e73034b0d2191f00a8b00f38383843ea8858c576..e68b88bf4ad78f86ac74c52adba87d27c59ed121:/conf.c diff --git a/conf.c b/conf.c index 73b611f..dfc3765 100644 --- a/conf.c +++ b/conf.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: conf.c,v 1.3 1999/08/19 18:32:48 mdw Exp $ + * $Id: conf.c,v 1.6 2000/02/12 18:13:20 mdw Exp $ * * Configuration parsing * @@ -29,6 +29,15 @@ /*----- Revision history --------------------------------------------------* * * $Log: conf.c,v $ + * Revision 1.6 2000/02/12 18:13:20 mdw + * Terminate tables of sources and targets. + * + * Revision 1.5 1999/10/22 22:46:44 mdw + * Improve documentation for conf_enum. + * + * Revision 1.4 1999/10/15 21:12:36 mdw + * Remove redundant debugging code. + * * Revision 1.3 1999/08/19 18:32:48 mdw * Improve lexical analysis. In particular, `chmod' patterns don't have to * be quoted any more. @@ -67,8 +76,10 @@ /*----- Source and target tables ------------------------------------------*/ -static source_ops *sources[] = { &xsource_ops, &fsource_ops, &ssource_ops }; -static target_ops *targets[] = { &xtarget_ops, &ftarget_ops, &starget_ops }; +static source_ops *sources[] = + { &xsource_ops, &fsource_ops, &ssource_ops, 0 }; +static target_ops *targets[] = + { &xtarget_ops, &ftarget_ops, &starget_ops, 0 }; static const char *notword = 0; static const char *notdelim = 0; @@ -194,7 +205,6 @@ int token(scanner *sc) } done: -/* printf("token `%s'\n", sc->d.buf); */ return (sc->t); } @@ -245,9 +255,15 @@ void error(scanner *sc, const char *msg, ...) * Returns: Index into list, zero-based, or @-1@. * * Use: Checks whether the current token is a string which matches - * one of the comma-separated items given. If not, an error is - * reported; otherwise the index of the matched item is - * returned. + * one of the comma-separated items given. The return value is + * the index (zero-based) of the matched string in the list. + * + * The flags control the behaviour if no exact match is found. + * If @ENUM_ABBREV@ is set, and the current token is a left + * substring of exactly one of the possibilities, then that one + * is chosen. If @ENUM_NONE@ is set, the value @-1@ is + * returned; otherwise an error is reported and the program is + * terminated. */ int conf_enum(scanner *sc, const char *list, unsigned f, const char *err)