53 lines · 794 B · C
RawDownload
// 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;}