aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/filelist.c6
-rw-r--r--src/filelist.h2
-rw-r--r--src/screen_browser.c6
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