chiark / gitweb /
cgi: remove obsolete 'columns' option.
[disorder] / cgi / options.c
index b56b4248e729721849e7e19f5cc9ebd1311866d7..24038331d2bd29cbc5739611286c172e051029d7 100644 (file)
@@ -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
@@ -15,7 +15,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
-/** @file server/options.c
+/** @file cgi/options.c
  * @brief CGI options
  *
  * Options represent an additional configuration system private to the
 
 #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 },
 };
@@ -72,7 +62,7 @@ static void option__split_error(const char *msg,
                               void *u) {
   struct read_options_state *cs = u;
   
-  error(0, "%s:%d: %s", cs->name, cs->line, msg);
+  disorder_error(0, "%s:%d: %s", cs->name, cs->line, msg);
 }
 
 static void option__readfile(const char *name) {
@@ -84,7 +74,7 @@ static void option__readfile(const char *name) {
   if(!(cs.name = mx_find(name, 1/*report*/)))
     return;
   if(!(fp = fopen(cs.name, "r")))
-    fatal(errno, "error opening %s", cs.name);
+    disorder_fatal(errno, "error opening %s", cs.name);
   cs.line = 0;
   while(!inputline(cs.name, fp, &buffer, '\n')) {
     ++cs.line;
@@ -94,17 +84,17 @@ static void option__readfile(const char *name) {
     if(!n)
       continue;
     if((i = TABLE_FIND(options, name, vec[0])) == -1) {
-      error(0, "%s:%d: unknown option '%s'", cs.name, cs.line, vec[0]);
+      disorder_error(0, "%s:%d: unknown option '%s'", cs.name, cs.line, vec[0]);
       continue;
     }
     ++vec;
     --n;
     if(n < options[i].minargs) {
-      error(0, "%s:%d: too few arguments to '%s'", cs.name, cs.line, vec[-1]);
+      disorder_error(0, "%s:%d: too few arguments to '%s'", cs.name, cs.line, vec[-1]);
       continue;
     }
     if(n > options[i].maxargs) {
-      error(0, "%s:%d: too many arguments to '%s'", cs.name, cs.line, vec[-1]);
+      disorder_error(0, "%s:%d: too many arguments to '%s'", cs.name, cs.line, vec[-1]);
       continue;
     }
     options[i].handler(n, vec);
@@ -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