xref: /original-bsd/lib/libedit/key.h (revision c3e32dec)
1 /*-
2  * Copyright (c) 1992, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * This code is derived from software contributed to Berkeley by
6  * Christos Zoulas of Cornell University.
7  *
8  * %sccs.include.redist.c%
9  *
10  *	@(#)key.h	8.1 (Berkeley) 06/04/93
11  */
12 
13 /*
14  * el.key.h: Key macro header
15  */
16 #ifndef _h_el_key
17 #define _h_el_key
18 
19 typedef union key_value_t {
20     el_action_t  cmd;	/* If it is a command the #	*/
21     char        *str;	/* If it is a string...		*/
22 } key_value_t;
23 
24 typedef struct key_node_t key_node_t;
25 
26 typedef struct el_key_t {
27     char        *buf;	/* Key print buffer		*/
28     key_node_t  *map;	/* Key map			*/
29     key_value_t  val;	/* Local conversion buffer	*/
30 } el_key_t;
31 
32 #define XK_CMD	0
33 #define XK_STR	1
34 #define XK_NOD	2
35 #define XK_EXE	3
36 
37 protected int 		key_init	__P((EditLine *));
38 protected void 		key_end		__P((EditLine *));
39 protected key_value_t *	key_map_cmd	__P((EditLine *, int));
40 protected key_value_t *	key_map_str	__P((EditLine *, char *));
41 protected void		key_reset	__P((EditLine *));
42 protected int 		key_get		__P((EditLine *, char *,
43 					     key_value_t *));
44 protected void		key_add		__P((EditLine *, char *, key_value_t *,
45 					     int));
46 protected void		key_clear	__P((EditLine *, el_action_t *,
47 					     char *));
48 protected int		key_delete	__P((EditLine *, char *));
49 protected void		key_print	__P((EditLine *, char *));
50 protected void	        key_kprint	__P((EditLine *, char *,
51 					     key_value_t *, int));
52 protected char 	       *key__decode_str	__P((char *, char *, char *));
53 
54 #endif /* _h_el_key */
55