aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2014-12-09 13:36:48 +0100
committerMax Kellermann <max@duempel.org>2014-12-09 13:36:48 +0100
commit0cfd4fff62be0e2fd16041347ba7dfa7b84fec11 (patch)
treea8ec6993fc4b06274e244edcd137d0c519a5753f
parent8904127c10d8adfe9b76f1fb74d89c17ec67fa1a (diff)
downloadmpd-0cfd4fff62be0e2fd16041347ba7dfa7b84fec11.tar.gz
mpd-0cfd4fff62be0e2fd16041347ba7dfa7b84fec11.tar.xz
mpd-0cfd4fff62be0e2fd16041347ba7dfa7b84fec11.zip
playlist/Print: don't skip non-existent songs in "listplaylist"
Skipping those songs silently will confuse the client, because commands specifying the song index within a playlist (e.g. playlistdelete) will be out of sync. This copies spl_print()'s behavior to playlist_file_print().
Diffstat (limited to '')
-rw-r--r--NEWS2
-rw-r--r--src/playlist/Print.cxx13
2 files changed, 9 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index a18d63faf..165985925 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,6 @@
ver 0.19.7 (not yet released)
+* playlist
+ - don't skip non-existent songs in "listplaylist"
ver 0.19.6 (2014/12/08)
* decoder
diff --git a/src/playlist/Print.cxx b/src/playlist/Print.cxx
index 0db2a4ab0..8f743f56d 100644
--- a/src/playlist/Print.cxx
+++ b/src/playlist/Print.cxx
@@ -43,12 +43,13 @@ playlist_provider_print(Client &client, const char *uri,
DetachedSong *song;
while ((song = e.NextSong()) != nullptr) {
if (playlist_check_translate_song(*song, base_uri.c_str(),
- loader)) {
- if (detail)
- song_print_info(client, *song);
- else
- song_print_uri(client, *song);
- }
+ loader) &&
+ detail)
+ song_print_info(client, *song);
+ else
+ /* fallback if no detail was requested or no
+ detail was available */
+ song_print_uri(client, *song);
delete song;
}