diff --git a/src/screen_artist.c b/src/screen_artist.c
index 71be6f408603f67596307b2ac3cad59b47f2e786..dd7e0175a180e0f6eb8d4d3bb796bab9d2100990 100644 (file)
--- a/src/screen_artist.c
+++ b/src/screen_artist.c
mpdclient_filelist_search_utf8(c, TRUE,
MPD_TABLE_ALBUM,
album);
+ if (browser.filelist == NULL)
+ browser.filelist = filelist_new(NULL);
+
/* add a dummy entry for ".." */
filelist_prepend(browser.filelist, NULL);
case BROWSE_DB_UPDATED:
D("screen_artist.c> browse_callback() [BROWSE_DB_UPDATED]\n");
browser.lw->clear = 1;
- browser.lw->repaint = 1;
update_metalist(c, g_strdup(artist), g_strdup(album));
break;
default:
char *str;
mpdclient_filelist_t *addlist;
+ assert(filter != NULL);
+
str = utf8_to_locale(_filter);
if (table== MPD_TABLE_ALBUM)
screen_status_printf("Adding album %s...", str);
case LIST_ARTISTS:
selected = g_list_nth_data(metalist,
browser.lw->selected);
+ if (selected == NULL)
+ return 1;
+
add_query(c, MPD_TABLE_ARTIST, selected);
cmd = CMD_LIST_NEXT; /* continue and select next item... */
break;
else if (browser.lw->selected > 0) {
selected = g_list_nth_data(metalist,
browser.lw->selected);
+ if (selected == NULL)
+ return 1;
+
add_query(c, MPD_TABLE_ALBUM, selected);
cmd = CMD_LIST_NEXT; /* continue and select next item... */
}
/* continue and update... */
case CMD_SCREEN_UPDATE:
- screen->painted = 0;
- browser.lw->clear = 1;
- browser.lw->repaint = 1;
update_metalist(c, g_strdup(artist), g_strdup(album));
screen_status_printf(_("Screen updated!"));
return 0;