aboutsummaryrefslogtreecommitdiffstats
path: root/src/playlist.c
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2008-08-25 20:53:16 -0700
committerEric Wong <normalperson@yhbt.net>2008-08-25 20:53:16 -0700
commit4be65a911b6024dc924d1e7d016cab8c42179f71 (patch)
treec11831a340bde09214d1167fa3b0ff5e7eec0b83 /src/playlist.c
parent3d15723da3723c08a8cb118cdfbbd238367f0a98 (diff)
downloadmpd-4be65a911b6024dc924d1e7d016cab8c42179f71.tar.gz
mpd-4be65a911b6024dc924d1e7d016cab8c42179f71.tar.xz
mpd-4be65a911b6024dc924d1e7d016cab8c42179f71.zip
playlist: fix "currentsong" after song deletion
When deleting previous songs, we forgot to update the playlist.queue value, causing syncPlaylistWithQueue to trigger a false sync and screw with the playlist.current pointer; causing the currentsong command to return an incorrect song. Thanks to unK to reporting this bug!
Diffstat (limited to 'src/playlist.c')
-rw-r--r--src/playlist.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/playlist.c b/src/playlist.c
index 1c743edc0..4b1042409 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -824,6 +824,8 @@ int deleteFromPlaylist(int fd, int song)
stop_current = 1;
if (playlist.current > songOrder) {
+ if (playlist.current == prev_queued)
+ playlist.queued = playlist.current - 1;
playlist.current--;
} else if (playlist.current >= playlist.length) {
incrPlaylistCurrent();