aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--NEWS1
-rw-r--r--src/mapper.c12
2 files changed, 12 insertions, 1 deletions
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);