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

Annotation of src/usr.bin/mg/kbd.h, Revision 1.14

1.14    ! vincent     1: /*     $OpenBSD: kbd.h,v 1.13 2002/02/16 21:27:49 millert Exp $        */
1.4       niklas      2:
1.1       deraadt     3: /*
                      4:  * kbd.h: type definitions for symbol.c and kbd.c for mg experimental
                      5:  */
                      6:
1.2       millert     7: typedef struct {
1.10      mickey      8:        KCHAR   k_base; /* first key in element          */
                      9:        KCHAR   k_num;          /* last key in element           */
                     10:        PF      *k_funcp;       /* pointer to array of pointers
1.2       millert    11:                                         * to functions */
                     12:        struct keymap_s *k_prefmap;     /* keymap of ONLY prefix key in
                     13:                                         * element */
                     14: } MAP_ELEMENT;
                     15:
                     16: /*
                     17:  * predefined keymaps are NOT type KEYMAP because final array needs
                     18:  * dimension.  If any changes are made to this struct, they must be reflected
                     19:  * in all keymap declarations.
1.1       deraadt    20:  */
                     21:
1.2       millert    22: #define KEYMAPE(NUM)   {                                               \
                     23:        short   map_num;                /* elements used */             \
                     24:        short   map_max;                /* elements allocated */        \
                     25:        PF      map_default;            /* default function */          \
                     26:        MAP_ELEMENT map_element[NUM];   /* really [e_max] */            \
1.1       deraadt    27: }
1.2       millert    28: typedef struct keymap_s KEYMAPE(1) KEYMAP;
1.1       deraadt    29:
1.2       millert    30: /* Number of map_elements to grow an overflowed keymap by */
1.1       deraadt    31: #define IMAPEXT 0
                     32: #define MAPGROW 3
                     33: #define MAPINIT (MAPGROW+1)
                     34:
1.2       millert    35: /* Max number of default bindings added to avoid creating new element */
1.1       deraadt    36: #define MAPELEDEF 4
                     37:
                     38: typedef struct MAPS_S {
1.10      mickey     39:        KEYMAP  *p_map;
1.14    ! vincent    40:        const char *p_name;
1.12      art        41:        struct MAPS_S *p_next;
1.2       millert    42: } MAPS;
1.1       deraadt    43:
1.12      art        44: extern MAPS    *maps;
                     45: extern MAPS    fundamental_mode;
                     46: #define                fundamental_map (fundamental_mode.p_map)
1.1       deraadt    47:
1.14    ! vincent    48: int     dobindkey(KEYMAP *, const char *, const char *);
        !            49: KEYMAP *name_map(const char *);
        !            50: MAPS   *name_mode(const char *);
        !            51: PF      doscan(KEYMAP *, int, KEYMAP **);
        !            52: const   char *map_name(KEYMAP *);
        !            53: void    maps_init(void);
        !            54: int     maps_add(KEYMAP *, const char *);
1.2       millert    55:
1.3       millert    56: extern MAP_ELEMENT     *ele;
                     57: extern MAPS            *defb_modes[];