aboutsummaryrefslogtreecommitdiff
path: root/win32/nt.bind.c
diff options
context:
space:
mode:
Diffstat (limited to 'win32/nt.bind.c')
-rw-r--r--win32/nt.bind.c1351
1 files changed, 1351 insertions, 0 deletions
diff --git a/win32/nt.bind.c b/win32/nt.bind.c
new file mode 100644
index 000000000000..17e5a75910ca
--- /dev/null
+++ b/win32/nt.bind.c
@@ -0,0 +1,1351 @@
+/*$Header: /p/tcsh/cvsroot/tcsh/win32/nt.bind.c,v 1.6 2006/03/05 08:59:36 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(const Char *keystr)
+{
+ xprintf(CGETS(20, 4, "Bad key spec %S\n"), keystr);
+}
+extern int lstricmp(char*,char*);
+Char nt_translate_bindkey(const Char*s) {
+ char *astr = short2str(s);
+ short fkey;
+ char corm; /* 1 for ctrl map, 2 for meta map, 3 for shift map*/
+ Char keycode = 0;
+
+ corm = 0;
+
+ if (astr[0] == 'C')
+ corm= 1;
+ else if (astr[0] == 'M')
+ corm = 2;
+ else if (astr[0] == 'S') /*shift keymap by avner.lottem@intel.com*/
+ corm = 3;
+
+ if (corm)
+ astr += 2; /* skip C- or M- or S-*/
+
+ fkey = (short)atoi(astr);
+ if (fkey !=0) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET+ (fkey-1) );
+ }
+ else {
+ if (!_stricmp("pgup",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN);
+ }
+ else if (!_stricmp("pgdown",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 1);
+ }
+ else if (!_stricmp("end",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 2);
+ }
+ else if (!_stricmp("home",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 3);
+ }
+ else if (!_stricmp("left",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 4);
+ }
+ else if (!_stricmp("up",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 5);
+ }
+ else if (!_stricmp("right",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 6);
+ }
+ else if (!_stricmp("down",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + KEYPAD_MAPPING_BEGIN + 7);
+ }
+ else if (!_stricmp("ins",astr)) {
+ keycode = (NT_SPECIFIC_BINDING_OFFSET + INS_DEL_MAPPING_BEGIN );
+ }
+ else if (!_stricmp("del",astr)) {
+ 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;
+}