| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // SPDX-License-Identifier: GPL-2.0-only
- #include <list.h>
- #include "expr.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;
- }
|