diff options
-rw-r--r-- | src/list_generic.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/list_generic.c b/src/list_generic.c index 369e35a..24caf48 100644 --- a/src/list_generic.c +++ b/src/list_generic.c @@ -88,11 +88,7 @@ glist_search_dir(struct ListData *ldata, struct ListRow *start, int dir) return row; if (dir == 1) - { - for (row = ldata->root; row != start; row = row->next) - if (ldata->list_fn->gl_matchrow(ldata, row, ldata->search)) - break; - } + row = ldata->root; else { /* First, go to the end */ @@ -101,11 +97,12 @@ glist_search_dir(struct ListData *ldata, struct ListRow *start, int dir) else for (row = start->next; row->next; row = row->next) ; - for (; row != start; row = row->prev) - if (ldata->list_fn->gl_matchrow(ldata, row, ldata->search)) - break; } + for (; row != start; row = (dir == 1) ? row->next : row->prev) + if (ldata->list_fn->gl_matchrow(ldata, row, ldata->search)) + break; + return row; } |