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
|
- removed support for legacy mixer configuration
|
||||||
* commands:
|
* commands:
|
||||||
- added new "status" line with more precise "elapsed time"
|
- added new "status" line with more precise "elapsed time"
|
||||||
|
* log unused/unknown block parameters
|
||||||
|
|
||||||
|
|
||||||
ver 0.15 (2009/06/23)
|
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
|
void
|
||||||
config_add_block_param(struct config_param * param, const char *name,
|
config_add_block_param(struct config_param * param, const char *name,
|
||||||
const char *value, int line)
|
const char *value, int line)
|
||||||
|
|
|
@ -100,6 +100,12 @@ struct config_param {
|
||||||
void config_global_init(void);
|
void config_global_init(void);
|
||||||
void config_global_finish(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);
|
void config_read_file(const char *file);
|
||||||
|
|
||||||
/* don't free the returned value
|
/* 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));
|
state_file_init(config_get_path(CONF_STATE_FILE));
|
||||||
|
|
||||||
|
config_global_check();
|
||||||
|
|
||||||
/* run the main loop */
|
/* run the main loop */
|
||||||
|
|
||||||
g_main_loop_run(main_loop);
|
g_main_loop_run(main_loop);
|
||||||
|
|
Loading…
Reference in New Issue