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