X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/087a9b2eaf10974c1b3025bf7d439c2371625e70..7800abb34c5ad639a4ab0d22da044767b56a1c78:/cgi/options.c diff --git a/cgi/options.c b/cgi/options.c index fca5801..2403833 100644 --- a/cgi/options.c +++ b/cgi/options.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2004-2008 Richard Kettlewell + * Copyright (C) 2004-2008, 2011 Richard Kettlewell * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,18 +24,12 @@ #include "disorder-cgi.h" -struct column { - int ncolumns; - char **columns; -}; - struct read_options_state { const char *name; int line; }; static hash *labels; -static hash *columns; static void option__readfile(const char *name); @@ -49,21 +43,17 @@ static void option__include(int attribute((unused)) nvec, option__readfile(vec[0]); } -static void option__columns(int nvec, - char **vec) { - struct column c; - - c.ncolumns = nvec - 1; - c.columns = &vec[1]; - hash_add(columns, vec[0], &c, HASH_INSERT_OR_REPLACE); -} - +/** @brief Definition of an option command */ static struct option { + /** @brief Command name */ const char *name; - int minargs, maxargs; + /** @brief Minimum number of arguments */ + int minargs; + /** @brief Maximum number of arguments */ + int maxargs; + /** @brief Command handler */ void (*handler)(int nvec, char **vec); } options[] = { - { "columns", 1, INT_MAX, option__columns }, { "include", 1, 1, option__include }, { "label", 2, 2, option__label }, }; @@ -118,7 +108,6 @@ static void option__init(void) { if(!have_read_options) { have_read_options = 1; labels = hash_new(sizeof (char *)); - columns = hash_new(sizeof (struct column)); option__readfile("options"); } } @@ -186,27 +175,6 @@ int option_label_exists(const char *key) { return !!hash_find(labels, key); } -/** @brief Return a column list - * @param name Context (playing/recent/etc) - * @param ncolumns Where to store column count or NULL - * @return Pointer to column list - */ -char **option_columns(const char *name, int *ncolumns) { - struct column *c; - - option__init(); - c = hash_find(columns, name); - if(c) { - if(ncolumns) - *ncolumns = c->ncolumns; - return c->columns; - } else { - if(ncolumns) - *ncolumns = 0; - return 0; - } -} - /* Local Variables: c-basic-offset:2