aboutsummaryrefslogtreecommitdiffstats
path: root/src/PlaylistFile.cxx
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-10-14 21:40:56 +0200
committerMax Kellermann <max@duempel.org>2013-10-14 21:40:56 +0200
commit8cf2f52f7acfd22dc85e0ed5ef6bd04cf55d31aa (patch)
tree4c271037a0a985b7b9c511856fda0791f60fabf0 /src/PlaylistFile.cxx
parent17c6db6c33b9b14a8627b3f9b3da8580a5f932a2 (diff)
parent681352ac3bc2abe12ebabbf6e4e3258384beb65b (diff)
downloadmpd-8cf2f52f7acfd22dc85e0ed5ef6bd04cf55d31aa.tar.gz
mpd-8cf2f52f7acfd22dc85e0ed5ef6bd04cf55d31aa.tar.xz
mpd-8cf2f52f7acfd22dc85e0ed5ef6bd04cf55d31aa.zip
Merge tag 'release-0.17.6'
Diffstat (limited to 'src/PlaylistFile.cxx')
-rw-r--r--src/PlaylistFile.cxx17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/PlaylistFile.cxx b/src/PlaylistFile.cxx
index 793ee5e58..e01bc1d26 100644
--- a/src/PlaylistFile.cxx
+++ b/src/PlaylistFile.cxx
@@ -241,7 +241,13 @@ LoadPlaylistFile(const char *utf8path, Error &error)
if (*s == 0 || *s == PLAYLIST_COMMENT)
continue;
- if (!uri_has_scheme(s)) {
+ if (g_path_is_absolute(s)) {
+ const auto path = Path::ToUTF8(s);
+ if (path.empty())
+ continue;
+
+ s = g_strconcat("file://", path.c_str(), NULL);
+ } else if (!uri_has_scheme(s)) {
char *path_utf8;
path_utf8 = map_fs_to_utf8(s);
@@ -249,8 +255,13 @@ LoadPlaylistFile(const char *utf8path, Error &error)
continue;
s = path_utf8;
- } else
- s = g_strdup(s);
+ } else {
+ const auto path = Path::ToUTF8(s);
+ if (path.empty())
+ continue;
+
+ s = g_strdup(path.c_str());
+ }
contents.emplace_back(s);
if (contents.size() >= playlist_max_length)