[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.19, Thu Mar 19 21:48:05 2015 UTC (9 years, 2 months ago) by bcallah
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1, OPENBSD_6_0_BASE, OPENBSD_6_0, OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8, HEAD
Changes since 1.18: +1 -2 lines

More unifdef cleanup:
-UDIRED_XMAPS and -UFUND_XMAPS: you can't build mg the other way.
-DTIOCGWINSZ: you have this if you have term.h
Remove a #define TERMCAP which isn't being used.

Remove defines for NDIRED_XMAPS, NFUND_XMAPS, and IMAPEXT. They are all
defined to be 0 and are only ever used in addition. We don't need to add 0.
Simply lines that were using those defines.
ok florian@

/*	$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[];