// SPDX-License-Identifier: GPL-2.0-only #include "expr.h" #include "list.h" #include "mnconf-common.h" int jump_key_char; int next_jump_key(int key) { if (key < '1' || key > '9') return '1'; key++; if (key > '9') key = '1'; return key; } int handle_search_keys(int key, size_t start, size_t end, void *_data) { 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 == index) { data->target = pos->target; return 1; } } return 0; } int get_jump_key_char(void) { jump_key_char = next_jump_key(jump_key_char); return jump_key_char; }