# HG changeset patch # User Matti Hamalainen # Date 1213477255 -10800 # Node ID c18e18ecc36b9c1773014b6536068f3300d7ec9d # Parent e36c207de2c17e4908c2f73e84b16c3a83563cbf Proper updating of playlist->tail was missing from some functions. Patch adapted from one by lajnold@hotmail.com. Closes bugzilla #22 and #27. diff -r e36c207de2c1 -r c18e18ecc36b src/audacious/playlist.c --- a/src/audacious/playlist.c Fri Jun 13 17:57:04 2008 +0300 +++ b/src/audacious/playlist.c Sun Jun 15 00:00:55 2008 +0300 @@ -704,8 +704,10 @@ } else add_flag = FALSE; } - } else + } else { playlist->entries = g_list_insert(playlist->entries, entry, pos++); + playlist->tail = g_list_last(playlist->entries); + } if (tuple != NULL) { const gchar *formatter = tuple_get_string(tuple, FIELD_FORMATTER, NULL); @@ -2175,6 +2177,7 @@ playlist->entries = g_list_sort(playlist->entries, (GCompareFunc) playlist_compare_func_table[type]); + playlist->tail = g_list_last(playlist->entries); PLAYLIST_INCR_SERIAL(playlist); PLAYLIST_UNLOCK(playlist); } @@ -2235,6 +2238,7 @@ playlist->entries = playlist_sort_selected_generic(playlist->entries, (GCompareFunc) playlist_compare_func_table [type]); + playlist->tail = g_list_last(playlist->entries); PLAYLIST_INCR_SERIAL(playlist); PLAYLIST_UNLOCK(playlist); } @@ -2244,6 +2248,7 @@ { PLAYLIST_LOCK(playlist); playlist->entries = g_list_reverse(playlist->entries); + playlist->tail = g_list_last(playlist->entries); PLAYLIST_INCR_SERIAL(playlist); PLAYLIST_UNLOCK(playlist); } @@ -2297,6 +2302,7 @@ { PLAYLIST_LOCK(playlist); playlist->entries = playlist_shuffle_list(playlist, playlist->entries); + playlist->tail = g_list_last(playlist->entries); PLAYLIST_INCR_SERIAL(playlist); PLAYLIST_UNLOCK(playlist); }