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[]; |