diff options
Diffstat (limited to '')
-rw-r--r-- | src/mapper.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/mapper.c b/src/mapper.c index bc3647686..0c3348aa1 100644 --- a/src/mapper.c +++ b/src/mapper.c @@ -192,14 +192,19 @@ map_spl_path(void) char * map_spl_utf8_to_fs(const char *name) { - char *filename = g_strconcat(name, PLAYLIST_FILE_SUFFIX, NULL); - char *path; + char *filename_utf8, *filename_fs, *path; if (playlist_dir == NULL) return NULL; - path = g_build_filename(playlist_dir, filename, NULL); - g_free(filename); + filename_utf8 = g_strconcat(name, PLAYLIST_FILE_SUFFIX, NULL); + filename_fs = utf8_to_fs_charset(filename_utf8); + g_free(filename_utf8); + if (filename_fs == NULL) + return NULL; + + path = g_build_filename(playlist_dir, filename_fs, NULL); + g_free(filename_fs); return path; } |