summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHardeep Sidhu <dyp@pobox.com>2006-09-18 20:47:27 +0000
committerHardeep Sidhu <dyp@pobox.com>2006-09-18 20:47:27 +0000
commit10ad0a2a942f0dc2a31374135440c25a1a4f05bb (patch)
treeccab2cf9ca17b7fe65d16acb16b14bdcf5ed55cd
parent9fe9cdff358046374ab0ed3240581e98bc63b1db (diff)
downloadrockbox-10ad0a2a942f0dc2a31374135440c25a1a4f05bb.zip
rockbox-10ad0a2a942f0dc2a31374135440c25a1a4f05bb.tar.gz
rockbox-10ad0a2a942f0dc2a31374135440c25a1a4f05bb.tar.bz2
rockbox-10ad0a2a942f0dc2a31374135440c25a1a4f05bb.tar.xz
Fixed problem with first_index being incorrectly updated when prepending tracks. Fixes example 1 in B#6005.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@10996 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/playlist.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/playlist.c b/apps/playlist.c
index 4ab98ab..6648d44 100644
--- a/apps/playlist.c
+++ b/apps/playlist.c
@@ -571,10 +571,12 @@ static int add_track_to_playlist(struct playlist_info* playlist,
const char *filename, int position,
bool queue, int seek_pos)
{
- int insert_position = position;
+ int insert_position, orig_position;
unsigned long flags = PLAYLIST_INSERT_TYPE_INSERT;
int i;
+ insert_position = orig_position = position;
+
if (playlist->amount >= playlist->max_playlist_size)
{
display_buffer_full();
@@ -661,7 +663,7 @@ static int add_track_to_playlist(struct playlist_info* playlist,
playlist->index++;
if (playlist->amount > 0 && insert_position <= playlist->first_index &&
- position != PLAYLIST_PREPEND && playlist->started)
+ orig_position != PLAYLIST_PREPEND && playlist->started)
{
playlist->first_index++;