/*$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;
}