Changeset View
Changeset View
Standalone View
Standalone View
contrib/mg/kbd.h
- This file was added.
| /* $OpenBSD: kbd.h,v 1.19 2015/03/19 21:48:05 bcallah Exp $ */ | |||||
| /* This file is in the public domain. */ | |||||
| /* | |||||
| * kbd.h: type definitions for symbol.c and kbd.c for mg experimental | |||||
| */ | |||||
| struct map_element { | |||||
| KCHAR k_base; /* first key in element */ | |||||
| KCHAR k_num; /* last key in element */ | |||||
| PF *k_funcp; /* pointer to array of pointers */ | |||||
| /* to functions */ | |||||
| struct keymap_s *k_prefmap; /* keymap of ONLY prefix key in */ | |||||
| /* element */ | |||||
| }; | |||||
| /* | |||||
| * Predefined keymaps are NOT type KEYMAP because final array needs | |||||
| * dimension. If any changes are made to this struct, they must be reflected | |||||
| * in all keymap declarations. | |||||
| */ | |||||
| #define KEYMAPE(NUM) { \ | |||||
| short map_num; /* elements used */ \ | |||||
| short map_max; /* elements allocated */\ | |||||
| PF map_default; /* default function */ \ | |||||
| struct map_element map_element[NUM]; /* really [e_max] */ \ | |||||
| } | |||||
| typedef struct keymap_s KEYMAPE(1) KEYMAP; | |||||
| /* Number of map_elements to grow an overflowed keymap by */ | |||||
| #define MAPGROW 3 | |||||
| #define MAPINIT (MAPGROW+1) | |||||
| /* Max number of default bindings added to avoid creating new element */ | |||||
| #define MAPELEDEF 4 | |||||
| struct maps_s { | |||||
| KEYMAP *p_map; | |||||
| const char *p_name; | |||||
| struct maps_s *p_next; | |||||
| }; | |||||
| extern struct maps_s *maps; | |||||
| extern struct maps_s fundamental_mode; | |||||
| #define fundamental_map (fundamental_mode.p_map) | |||||
| int dobindkey(KEYMAP *, const char *, const char *); | |||||
| KEYMAP *name_map(const char *); | |||||
| struct maps_s *name_mode(const char *); | |||||
| PF doscan(KEYMAP *, int, KEYMAP **); | |||||
| void maps_init(void); | |||||
| int maps_add(KEYMAP *, const char *); | |||||
| extern struct map_element *ele; | |||||
| extern struct maps_s *defb_modes[]; | |||||