From 47bcb5f3c0d024bffa868f687485e6aaad2468b1 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 30 Jan 2009 13:47:45 +0100 Subject: mapper: remove trailing slashes from music_directory When the user configures a music_directory with a trailing slash, it may break playlist loading, because MPD expects a double slash. Chop off the trailing slash. --- src/mapper.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/mapper.c b/src/mapper.c index b3f86da00..b7ddda209 100644 --- a/src/mapper.c +++ b/src/mapper.c @@ -37,6 +37,20 @@ static size_t music_dir_length; static char *playlist_dir; static size_t playlist_dir_length; +/** + * Duplicate a string, chop all trailing slashes. + */ +static char * +strdup_chop_slash(const char *path_fs) +{ + size_t length = strlen(path_fs); + + while (length > 0 && path_fs[length - 1] == G_DIR_SEPARATOR) + --length; + + return g_strndup(path_fs, length); +} + void mapper_init(void) { ConfigParam *music_dir_param = parseConfigFilePath(CONF_MUSIC_DIR, 1); @@ -44,7 +58,7 @@ void mapper_init(void) int ret; struct stat st; - music_dir = g_strdup(music_dir_param->value); + music_dir = strdup_chop_slash(music_dir_param->value); music_dir_length = strlen(music_dir); ret = stat(music_dir, &st); -- cgit v1.2.3