[BACK]Return to kbd.h CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

File: [local] / src / usr.bin / mg / kbd.h (download)

Revision 1.2, Thu Apr 13 06:12:15 2000 UTC (24 years, 2 months ago) by millert
Branch: MAIN
CVS Tags: OPENBSD_2_7_BASE, OPENBSD_2_7
Changes since 1.1: +39 -42 lines

The start of KNF + -Wall.  The code has been run through indent but
needs hand fixup.  I stopped at keymap.c...

/*
 * 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;

#define none	ctrlg
#define prefix	(PF)NULL

/* 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;
	char           *p_name;
} MAPS;

extern MAPS     map_table[];

typedef struct {
	PF              n_funct;
	char           *n_name;
} FUNCTNAMES;

PF       doscan			__P((KEYMAP *, int));
PF       name_function		__P((char *));
char    *function_name		__P((PF));
KEYMAP  *name_map		__P((char *));
char    *map_name		__P((KEYMAP *));
MAPS    *name_mode		__P((char *));

extern FUNCTNAMES functnames[];
extern int      nfunct;
extern MAP_ELEMENT *ele;