conf: log unused/unknown block parameters

This commit is contained in:
Max Kellermann 2009-06-19 09:02:14 +02:00
parent 0cbc4012e8
commit 637c6a1850
4 changed files with 38 additions and 0 deletions

1
NEWS
View File

@ -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)

View File

@ -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 = &param->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)

View File

@ -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

View File

@ -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);