void option_set(const char *name, const char *value);
const char *option_label(const char *key);
int option_label_exists(const char *key);
-char **option_columns(const char *name, int *ncolumns);
#define DCGI_QUEUE 0x0001
#define DCGI_PLAYING 0x0002
/*
* 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
#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);
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 */
/** @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 },
};
if(!have_read_options) {
have_read_options = 1;
labels = hash_new(sizeof (char *));
- columns = hash_new(sizeof (struct column));
option__readfile("options");
}
}
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
.\"
-.\" Copyright (C) 2008 Richard Kettlewell
+.\" Copyright (C) 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
.SH DIRECTIVES
Valid directives are:
.TP
-.B columns \fINAME\fR \fIHEADING\fR...
-Defines the columns used in \fB@playing@\fR and \fB@recent@\fB.
-\fINAME\fR must be either \fBplaying\fR, \fBrecent\fR or \fBsearch\fR.
-\fIHEADING\fR... is a list of heading names.
-If a column is defined more than once then the last definitions is used.
-.IP
-The heading names \fBbutton\fR, \fBlength\fR, \fBwhen\fR and \fBwho\fR
-are built in.
-.TP
.B include \fIPATH\fR
Includes another file.
If \fIPATH\fR starts with a \fB/\fR then it is taken as is, otherwise
Labels are not individually documented here, see the shipped
\fIoptions.labels\fR file instead.
.SH "OPTION FILES"
-The shipped \fIoptions\fR file includes four standard options files.
+The shipped \fIoptions\fR file includes two standard options files.
In order, they are:
.TP
.I options.labels