conf: added config_get_path()

config_get_path() is an simpler interface than parseConfigFilePath().
This commit is contained in:
Max Kellermann 2009-01-18 17:54:46 +01:00
parent a3f03f3ccd
commit 9c6b2a32f5
3 changed files with 32 additions and 5 deletions

View File

@ -387,6 +387,24 @@ config_get_string(const char *name, const char *default_value)
return param->value;
}
const char *
config_get_path(const char *name)
{
struct config_param *param = config_get_param(name);
char *path;
if (param == NULL)
return NULL;
path = parsePath(param->value);
if (path == NULL)
g_error("error parsing \"%s\" at line %i\n",
name, param->line);
g_free(param->value);
return param->value = path;
}
struct block_param *
getBlockParam(struct config_param * param, const char *name)
{

View File

@ -101,6 +101,14 @@ config_get_param(const char *name)
const char *
config_get_string(const char *name, const char *default_value);
/**
* Returns an optional configuration variable which contains an
* absolute path. If there is a tilde prefix, it is expanded. Aborts
* MPD if the path is not a valid absolute path.
*/
const char *
config_get_path(const char *name);
struct block_param *
getBlockParam(struct config_param *param, const char *name);

View File

@ -81,19 +81,20 @@ struct notify main_notify;
static void openDB(Options * options, char *argv0)
{
struct config_param *param;
const char *path = config_get_path(CONF_DB_FILE);
param = parseConfigFilePath(CONF_DB_FILE,
mapper_has_music_directory());
if (!mapper_has_music_directory()) {
if (param != NULL)
if (path != NULL)
g_message("Found " CONF_DB_FILE " setting without "
CONF_MUSIC_DIR " - disabling database");
db_init(NULL);
return;
}
db_init(param->value);
if (path == NULL)
g_error(CONF_DB_FILE " setting missing");
db_init(path);
if (options->createDB > 0 || !db_load()) {
unsigned job;