conf: log unused/unknown block parameters
This commit is contained in:
parent
0cbc4012e8
commit
637c6a1850
1
NEWS
1
NEWS
|
@ -3,6 +3,7 @@ ver 0.16 (20??/??/??)
|
|||
- removed support for legacy mixer configuration
|
||||
* commands:
|
||||
- added new "status" line with more precise "elapsed time"
|
||||
* log unused/unknown block parameters
|
||||
|
||||
|
||||
ver 0.15 (2009/06/23)
|
||||
|
|
29
src/conf.c
29
src/conf.c
|
@ -188,6 +188,35 @@ void config_global_init(void)
|
|||
{
|
||||
}
|
||||
|
||||
static void
|
||||
config_param_check(gpointer data, G_GNUC_UNUSED gpointer user_data)
|
||||
{
|
||||
struct config_param *param = data;
|
||||
|
||||
if (!param->used)
|
||||
/* this whole config_param was not queried at all -
|
||||
the feature might be disabled at compile time?
|
||||
Silently ignore it here. */
|
||||
return;
|
||||
|
||||
for (unsigned i = 0; i < param->num_block_params; i++) {
|
||||
struct block_param *bp = ¶m->block_params[i];
|
||||
|
||||
if (!bp->used)
|
||||
g_warning("option '%s' on line %i was not recognized",
|
||||
bp->name, bp->line);
|
||||
}
|
||||
}
|
||||
|
||||
void config_global_check(void)
|
||||
{
|
||||
for (unsigned i = 0; i < G_N_ELEMENTS(config_entries); ++i) {
|
||||
struct config_entry *entry = &config_entries[i];
|
||||
|
||||
g_slist_foreach(entry->params, config_param_check, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
config_add_block_param(struct config_param * param, const char *name,
|
||||
const char *value, int line)
|
||||
|
|
|
@ -100,6 +100,12 @@ struct config_param {
|
|||
void config_global_init(void);
|
||||
void config_global_finish(void);
|
||||
|
||||
/**
|
||||
* Call this function after all configuration has been evaluated. It
|
||||
* checks for unused parameters, and logs warnings.
|
||||
*/
|
||||
void config_global_check(void);
|
||||
|
||||
void config_read_file(const char *file);
|
||||
|
||||
/* don't free the returned value
|
||||
|
|
|
@ -322,6 +322,8 @@ int main(int argc, char *argv[])
|
|||
|
||||
state_file_init(config_get_path(CONF_STATE_FILE));
|
||||
|
||||
config_global_check();
|
||||
|
||||
/* run the main loop */
|
||||
|
||||
g_main_loop_run(main_loop);
|
||||
|
|
Loading…
Reference in New Issue