From 886ed1b225d50e5e6c220e11b5800f45d36a5d37 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 1 Jan 2009 19:07:38 +0100 Subject: [PATCH] mapper: fall back to XDG music directory If no music_directory is configured, fall back to the XDG music directory, determined by g_get_user_special_dir(G_USER_DIRECTORY_MUSIC). --- NEWS | 1 + src/mapper.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 632668ed8..d1f223eb6 100644 --- a/NEWS +++ b/NEWS @@ -8,6 +8,7 @@ ver 0.15 - (200?/??/??) * the option "error_file" was removed, all messages are logged into "log_file" * support logging to syslog +* fall back to XDG music directory if no music_directory is configured ver 0.14 (2008/12/25) * audio outputs: diff --git a/src/mapper.c b/src/mapper.c index e9364f878..291816e6e 100644 --- a/src/mapper.c +++ b/src/mapper.c @@ -43,11 +43,21 @@ static size_t playlist_dir_length; void mapper_init(void) { - ConfigParam *music_dir_param = parseConfigFilePath(CONF_MUSIC_DIR, 1); + ConfigParam *music_dir_param = parseConfigFilePath(CONF_MUSIC_DIR, false); ConfigParam *playlist_dir_param = parseConfigFilePath(CONF_PLAYLIST_DIR, 1); int ret; struct stat st; + if (music_dir_param != NULL) { + music_dir = g_strdup(music_dir_param->value); + } else { + music_dir = g_strdup(g_get_user_special_dir(G_USER_DIRECTORY_MUSIC)); + if (music_dir == NULL) + /* GLib failed to determine the XDG music + directory - abort */ + g_error("config parameter \"%s\" not found\n", CONF_MUSIC_DIR); + } + music_dir = g_strdup(music_dir_param->value); music_dir_length = strlen(music_dir);