diff options
-rw-r--r-- | src/filelist.c | 6 | ||||
-rw-r--r-- | src/filelist.h | 2 | ||||
-rw-r--r-- | src/screen_browser.c | 6 |
3 files changed, 8 insertions, 6 deletions
diff --git a/src/filelist.c b/src/filelist.c index 415eec402..2e078635a 100644 --- a/src/filelist.c +++ b/src/filelist.c @@ -118,7 +118,7 @@ filelist_sort(struct filelist *filelist, GCompareFunc compare_func) compare_func); } -struct filelist_entry * +int filelist_find_song(struct filelist *fl, const struct mpd_song *song) { guint i; @@ -133,11 +133,11 @@ filelist_find_song(struct filelist *fl, const struct mpd_song *song) struct mpd_song *song2 = entity->info.song; if (strcmp(song->file, song2->file) == 0) - return entry; + return i; } } - return NULL; + return -1; } int diff --git a/src/filelist.h b/src/filelist.h index d7d4dff88..bc467fb65 100644 --- a/src/filelist.h +++ b/src/filelist.h @@ -73,7 +73,7 @@ filelist_move(struct filelist *filelist, struct filelist *from); void filelist_sort(struct filelist *filelist, GCompareFunc compare_func); -struct filelist_entry * +int filelist_find_song(struct filelist *flist, const struct mpd_song *song); int diff --git a/src/screen_browser.c b/src/screen_browser.c index b5ce64171..6a5bbd233 100644 --- a/src/screen_browser.c +++ b/src/screen_browser.c @@ -56,11 +56,13 @@ clear_highlights(mpdclient_filelist_t *fl) static void set_highlight(mpdclient_filelist_t *fl, mpd_Song *song, int highlight) { - struct filelist_entry *entry = filelist_find_song(fl, song); + int i = filelist_find_song(fl, song); + struct filelist_entry *entry; - if (entry == NULL) + if (i < 0) return; + entry = filelist_get(fl, i); if (highlight) entry->flags |= HIGHLIGHT; else |