You do not need to remember the index of each jump key because you can
count it up after a key is pressed.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Jesse Taube <Mr.Bossman075@gmail.com>
struct list_head entries;
size_t offset;
struct menu *target;
- int index;
};
extern struct file *file_list;
#include "lkc.h"
#include "lxdialog/dialog.h"
-#define JUMP_NB 9
-
static const char mconf_readme[] =
"Overview\n"
"--------\n"
{
struct search_data *data = _data;
struct jump_key *pos;
+ int index = 0;
if (key < '1' || key > '9')
return 0;
list_for_each_entry(pos, data->head, entries) {
+ index = next_jump_key(index);
+
if (pos->offset < start)
continue;
if (pos->offset >= end)
break;
- if (key == '1' + (pos->index % JUMP_NB)) {
+ if (key == index) {
data->target = pos->target;
return 1;
}
}
if (head && location) {
jump = xmalloc(sizeof(struct jump_key));
-
jump->target = location;
-
- if (list_empty(head))
- jump->index = 0;
- else
- jump->index = list_entry(head->prev, struct jump_key,
- entries)->index + 1;
-
list_add_tail(&jump->entries, head);
}