[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.10

1.10    ! mickey      1: /*     $OpenBSD: kbd.h,v 1.9 2001/05/23 22:10:43 art 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;
        !            40:        char    *p_name;
1.2       millert    41: } MAPS;
1.1       deraadt    42:
1.10    ! mickey     43: extern MAPS    map_table[];
1.9       art        44: extern KEYMAP  *fundamental_map;
1.1       deraadt    45:
                     46: typedef struct {
1.10    ! mickey     47:        PF      n_funct;
        !            48:        char    *n_name;
1.2       millert    49: } FUNCTNAMES;
                     50:
1.10    ! mickey     51: int    dobindkey               __P((KEYMAP *, char *, char *));
        !            52: KEYMAP *name_map               __P((char *));
        !            53: MAPS   *name_mode              __P((char *));
        !            54: PF     doscan                  __P((KEYMAP *, int, KEYMAP **));
        !            55: PF     name_function           __P((char *));
        !            56: char   *function_name          __P((PF));
        !            57: char   *map_name               __P((KEYMAP *));
1.2       millert    58:
1.3       millert    59: extern MAP_ELEMENT     *ele;
                     60: extern MAPS            *defb_modes[];