Logo Search packages:      
Sourcecode: tcsh version File versions  Download package

nt.bind.c

/*$Header: /src/pub/tcsh/win32/nt.bind.c,v 1.3 2002/08/11 07:58:12 amold Exp $*/
/*-
 * Copyright (c) 1980, 1991 The Regents of the University of California.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. Neither the name of the University nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */
#include "sh.h"
#include "ed.h"
#include "ed.defns.h"


KEYCMD  CcEmacsMap[] = {
/* keymap table, each index into above tbl; should be 
      (256+extra NT bindings)*sizeof(KEYCMD) bytes long */

    F_SET_MARK,               /* ^@ */
    F_TOBEG,                  /* ^A */
    F_CHARBACK,               /* ^B */
    F_TTY_INT,                /* ^C */
    F_DELNEXT_LIST_EOF,       /* ^D */
    F_TOEND,                  /* ^E */
    F_CHARFWD,                /* ^F */
    F_UNASSIGNED,       /* ^G */
    F_DELPREV,                /* ^H */
    F_COMPLETE,               /* ^I */
    F_NEWLINE,                /* ^J */
    F_KILLEND,                /* ^K */
    F_CLEARDISP,        /* ^L */
    F_NEWLINE,                /* ^M */
    F_DOWN_HIST,        /* ^N */
    F_TTY_FLUSHO,       /* ^O */
    F_UP_HIST,                /* ^P */
    F_TTY_STARTO,       /* ^Q */
    F_REDISP,                 /* ^R */
    F_TTY_STOPO,        /* ^S */
    F_CHARSWITCH,       /* ^T */
    F_KILLALL,                /* ^U */
    F_QUOTE,                  /* ^V */
    F_KILLREGION,       /* ^W */
    F_XKEY,             /* ^X */
    F_YANK_KILL,        /* ^Y */
    F_TTY_TSUSP,        /* ^Z */
    F_METANEXT,               /* ^[ */
    F_TTY_QUIT,               /* ^\ */
    F_TTY_DSUSP,        /* ^] */
    F_UNASSIGNED,       /* ^^ */
    F_UNASSIGNED,       /* ^_ */
    F_INSERT,                 /* SPACE */
    F_INSERT,                 /* ! */
    F_INSERT,                 /* " */
    F_INSERT,                 /* # */
    F_INSERT,                 /* $ */
    F_INSERT,                 /* % */
    F_INSERT,                 /* & */
    F_INSERT,                 /* ' */
    F_INSERT,                 /* ( */
    F_INSERT,                 /* ) */
    F_INSERT,                 /* * */
    F_INSERT,                 /* + */
    F_INSERT,                 /* , */
    F_INSERT,                 /* - */
    F_INSERT,                 /* . */
    F_INSERT,                 /* / */
    F_DIGIT,                  /* 0 */
    F_DIGIT,                  /* 1 */
    F_DIGIT,                  /* 2 */
    F_DIGIT,                  /* 3 */
    F_DIGIT,                  /* 4 */
    F_DIGIT,                  /* 5 */
    F_DIGIT,                  /* 6 */
    F_DIGIT,                  /* 7 */
    F_DIGIT,                  /* 8 */
    F_DIGIT,                  /* 9 */
    F_INSERT,                 /* : */
    F_INSERT,                 /* ; */
    F_INSERT,                 /* < */
    F_INSERT,                 /* = */
    F_INSERT,                 /* > */
    F_INSERT,                 /* ? */
    F_INSERT,                 /* @ */
    F_INSERT,                 /* A */
    F_INSERT,                 /* B */
    F_INSERT,                 /* C */
    F_INSERT,                 /* D */
    F_INSERT,                 /* E */
    F_INSERT,                 /* F */
    F_INSERT,                 /* G */
    F_INSERT,                 /* H */
    F_INSERT,                 /* I */
    F_INSERT,                 /* J */
    F_INSERT,                 /* K */
    F_INSERT,                 /* L */
    F_INSERT,                 /* M */
    F_INSERT,                 /* N */
    F_INSERT,                 /* O */
    F_INSERT,                 /* P */
    F_INSERT,                 /* Q */
    F_INSERT,                 /* R */
    F_INSERT,                 /* S */
    F_INSERT,                 /* T */
    F_INSERT,                 /* U */
    F_INSERT,                 /* V */
    F_INSERT,                 /* W */
    F_INSERT,                 /* X */
    F_INSERT,                 /* Y */
    F_INSERT,                 /* Z */
    F_INSERT,                 /* [ */
    F_INSERT,                 /* \ */
    F_INSERT,                 /* ] */
    F_INSERT,                 /* ^ */
    F_INSERT,                 /* _ */
    F_INSERT,                 /* ` */
    F_INSERT,                 /* a */
    F_INSERT,                 /* b */
    F_INSERT,                 /* c */
    F_INSERT,                 /* d */
    F_INSERT,                 /* e */
    F_INSERT,                 /* f */
    F_INSERT,                 /* g */
    F_INSERT,                 /* h */
    F_INSERT,                 /* i */
    F_INSERT,                 /* j */
    F_INSERT,                 /* k */
    F_INSERT,                 /* l */
    F_INSERT,                 /* m */
    F_INSERT,                 /* n */
    F_INSERT,                 /* o */
    F_INSERT,                 /* p */
    F_INSERT,                 /* q */
    F_INSERT,                 /* r */
    F_INSERT,                 /* s */
    F_INSERT,                 /* t */
    F_INSERT,                 /* u */
    F_INSERT,                 /* v */
    F_INSERT,                 /* w */
    F_INSERT,                 /* x */
    F_INSERT,                 /* y */
    F_INSERT,                 /* z */
    F_INSERT,                 /* { */
    F_INSERT,                 /* | */
    F_INSERT,                 /* } */
    F_INSERT,                 /* ~ */
    F_DELPREV,                /* ^? */
    F_UNASSIGNED,       /* M-^@ */
    F_UNASSIGNED,       /* M-^A */
    F_UNASSIGNED,       /* M-^B */
    F_UNASSIGNED,       /* M-^C */
    F_LIST_CHOICES,           /* M-^D */
    F_UNASSIGNED,       /* M-^E */
    F_UNASSIGNED,       /* M-^F */
    F_UNASSIGNED,       /* M-^G */
    F_DELWORDPREV,            /* M-^H */
    F_COMPLETE,               /* M-^I */
    F_UNASSIGNED,       /* M-^J */
    F_UNASSIGNED,       /* M-^K */
    F_CLEARDISP,        /* M-^L */
    F_UNASSIGNED,       /* M-^M */
    F_UNASSIGNED,       /* M-^N */
    F_UNASSIGNED,       /* M-^O */
    F_UNASSIGNED,       /* M-^P */
    F_UNASSIGNED,       /* M-^Q */
    F_UNASSIGNED,       /* M-^R */
    F_UNASSIGNED,       /* M-^S */
    F_UNASSIGNED,       /* M-^T */
    F_UNASSIGNED,       /* M-^U */
    F_UNASSIGNED,       /* M-^V */
    F_UNASSIGNED,       /* M-^W */
    F_UNASSIGNED,       /* M-^X */
    F_UNASSIGNED,       /* M-^Y */
    F_RUN_FG_EDITOR,          /* M-^Z */
    F_COMPLETE,               /* M-^[ */
    F_UNASSIGNED,       /* M-^\ */
    F_UNASSIGNED,       /* M-^] */
    F_UNASSIGNED,       /* M-^^ */
    F_COPYPREV,               /* M-^_ */
    F_EXPAND_HISTORY,         /* M-SPACE */
    F_EXPAND_HISTORY,         /* M-! */
    F_UNASSIGNED,       /* M-" */
    F_UNASSIGNED,       /* M-# */
    F_CORRECT_L,        /* M-$ */
    F_UNASSIGNED,       /* M-% */
    F_UNASSIGNED,       /* M-& */
    F_UNASSIGNED,       /* M-' */
    F_UNASSIGNED,       /* M-( */
    F_UNASSIGNED,       /* M-) */
    F_UNASSIGNED,       /* M-* */
    F_UNASSIGNED,       /* M-+ */
    F_UNASSIGNED,       /* M-, */
    F_UNASSIGNED,       /* M-- */
    F_UNASSIGNED,       /* M-. */
    F_DABBREV_EXPAND,         /* M-/ */
    F_ARGDIGIT,               /* M-0 */
    F_ARGDIGIT,               /* M-1 */
    F_ARGDIGIT,               /* M-2 */
    F_ARGDIGIT,               /* M-3 */
    F_ARGDIGIT,               /* M-4 */
    F_ARGDIGIT,               /* M-5 */
    F_ARGDIGIT,               /* M-6 */
    F_ARGDIGIT,               /* M-7 */
    F_ARGDIGIT,               /* M-8 */
    F_ARGDIGIT,               /* M-9 */
    F_UNASSIGNED,       /* M-: */
    F_UNASSIGNED,       /* M-; */
    F_UNASSIGNED,       /* M-< */
    F_UNASSIGNED,       /* M-= */
    F_UNASSIGNED,       /* M-> */
    F_WHICH,                  /* M-? */
    F_UNASSIGNED,       /* M-@ */
    F_UNASSIGNED,       /* M-A */
    F_WORDBACK,               /* M-B */
    F_CASECAPITAL,            /* M-C */
    F_DELWORDNEXT,            /* M-D */
    F_UNASSIGNED,       /* M-E */
    F_WORDFWD,                /* M-F */
    F_UNASSIGNED,       /* M-G */
    F_HELPME,                 /* M-H */
    F_UNASSIGNED,       /* M-I */
    F_UNASSIGNED,       /* M-J */
    F_UNASSIGNED,       /* M-K */
    F_CASELOWER,        /* M-L */
    F_UNASSIGNED,       /* M-M */
    F_DOWN_SEARCH_HIST,       /* M-N */
    F_XKEY,             /* M-O *//* extended key esc PWP Mar 88 */
    F_UP_SEARCH_HIST,         /* M-P */
    F_UNASSIGNED,       /* M-Q */
    F_TOGGLE_HIST,            /* M-R */
    F_CORRECT,                /* M-S */
    F_UNASSIGNED,       /* M-T */
    F_CASEUPPER,        /* M-U */
    F_UNASSIGNED,       /* M-V */
    F_COPYREGION,       /* M-W */
    F_UNASSIGNED,       /* M-X */
    F_UNASSIGNED,       /* M-Y */
    F_UNASSIGNED,       /* M-Z */
    F_XKEY,             /* M-[ *//* extended key esc -mf Oct 87 */
    F_UNASSIGNED,       /* M-\ */
    F_UNASSIGNED,       /* M-] */
    F_UNASSIGNED,       /* M-^ */
    F_LAST_ITEM,        /* M-_ */
    F_UNASSIGNED,       /* M-` */
    F_UNASSIGNED,       /* M-a */
    F_WORDBACK,               /* M-b */
    F_CASECAPITAL,            /* M-c */
    F_DELWORDNEXT,            /* M-d */
    F_UNASSIGNED,       /* M-e */
    F_WORDFWD,                /* M-f */
    F_UNASSIGNED,       /* M-g */
    F_HELPME,                 /* M-h */
    F_UNASSIGNED,       /* M-i */
    F_UNASSIGNED,       /* M-j */
    F_UNASSIGNED,       /* M-k */
    F_CASELOWER,        /* M-l */
    F_UNASSIGNED,       /* M-m */
    F_DOWN_SEARCH_HIST,       /* M-n */
    F_UNASSIGNED,       /* M-o */
    F_UP_SEARCH_HIST,         /* M-p */
    F_UNASSIGNED,       /* M-q */
    F_TOGGLE_HIST,            /* M-r */
    F_CORRECT,                /* M-s */
    F_UNASSIGNED,       /* M-t */
    F_CASEUPPER,        /* M-u */
    F_UNASSIGNED,       /* M-v */
    F_COPYREGION,       /* M-w */
    F_UNASSIGNED,       /* M-x */
    F_UNASSIGNED,       /* M-y */
    F_UNASSIGNED,       /* M-z */
    F_UNASSIGNED,       /* M-{ */
    F_UNASSIGNED,       /* M-| */
    F_UNASSIGNED,       /* M-} */
    F_UNASSIGNED,       /* M-~ */
    F_DELWORDPREV,            /* M-^? */
/* Extra keys begin here */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */
/* ctrl key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */

/* alt key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */
/* shift key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED        /* DEL */
};

/*
 * keymap table for vi.  Each index into above tbl; should be
 * 256 entries long.  Vi mode uses a sticky-extend to do command mode:
 * insert mode characters are in the normal keymap, and command mode
 * in the extended keymap.
 */
KEYCMD  CcViMap[] = {
#ifdef KSHVI
    F_UNASSIGNED,       /* ^@ */
    F_INSERT,                 /* ^A */
    F_INSERT,                 /* ^B */
    F_INSERT,                 /* ^C */
    F_INSERT,                 /* ^D */
    F_INSERT,                 /* ^E */
    F_INSERT,                 /* ^F */
    F_INSERT,                 /* ^G */
    V_DELPREV,                /* ^H */   /* BackSpace key */
    F_COMPLETE,               /* ^I */   /* Tab Key  */
    F_NEWLINE,                /* ^J */
    F_INSERT,                 /* ^K */
    F_INSERT,                 /* ^L */
    F_NEWLINE,                /* ^M */
    F_INSERT,                 /* ^N */
    F_INSERT,                 /* ^O */
    F_INSERT,                 /* ^P */
    F_TTY_STARTO,       /* ^Q */
    F_INSERT,                 /* ^R */
    F_INSERT,                 /* ^S */
    F_INSERT,                 /* ^T */
    F_INSERT,                 /* ^U */
    F_QUOTE,                  /* ^V */
    F_DELWORDPREV,            /* ^W */  /* Only until start edit pos */
    F_INSERT,                 /* ^X */
    F_INSERT,                 /* ^Y */
    F_INSERT,                 /* ^Z */
    V_CMD_MODE,               /* ^[ */  /* [ Esc ] key */
    F_TTY_QUIT,               /* ^\ */
    F_INSERT,                 /* ^] */
    F_INSERT,                 /* ^^ */
    F_INSERT,                 /* ^_ */
#else /* !KSHVI */
    F_UNASSIGNED,       /* ^@ */   /* NOTE: These mapping do NOT */
    F_TOBEG,                  /* ^A */   /* Correspond well to the KSH */
    F_CHARBACK,               /* ^B */   /* VI editting assignments    */
    F_TTY_INT,                /* ^C */   /* On the other hand they are */
    F_LIST_EOF,               /* ^D */   /* convenient any many people */
    F_TOEND,                  /* ^E */   /* have gotten used to them   */
    F_CHARFWD,                /* ^F */
    F_LIST_GLOB,        /* ^G */
    F_DELPREV,                /* ^H */   /* BackSpace key */
    F_COMPLETE,               /* ^I */   /* Tab Key */
    F_NEWLINE,                /* ^J */
    F_KILLEND,                /* ^K */
    F_CLEARDISP,        /* ^L */
    F_NEWLINE,                /* ^M */
    F_DOWN_HIST,        /* ^N */
    F_TTY_FLUSHO,       /* ^O */
    F_UP_HIST,                /* ^P */
    F_TTY_STARTO,       /* ^Q */
    F_REDISP,                 /* ^R */
    F_TTY_STOPO,        /* ^S */
    F_CHARSWITCH,       /* ^T */
    F_KILLBEG,                /* ^U */
    F_QUOTE,                  /* ^V */
    F_DELWORDPREV,            /* ^W */
    F_EXPAND,                 /* ^X */
    F_TTY_DSUSP,        /* ^Y */
    F_TTY_TSUSP,        /* ^Z */
    V_CMD_MODE,               /* ^[ */
    F_TTY_QUIT,               /* ^\ */
    F_UNASSIGNED,       /* ^] */
    F_UNASSIGNED,       /* ^^ */
    F_UNASSIGNED,       /* ^_ */
#endif  /* KSHVI */
    F_INSERT,                 /* SPACE */
    F_INSERT,                 /* ! */
    F_INSERT,                 /* " */
    F_INSERT,                 /* # */
    F_INSERT,                 /* $ */
    F_INSERT,                 /* % */
    F_INSERT,                 /* & */
    F_INSERT,                 /* ' */
    F_INSERT,                 /* ( */
    F_INSERT,                 /* ) */
    F_INSERT,                 /* * */
    F_INSERT,                 /* + */
    F_INSERT,                 /* , */
    F_INSERT,                 /* - */
    F_INSERT,                 /* . */
    F_INSERT,                 /* / */
    F_INSERT,                 /* 0 */
    F_INSERT,                 /* 1 */
    F_INSERT,                 /* 2 */
    F_INSERT,                 /* 3 */
    F_INSERT,                 /* 4 */
    F_INSERT,                 /* 5 */
    F_INSERT,                 /* 6 */
    F_INSERT,                 /* 7 */
    F_INSERT,                 /* 8 */
    F_INSERT,                 /* 9 */
    F_INSERT,                 /* : */
    F_INSERT,                 /* ; */
    F_INSERT,                 /* < */
    F_INSERT,                 /* = */
    F_INSERT,                 /* > */
    F_INSERT,                 /* ? */
    F_INSERT,                 /* @ */
    F_INSERT,                 /* A */
    F_INSERT,                 /* B */
    F_INSERT,                 /* C */
    F_INSERT,                 /* D */
    F_INSERT,                 /* E */
    F_INSERT,                 /* F */
    F_INSERT,                 /* G */
    F_INSERT,                 /* H */
    F_INSERT,                 /* I */
    F_INSERT,                 /* J */
    F_INSERT,                 /* K */
    F_INSERT,                 /* L */
    F_INSERT,                 /* M */
    F_INSERT,                 /* N */
    F_INSERT,                 /* O */
    F_INSERT,                 /* P */
    F_INSERT,                 /* Q */
    F_INSERT,                 /* R */
    F_INSERT,                 /* S */
    F_INSERT,                 /* T */
    F_INSERT,                 /* U */
    F_INSERT,                 /* V */
    F_INSERT,                 /* W */
    F_INSERT,                 /* X */
    F_INSERT,                 /* Y */
    F_INSERT,                 /* Z */
    F_INSERT,                 /* [ */
    F_INSERT,                 /* \ */
    F_INSERT,                 /* ] */
    F_INSERT,                 /* ^ */
    F_INSERT,                 /* _ */
    F_INSERT,                 /* ` */
    F_INSERT,                 /* a */
    F_INSERT,                 /* b */
    F_INSERT,                 /* c */
    F_INSERT,                 /* d */
    F_INSERT,                 /* e */
    F_INSERT,                 /* f */
    F_INSERT,                 /* g */
    F_INSERT,                 /* h */
    F_INSERT,                 /* i */
    F_INSERT,                 /* j */
    F_INSERT,                 /* k */
    F_INSERT,                 /* l */
    F_INSERT,                 /* m */
    F_INSERT,                 /* n */
    F_INSERT,                 /* o */
    F_INSERT,                 /* p */
    F_INSERT,                 /* q */
    F_INSERT,                 /* r */
    F_INSERT,                 /* s */
    F_INSERT,                 /* t */
    F_INSERT,                 /* u */
    F_INSERT,                 /* v */
    F_INSERT,                 /* w */
    F_INSERT,                 /* x */
    F_INSERT,                 /* y */
    F_INSERT,                 /* z */
    F_INSERT,                 /* { */
    F_INSERT,                 /* | */
    F_INSERT,                 /* } */
    F_INSERT,                 /* ~ */
    F_DELPREV,                /* ^? */
    F_UNASSIGNED,       /* M-^@ */
    F_UNASSIGNED,       /* M-^A */
    F_UNASSIGNED,       /* M-^B */
    F_UNASSIGNED,       /* M-^C */
    F_UNASSIGNED,       /* M-^D */
    F_UNASSIGNED,       /* M-^E */
    F_UNASSIGNED,       /* M-^F */
    F_UNASSIGNED,       /* M-^G */
    F_UNASSIGNED,       /* M-^H */
    F_UNASSIGNED,       /* M-^I */
    F_UNASSIGNED,       /* M-^J */
    F_UNASSIGNED,       /* M-^K */
    F_UNASSIGNED,       /* M-^L */
    F_UNASSIGNED,       /* M-^M */
    F_UNASSIGNED,       /* M-^N */
    F_UNASSIGNED,       /* M-^O */
    F_UNASSIGNED,       /* M-^P */
    F_UNASSIGNED,       /* M-^Q */
    F_UNASSIGNED,       /* M-^R */
    F_UNASSIGNED,       /* M-^S */
    F_UNASSIGNED,       /* M-^T */
    F_UNASSIGNED,       /* M-^U */
    F_UNASSIGNED,       /* M-^V */
    F_UNASSIGNED,       /* M-^W */
    F_UNASSIGNED,       /* M-^X */
    F_UNASSIGNED,       /* M-^Y */
    F_UNASSIGNED,       /* M-^Z */
    F_UNASSIGNED,       /* M-^[ */
    F_UNASSIGNED,       /* M-^\ */
    F_UNASSIGNED,       /* M-^] */
    F_UNASSIGNED,       /* M-^^ */
    F_UNASSIGNED,       /* M-^_ */
    F_UNASSIGNED,       /* M-SPACE */
    F_UNASSIGNED,       /* M-! */
    F_UNASSIGNED,       /* M-" */
    F_UNASSIGNED,       /* M-# */
    F_UNASSIGNED,       /* M-$ */
    F_UNASSIGNED,       /* M-% */
    F_UNASSIGNED,       /* M-& */
    F_UNASSIGNED,       /* M-' */
    F_UNASSIGNED,       /* M-( */
    F_UNASSIGNED,       /* M-) */
    F_UNASSIGNED,       /* M-* */
    F_UNASSIGNED,       /* M-+ */
    F_UNASSIGNED,       /* M-, */
    F_UNASSIGNED,       /* M-- */
    F_UNASSIGNED,       /* M-. */
    F_UNASSIGNED,       /* M-/ */
    F_UNASSIGNED,       /* M-0 */
    F_UNASSIGNED,       /* M-1 */
    F_UNASSIGNED,       /* M-2 */
    F_UNASSIGNED,       /* M-3 */
    F_UNASSIGNED,       /* M-4 */
    F_UNASSIGNED,       /* M-5 */
    F_UNASSIGNED,       /* M-6 */
    F_UNASSIGNED,       /* M-7 */
    F_UNASSIGNED,       /* M-8 */
    F_UNASSIGNED,       /* M-9 */
    F_UNASSIGNED,       /* M-: */
    F_UNASSIGNED,       /* M-; */
    F_UNASSIGNED,       /* M-< */
    F_UNASSIGNED,       /* M-= */
    F_UNASSIGNED,       /* M-> */
    F_UNASSIGNED,       /* M-? */
    F_UNASSIGNED,       /* M-@ */
    F_UNASSIGNED,       /* M-A */
    F_UNASSIGNED,       /* M-B */
    F_UNASSIGNED,       /* M-C */
    F_UNASSIGNED,       /* M-D */
    F_UNASSIGNED,       /* M-E */
    F_UNASSIGNED,       /* M-F */
    F_UNASSIGNED,       /* M-G */
    F_UNASSIGNED,       /* M-H */
    F_UNASSIGNED,       /* M-I */
    F_UNASSIGNED,       /* M-J */
    F_UNASSIGNED,       /* M-K */
    F_UNASSIGNED,       /* M-L */
    F_UNASSIGNED,       /* M-M */
    F_UNASSIGNED,       /* M-N */
    F_UNASSIGNED,       /* M-O */
    F_UNASSIGNED,       /* M-P */
    F_UNASSIGNED,       /* M-Q */
    F_UNASSIGNED,       /* M-R */
    F_UNASSIGNED,       /* M-S */
    F_UNASSIGNED,       /* M-T */
    F_UNASSIGNED,       /* M-U */
    F_UNASSIGNED,       /* M-V */
    F_UNASSIGNED,       /* M-W */
    F_UNASSIGNED,       /* M-X */
    F_UNASSIGNED,       /* M-Y */
    F_UNASSIGNED,       /* M-Z */
    F_UNASSIGNED,       /* M-[ */
    F_UNASSIGNED,       /* M-\ */
    F_UNASSIGNED,       /* M-] */
    F_UNASSIGNED,       /* M-^ */
    F_UNASSIGNED,       /* M-_ */
    F_UNASSIGNED,       /* M-` */
    F_UNASSIGNED,       /* M-a */
    F_UNASSIGNED,       /* M-b */
    F_UNASSIGNED,       /* M-c */
    F_UNASSIGNED,       /* M-d */
    F_UNASSIGNED,       /* M-e */
    F_UNASSIGNED,       /* M-f */
    F_UNASSIGNED,       /* M-g */
    F_UNASSIGNED,       /* M-h */
    F_UNASSIGNED,       /* M-i */
    F_UNASSIGNED,       /* M-j */
    F_UNASSIGNED,       /* M-k */
    F_UNASSIGNED,       /* M-l */
    F_UNASSIGNED,       /* M-m */
    F_UNASSIGNED,       /* M-n */
    F_UNASSIGNED,       /* M-o */
    F_UNASSIGNED,       /* M-p */
    F_UNASSIGNED,       /* M-q */
    F_UNASSIGNED,       /* M-r */
    F_UNASSIGNED,       /* M-s */
    F_UNASSIGNED,       /* M-t */
    F_UNASSIGNED,       /* M-u */
    F_UNASSIGNED,       /* M-v */
    F_UNASSIGNED,       /* M-w */
    F_UNASSIGNED,       /* M-x */
    F_UNASSIGNED,       /* M-y */
    F_UNASSIGNED,       /* M-z */
    F_UNASSIGNED,       /* M-{ */
    F_UNASSIGNED,       /* M-| */
    F_UNASSIGNED,       /* M-} */
    F_UNASSIGNED,       /* M-~ */
    F_UNASSIGNED,       /* M-^? */
/* Extra keys begin here */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */
/* ctrl key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */

/* alt key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */
/* shift key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED        /* DEL */
};

KEYCMD  CcViCmdMap[] = {
    F_UNASSIGNED,       /* ^@ */
    F_TOBEG,                  /* ^A */
    F_UNASSIGNED,       /* ^B */
    F_TTY_INT,                /* ^C */
    F_LIST_CHOICES,           /* ^D */
    F_TOEND,                  /* ^E */
    F_UNASSIGNED,       /* ^F */
    F_LIST_GLOB,        /* ^G */
    F_CHARBACK,               /* ^H */
    V_CM_COMPLETE,            /* ^I */
    F_NEWLINE,                /* ^J */
    F_KILLEND,                /* ^K */
    F_CLEARDISP,        /* ^L */
    F_NEWLINE,                /* ^M */
    F_DOWN_HIST,        /* ^N */
    F_TTY_FLUSHO,       /* ^O */
    F_UP_HIST,                /* ^P */
    F_TTY_STARTO,       /* ^Q */
    F_REDISP,                 /* ^R */
    F_TTY_STOPO,        /* ^S */
    F_UNASSIGNED,       /* ^T */
    F_KILLBEG,                /* ^U */
    F_UNASSIGNED,       /* ^V */
    F_DELWORDPREV,            /* ^W */
    F_EXPAND,                 /* ^X */
    F_UNASSIGNED,       /* ^Y */
    F_UNASSIGNED,       /* ^Z */
    F_METANEXT,               /* ^[ */
    F_TTY_QUIT,               /* ^\ */
    F_UNASSIGNED,       /* ^] */
    F_UNASSIGNED,       /* ^^ */
    F_UNASSIGNED,       /* ^_ */
    F_CHARFWD,                /* SPACE */
    F_EXPAND_HISTORY,         /* ! */
    F_UNASSIGNED,       /* " */
    F_UNASSIGNED,       /* # */
    F_TOEND,                  /* $ */
    F_UNASSIGNED,       /* % */
    F_UNASSIGNED,       /* & */
    F_UNASSIGNED,       /* ' */
    F_UNASSIGNED,       /* ( */
    F_UNASSIGNED,       /* ) */
    F_EXPAND_GLOB,            /* * */
    F_DOWN_HIST,        /* + */
    V_RCHAR_BACK,       /* , */     
    F_UP_HIST,                /* - */     
    F_UNASSIGNED,       /* . */
    V_DSH_META,               /* / */
    V_ZERO,             /* 0 */
    F_ARGDIGIT,               /* 1 */
    F_ARGDIGIT,               /* 2 */
    F_ARGDIGIT,               /* 3 */
    F_ARGDIGIT,               /* 4 */
    F_ARGDIGIT,               /* 5 */
    F_ARGDIGIT,               /* 6 */
    F_ARGDIGIT,               /* 7 */
    F_ARGDIGIT,               /* 8 */
    F_ARGDIGIT,               /* 9 */
    F_UNASSIGNED,       /* : */
    V_RCHAR_FWD,        /* ; */
    F_UNASSIGNED,       /* < */
    F_UNASSIGNED,       /* = */
    F_UNASSIGNED,       /* > */
    V_USH_META,               /* ? */
    F_UNASSIGNED,       /* @ */
    V_ADDEND,                 /* A */
    V_WORDBACK,               /* B */
    V_CHGTOEND,               /* C */
    F_KILLEND,                /* D */
    V_ENDWORD,                /* E */
    V_CHAR_BACK,        /* F */
    F_UNASSIGNED,       /* G */
    F_UNASSIGNED,       /* H */
    V_INSBEG,                 /* I */
    F_DOWN_SEARCH_HIST,       /* J */
    F_UP_SEARCH_HIST,         /* K */
    F_UNASSIGNED,       /* L */
    F_UNASSIGNED,       /* M */
    V_RSRCH_BACK,       /* N */
    F_XKEY,             /* O */
    F_UNASSIGNED,       /* P */
    F_UNASSIGNED,       /* Q */
    V_REPLMODE,               /* R */
    V_SUBSTLINE,        /* S */
    V_CHARTO_BACK,            /* T */
    F_UNASSIGNED,       /* U */
    F_EXPAND_VARS,            /* V */
    V_WORDFWD,                /* W */
    F_DELPREV,                /* X */
    F_UNASSIGNED,       /* Y */
    F_UNASSIGNED,       /* Z */
    F_XKEY,             /* [ */
    F_UNASSIGNED,       /* \ */
    F_UNASSIGNED,       /* ] */
    F_TOBEG,                  /* ^ */
    F_UNASSIGNED,       /* _ */
    F_UNASSIGNED,       /* ` */
    V_ADD,              /* a */
    F_WORDBACK,               /* b */
    V_CHGMETA,                /* c */
    V_DELMETA,                /* d */
    V_EWORD,                  /* e */
    V_CHAR_FWD,               /* f */
    F_UNASSIGNED,       /* g */
    F_CHARBACK,               /* h */
    V_INSERT,                 /* i */
    F_DOWN_HIST,        /* j */
    F_UP_HIST,                /* k */
    F_CHARFWD,                /* l */
    F_UNASSIGNED,       /* m */
    V_RSRCH_FWD,        /* n */
    F_UNASSIGNED,       /* o */
    F_UNASSIGNED,       /* p */
    F_UNASSIGNED,       /* q */
    V_REPLONE,                /* r */
    V_SUBSTCHAR,        /* s */
    V_CHARTO_FWD,       /* t */
    V_UNDO,             /* u */
    F_EXPAND_VARS,            /* v */
    V_WORDBEGNEXT,            /* w */
    F_DELNEXT_EOF,            /* x */
    F_UNASSIGNED,       /* y */
    F_UNASSIGNED,       /* z */
    F_UNASSIGNED,       /* { */
    F_UNASSIGNED,       /* | */
    F_UNASSIGNED,       /* } */
    V_CHGCASE,                /* ~ */
    F_DELPREV,                /* ^? */
    F_UNASSIGNED,       /* M-^@ */
    F_UNASSIGNED,       /* M-^A */
    F_UNASSIGNED,       /* M-^B */
    F_UNASSIGNED,       /* M-^C */
    F_UNASSIGNED,       /* M-^D */
    F_UNASSIGNED,       /* M-^E */
    F_UNASSIGNED,       /* M-^F */
    F_UNASSIGNED,       /* M-^G */
    F_UNASSIGNED,       /* M-^H */
    F_UNASSIGNED,       /* M-^I */
    F_UNASSIGNED,       /* M-^J */
    F_UNASSIGNED,       /* M-^K */
    F_UNASSIGNED,       /* M-^L */
    F_UNASSIGNED,       /* M-^M */
    F_UNASSIGNED,       /* M-^N */
    F_UNASSIGNED,       /* M-^O */
    F_UNASSIGNED,       /* M-^P */
    F_UNASSIGNED,       /* M-^Q */
    F_UNASSIGNED,       /* M-^R */
    F_UNASSIGNED,       /* M-^S */
    F_UNASSIGNED,       /* M-^T */
    F_UNASSIGNED,       /* M-^U */
    F_UNASSIGNED,       /* M-^V */
    F_UNASSIGNED,       /* M-^W */
    F_UNASSIGNED,       /* M-^X */
    F_UNASSIGNED,       /* M-^Y */
    F_UNASSIGNED,       /* M-^Z */
    F_UNASSIGNED,       /* M-^[ */
    F_UNASSIGNED,       /* M-^\ */
    F_UNASSIGNED,       /* M-^] */
    F_UNASSIGNED,       /* M-^^ */
    F_UNASSIGNED,       /* M-^_ */
    F_UNASSIGNED,       /* M-SPACE */
    F_UNASSIGNED,       /* M-! */
    F_UNASSIGNED,       /* M-" */
    F_UNASSIGNED,       /* M-# */
    F_UNASSIGNED,       /* M-$ */
    F_UNASSIGNED,       /* M-% */
    F_UNASSIGNED,       /* M-& */
    F_UNASSIGNED,       /* M-' */
    F_UNASSIGNED,       /* M-( */
    F_UNASSIGNED,       /* M-) */
    F_UNASSIGNED,       /* M-* */
    F_UNASSIGNED,       /* M-+ */
    F_UNASSIGNED,       /* M-, */
    F_UNASSIGNED,       /* M-- */
    F_UNASSIGNED,       /* M-. */
    F_UNASSIGNED,       /* M-/ */
    F_UNASSIGNED,       /* M-0 */
    F_UNASSIGNED,       /* M-1 */
    F_UNASSIGNED,       /* M-2 */
    F_UNASSIGNED,       /* M-3 */
    F_UNASSIGNED,       /* M-4 */
    F_UNASSIGNED,       /* M-5 */
    F_UNASSIGNED,       /* M-6 */
    F_UNASSIGNED,       /* M-7 */
    F_UNASSIGNED,       /* M-8 */
    F_UNASSIGNED,       /* M-9 */
    F_UNASSIGNED,       /* M-: */
    F_UNASSIGNED,       /* M-; */
    F_UNASSIGNED,       /* M-< */
    F_UNASSIGNED,       /* M-= */
    F_UNASSIGNED,       /* M-> */
    F_HELPME,                 /* M-? */
    F_UNASSIGNED,       /* M-@ */
    F_UNASSIGNED,       /* M-A */
    F_UNASSIGNED,       /* M-B */
    F_UNASSIGNED,       /* M-C */
    F_UNASSIGNED,       /* M-D */
    F_UNASSIGNED,       /* M-E */
    F_UNASSIGNED,       /* M-F */
    F_UNASSIGNED,       /* M-G */
    F_UNASSIGNED,       /* M-H */
    F_UNASSIGNED,       /* M-I */
    F_UNASSIGNED,       /* M-J */
    F_UNASSIGNED,       /* M-K */
    F_UNASSIGNED,       /* M-L */
    F_UNASSIGNED,       /* M-M */
    F_UNASSIGNED,       /* M-N */
    F_XKEY,             /* M-O *//* extended key esc PWP Mar 88 */
    F_UNASSIGNED,       /* M-P */
    F_UNASSIGNED,       /* M-Q */
    F_UNASSIGNED,       /* M-R */
    F_UNASSIGNED,       /* M-S */
    F_UNASSIGNED,       /* M-T */
    F_UNASSIGNED,       /* M-U */
    F_UNASSIGNED,       /* M-V */
    F_UNASSIGNED,       /* M-W */
    F_UNASSIGNED,       /* M-X */
    F_UNASSIGNED,       /* M-Y */
    F_UNASSIGNED,       /* M-Z */
    F_XKEY,             /* M-[ *//* extended key esc -mf Oct 87 */
    F_UNASSIGNED,       /* M-\ */
    F_UNASSIGNED,       /* M-] */
    F_UNASSIGNED,       /* M-^ */
    F_UNASSIGNED,       /* M-_ */
    F_UNASSIGNED,       /* M-` */
    F_UNASSIGNED,       /* M-a */
    F_UNASSIGNED,       /* M-b */
    F_UNASSIGNED,       /* M-c */
    F_UNASSIGNED,       /* M-d */
    F_UNASSIGNED,       /* M-e */
    F_UNASSIGNED,       /* M-f */
    F_UNASSIGNED,       /* M-g */
    F_UNASSIGNED,       /* M-h */
    F_UNASSIGNED,       /* M-i */
    F_UNASSIGNED,       /* M-j */
    F_UNASSIGNED,       /* M-k */
    F_UNASSIGNED,       /* M-l */
    F_UNASSIGNED,       /* M-m */
    F_UNASSIGNED,       /* M-n */
    F_UNASSIGNED,       /* M-o */
    F_UNASSIGNED,       /* M-p */
    F_UNASSIGNED,       /* M-q */
    F_UNASSIGNED,       /* M-r */
    F_UNASSIGNED,       /* M-s */
    F_UNASSIGNED,       /* M-t */
    F_UNASSIGNED,       /* M-u */
    F_UNASSIGNED,       /* M-v */
    F_UNASSIGNED,       /* M-w */
    F_UNASSIGNED,       /* M-x */
    F_UNASSIGNED,       /* M-y */
    F_UNASSIGNED,       /* M-z */
    F_UNASSIGNED,       /* M-{ */
    F_UNASSIGNED,       /* M-| */
    F_UNASSIGNED,       /* M-} */
    F_UNASSIGNED,       /* M-~ */
    F_UNASSIGNED,       /* M-^? */
/* extra keys begin here */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */

/* ctrl key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */

/* alt key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED,       /* DEL */
/* shift key mappings */
    F_UNASSIGNED,       /* f-1 */
    F_UNASSIGNED,       /* f-2 */
    F_UNASSIGNED,       /* f-3 */
    F_UNASSIGNED,       /* f-4 */
    F_UNASSIGNED,       /* f-5 */
    F_UNASSIGNED,       /* f-6 */
    F_UNASSIGNED,       /* f-7 */
    F_UNASSIGNED,       /* f-8 */
    F_UNASSIGNED,       /* f-9 */
    F_UNASSIGNED,       /* f-10 */
    F_UNASSIGNED,       /* f-11 */
    F_UNASSIGNED,       /* f-12 */
    F_UNASSIGNED,       /* f-13 */
    F_UNASSIGNED,       /* f-14 */
    F_UNASSIGNED,       /* f-15 */
    F_UNASSIGNED,       /* f-16 */
    F_UNASSIGNED,       /* f-17 */
    F_UNASSIGNED,       /* f-18 */
    F_UNASSIGNED,       /* f-19 */
    F_UNASSIGNED,       /* f-20 */
    F_UNASSIGNED,       /* f-21 */
    F_UNASSIGNED,       /* f-22 */
    F_UNASSIGNED,       /* f-23 */
    F_UNASSIGNED,       /* f-24 */
    F_UNASSIGNED,       /* PgUp */
    F_UNASSIGNED,       /* PgDn */
    F_UNASSIGNED,       /* end */
    F_UNASSIGNED,       /* home */
    F_UNASSIGNED,       /* LEFT */
    F_UNASSIGNED,       /* UP */
    F_UNASSIGNED,       /* RIGHT */
    F_UNASSIGNED,       /* DOWN */
    F_UNASSIGNED,       /* INS */
    F_UNASSIGNED        /* DEL */
};
static void
nt_bad_spec(str)
    Char *str;
{
    xprintf(CGETS(20, 4, "Bad key spec %S\n"), str);
}
Char nt_translate_bindkey(Char*s) {
      extern int lstricmp(char*,char*);
      char *str = short2str(s);
      short fkey;
      char corm; /* 1 for ctrl map, 2 for meta map, 3 for shift map*/
      Char keycode = 0;

      corm = 0;

      if (str[0] == 'C') 
            corm= 1;
      else if (str[0] == 'M')
            corm = 2;
      else if (str[0] == 'S') /*shift keymap by avner.lottem@intel.com*/
            corm = 3;

      if (corm)
            str += 2; /* skip C- or M- or S-*/
      
      fkey = atoi(str);
      if (fkey !=0) {
            keycode = (NT_SPECIFIC_BINDING_OFFSET+ (fkey-1) );
      }
      else {
            if (!lstrcmpi("pgup",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN);
            }
            else if (!lstrcmpi("pgdown",str)) {
                  keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 1);
            }
            else if (!lstrcmpi("end",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 2);
            }
            else if (!lstrcmpi("home",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 3);
            }
            else if (!lstrcmpi("left",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 4);
            }
            else if (!lstrcmpi("up",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 5);
            }
            else if (!lstrcmpi("right",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 6);
            }
            else if (!lstrcmpi("down",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 7);
            }
            else if (!lstrcmpi("ins",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET + INS_DEL_MAPPING_BEGIN );
            }
            else if (!lstrcmpi("del",str)) {
                  keycode =  (NT_SPECIFIC_BINDING_OFFSET +INS_DEL_MAPPING_BEGIN +1 );
            }
            else
                  nt_bad_spec(s);
      }
      if (keycode && corm) {
            if (corm == 1)
                  keycode +=  CTRL_KEY_OFFSET;
            else if (corm == 2)
                  keycode +=  ALT_KEY_OFFSET;
            else if (corm == 3)
                  keycode +=  SHIFT_KEY_OFFSET;
      }

      return keycode;
}

Generated by  Doxygen 1.6.0   Back to index