From 3be63549c07c52536689f61edf502d1773549616 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 14 Oct 2013 20:52:49 +0200 Subject: stored_playlist: add "file://" prefix to absolute paths Prepare to fix loading arbitrary song files from stored playlists. --- src/stored_playlist.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/stored_playlist.c b/src/stored_playlist.c index 39ba2bac1..e84d5e060 100644 --- a/src/stored_playlist.c +++ b/src/stored_playlist.c @@ -272,7 +272,14 @@ spl_load(const char *utf8path, GError **error_r) if (*s == 0 || *s == PLAYLIST_COMMENT) continue; - if (!uri_has_scheme(s)) { + if (g_path_is_absolute(s)) { + char *t = fs_charset_to_utf8(s); + if (t == NULL) + continue; + + s = g_strconcat("file://", t, NULL); + g_free(t); + } else if (!uri_has_scheme(s)) { char *path_utf8; path_utf8 = map_fs_to_utf8(s); -- cgit v1.2.3 From 7cbaf11ddad6f5b464baed80b80e8c9b62f53d55 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 14 Oct 2013 20:54:05 +0200 Subject: load_file --- src/playlist_save.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src') diff --git a/src/playlist_save.c b/src/playlist_save.c index 334159e0d..194bff057 100644 --- a/src/playlist_save.c +++ b/src/playlist_save.c @@ -32,6 +32,8 @@ #include +#include + void playlist_print_song(FILE *file, const struct song *song) { @@ -128,6 +130,15 @@ playlist_load_spl(struct playlist *playlist, struct player_control *pc, for (unsigned i = start_index; i < end_index; ++i) { const char *temp = g_ptr_array_index(list, i); + + if (memcmp(temp, "file:///", 8) == 0) { + const char *path = temp + 7; + + if (playlist_append_file(playlist, pc, path, NULL) != PLAYLIST_RESULT_SUCCESS) + g_warning("can't add file \"%s\"", path); + continue; + } + if ((playlist_append_uri(playlist, pc, temp, NULL)) != PLAYLIST_RESULT_SUCCESS) { /* for windows compatibility, convert slashes */ char *temp2 = g_strdup(temp); -- cgit v1.2.3 From ad631d563bbbdb4aef8bcaf7f02d009b1bc5d06f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 14 Oct 2013 21:11:20 +0200 Subject: stored_playlist: use fs_charset_to_utf8() for URLs --- src/stored_playlist.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/stored_playlist.c b/src/stored_playlist.c index e84d5e060..86b7ff8c3 100644 --- a/src/stored_playlist.c +++ b/src/stored_playlist.c @@ -287,8 +287,11 @@ spl_load(const char *utf8path, GError **error_r) continue; s = path_utf8; - } else - s = g_strdup(s); + } else { + s = fs_charset_to_utf8(s); + if (s == NULL) + continue; + } g_ptr_array_add(list, s); -- cgit v1.2.3 From d9c662d51f2f8f7795875ddfb3dcc0f772717267 Mon Sep 17 00:00:00 2001 From: Florian Schlichting Date: Mon, 14 Oct 2013 21:12:47 +0200 Subject: decoder/modplug: fix include directory --- src/decoder/modplug_decoder_plugin.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/decoder/modplug_decoder_plugin.c b/src/decoder/modplug_decoder_plugin.c index 21ee79e7e..5ae4b1a04 100644 --- a/src/decoder/modplug_decoder_plugin.c +++ b/src/decoder/modplug_decoder_plugin.c @@ -22,7 +22,7 @@ #include "tag_handler.h" #include -#include +#include #include #undef G_LOG_DOMAIN -- cgit v1.2.3