struct map_element {
KCHAR k_base;
KCHAR k_num;
PF *k_funcp;
struct keymap_s *k_prefmap;
};
#define KEYMAPE(NUM) { \
short map_num; \
short map_max; \
PF map_default; \
struct map_element map_element[NUM]; \
}
typedef struct keymap_s KEYMAPE(1) KEYMAP;
#define MAPGROW 3
#define MAPINIT (MAPGROW+1)
#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[];