diff options
author | Max Kellermann <max@duempel.org> | 2013-10-21 10:26:53 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-10-21 10:50:22 +0200 |
commit | 83c726a34f325ae5be0d5b61b66a97cb41f6973e (patch) | |
tree | ff65ffc34bd655cce2a52b9e84d5a762ea0f021e /src/PlaylistQueue.cxx | |
parent | a0415f73d459b5763f59dfa4151ec89834d29526 (diff) | |
download | mpd-83c726a34f325ae5be0d5b61b66a97cb41f6973e.tar.gz mpd-83c726a34f325ae5be0d5b61b66a97cb41f6973e.tar.xz mpd-83c726a34f325ae5be0d5b61b66a97cb41f6973e.zip |
GetBaseUTF8
Diffstat (limited to '')
-rw-r--r-- | src/PlaylistQueue.cxx | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/PlaylistQueue.cxx b/src/PlaylistQueue.cxx index 1722c421c..ebb1bfffa 100644 --- a/src/PlaylistQueue.cxx +++ b/src/PlaylistQueue.cxx @@ -27,8 +27,7 @@ #include "SongEnumerator.hxx" #include "Song.hxx" #include "thread/Cond.hxx" - -#include <glib.h> +#include "fs/Traits.hxx" PlaylistResult playlist_load_into_queue(const char *uri, SongEnumerator &e, @@ -36,10 +35,11 @@ playlist_load_into_queue(const char *uri, SongEnumerator &e, playlist &dest, player_control &pc, bool secure) { - PlaylistResult result; - Song *song; - char *base_uri = uri != nullptr ? g_path_get_dirname(uri) : nullptr; + const std::string base_uri = uri != nullptr + ? PathTraits::GetParentUTF8(uri) + : std::string("."); + Song *song; for (unsigned i = 0; i < end_index && (song = e.NextSong()) != nullptr; ++i) { @@ -49,20 +49,17 @@ playlist_load_into_queue(const char *uri, SongEnumerator &e, continue; } - song = playlist_check_translate_song(song, base_uri, secure); + song = playlist_check_translate_song(song, base_uri.c_str(), + secure); if (song == nullptr) continue; - result = dest.AppendSong(pc, song); + PlaylistResult result = dest.AppendSong(pc, song); song->Free(); - if (result != PlaylistResult::SUCCESS) { - g_free(base_uri); + if (result != PlaylistResult::SUCCESS) return result; - } } - g_free(base_uri); - return PlaylistResult::SUCCESS; } |