diff options
author | Max Kellermann <max@duempel.org> | 2008-11-18 21:51:28 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2008-11-18 21:51:28 +0100 |
commit | e12ebb484bf369ea425e93521d99cc6813996e4e (patch) | |
tree | 1050c03b3a84055c5d5334459034927d25c1e6e8 | |
parent | 17a8acbf69f4c6649f274ab506a0bb01c00b7a1a (diff) | |
download | mpd-e12ebb484bf369ea425e93521d99cc6813996e4e.tar.gz mpd-e12ebb484bf369ea425e93521d99cc6813996e4e.tar.xz mpd-e12ebb484bf369ea425e93521d99cc6813996e4e.zip |
filelist: filelist_find_song() returns position instead of pointer
Making the function return the index makes it more flexible: those who
want the pointer can use filelist_get(), and the others may use the
index for other purposes.
-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 |