blob: 0090258da3422ce5dd9da3ec158d679a979bc8c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
/* $OpenBSD: kbd.h,v 1.14 2002/03/11 13:02:56 vincent Exp $ */
/*
* kbd.h: type definitions for symbol.c and kbd.c for mg experimental
*/
typedef struct {
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 */
} MAP_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 */ \
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 IMAPEXT 0
#define MAPGROW 3
#define MAPINIT (MAPGROW+1)
/* Max number of default bindings added to avoid creating new element */
#define MAPELEDEF 4
typedef struct MAPS_S {
KEYMAP *p_map;
const char *p_name;
struct MAPS_S *p_next;
} MAPS;
extern MAPS *maps;
extern MAPS fundamental_mode;
#define fundamental_map (fundamental_mode.p_map)
int dobindkey(KEYMAP *, const char *, const char *);
KEYMAP *name_map(const char *);
MAPS *name_mode(const char *);
PF doscan(KEYMAP *, int, KEYMAP **);
const char *map_name(KEYMAP *);
void maps_init(void);
int maps_add(KEYMAP *, const char *);
extern MAP_ELEMENT *ele;
extern MAPS *defb_modes[];
|