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

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