1167465Smp/* $Header: /p/tcsh/cvsroot/tcsh/ed.defns.c,v 3.46 2006/03/02 18:46:44 christos Exp $ */ 259243Sobrien/* 359243Sobrien * ed.defns.c: Editor function definitions and initialization 459243Sobrien */ 559243Sobrien/*- 659243Sobrien * Copyright (c) 1980, 1991 The Regents of the University of California. 759243Sobrien * All rights reserved. 859243Sobrien * 959243Sobrien * Redistribution and use in source and binary forms, with or without 1059243Sobrien * modification, are permitted provided that the following conditions 1159243Sobrien * are met: 1259243Sobrien * 1. Redistributions of source code must retain the above copyright 1359243Sobrien * notice, this list of conditions and the following disclaimer. 1459243Sobrien * 2. Redistributions in binary form must reproduce the above copyright 1559243Sobrien * notice, this list of conditions and the following disclaimer in the 1659243Sobrien * documentation and/or other materials provided with the distribution. 17100616Smp * 3. Neither the name of the University nor the names of its contributors 1859243Sobrien * may be used to endorse or promote products derived from this software 1959243Sobrien * without specific prior written permission. 2059243Sobrien * 2159243Sobrien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2259243Sobrien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2359243Sobrien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2459243Sobrien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2559243Sobrien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2659243Sobrien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2759243Sobrien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2859243Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2959243Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3059243Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3159243Sobrien * SUCH DAMAGE. 3259243Sobrien */ 3359243Sobrien#include "sh.h" 3459243Sobrien 35167465SmpRCSID("$tcsh: ed.defns.c,v 3.46 2006/03/02 18:46:44 christos Exp $") 3659243Sobrien 3759243Sobrien#include "ed.h" 3859243Sobrien 39167465Smpstatic void ed_InitMetaBindings (void); 4059243Sobrien 4159243SobrienPFCmd CcFuncTbl[] = { /* table of available commands */ 4259243Sobrien e_unassigned, 4359243Sobrien/* no #define here -- this is a dummy to detect initing of the key map */ 4459243Sobrien e_unassigned, 4559243Sobrien#define F_UNASSIGNED 1 4659243Sobrien e_insert, 4759243Sobrien#define F_INSERT 2 4859243Sobrien e_newline, 4959243Sobrien#define F_NEWLINE 3 5059243Sobrien e_delprev, 5159243Sobrien#define F_DELPREV 4 5259243Sobrien e_delnext, 5359243Sobrien#define F_DELNEXT 5 5459243Sobrien e_toend, 5559243Sobrien#define F_TOEND 6 5659243Sobrien e_tobeg, 5759243Sobrien#define F_TOBEG 7 5859243Sobrien e_charback, 5959243Sobrien#define F_CHARBACK 8 6059243Sobrien e_charfwd, 6159243Sobrien#define F_CHARFWD 9 6259243Sobrien e_quote, 6359243Sobrien#define F_QUOTE 10 6459243Sobrien e_startover, 6559243Sobrien#define F_STARTOVER 11 6659243Sobrien e_redisp, 6759243Sobrien#define F_REDISP 12 6859243Sobrien e_tty_int, 6959243Sobrien#define F_TTY_INT 13 7059243Sobrien e_wordback, 7159243Sobrien#define F_WORDBACK 14 7259243Sobrien e_wordfwd, 7359243Sobrien#define F_WORDFWD 15 7459243Sobrien e_cleardisp, 7559243Sobrien#define F_CLEARDISP 16 7659243Sobrien e_complete, 7759243Sobrien#define F_COMPLETE 17 7859243Sobrien e_correct, 7959243Sobrien#define F_CORRECT 18 8059243Sobrien e_up_hist, 8159243Sobrien#define F_UP_HIST 19 8259243Sobrien e_down_hist, 8359243Sobrien#define F_DOWN_HIST 20 8459243Sobrien e_up_search_hist, 8559243Sobrien#define F_UP_SEARCH_HIST 21 8659243Sobrien e_down_search_hist, 8759243Sobrien#define F_DOWN_SEARCH_HIST 22 8859243Sobrien e_helpme, 8959243Sobrien#define F_HELPME 23 9059243Sobrien e_list_choices, 9159243Sobrien#define F_LIST_CHOICES 24 9259243Sobrien e_delwordprev, 9359243Sobrien#define F_DELWORDPREV 25 9459243Sobrien e_delwordnext, 9559243Sobrien#define F_DELWORDNEXT 26 9659243Sobrien e_digit, 9759243Sobrien#define F_DIGIT 27 9859243Sobrien e_killend, 9959243Sobrien#define F_KILLEND 28 10059243Sobrien e_killbeg, 10159243Sobrien#define F_KILLBEG 29 10259243Sobrien e_metanext, 10359243Sobrien#define F_METANEXT 30 10459243Sobrien e_send_eof, 10559243Sobrien#define F_SEND_EOF 31 10659243Sobrien e_charswitch, 10759243Sobrien#define F_CHARSWITCH 32 10859243Sobrien e_which, 10959243Sobrien#define F_WHICH 33 11059243Sobrien e_yank_kill, 11159243Sobrien#define F_YANK_KILL 34 11259243Sobrien e_tty_dsusp, 11359243Sobrien#define F_TTY_DSUSP 35 11459243Sobrien e_tty_flusho, 11559243Sobrien#define F_TTY_FLUSHO 36 11659243Sobrien e_tty_quit, 11759243Sobrien#define F_TTY_QUIT 37 11859243Sobrien e_tty_tsusp, 11959243Sobrien#define F_TTY_TSUSP 38 12059243Sobrien e_tty_stopo, 12159243Sobrien#define F_TTY_STOPO 39 12259243Sobrien e_tty_starto, 12359243Sobrien#define F_TTY_STARTO 40 12459243Sobrien e_argfour, 12559243Sobrien#define F_ARGFOUR 41 12659243Sobrien e_set_mark, 12759243Sobrien#define F_SET_MARK 42 12859243Sobrien e_exchange_mark, 12959243Sobrien#define F_EXCHANGE_MARK 43 13059243Sobrien e_last_item, 13159243Sobrien#define F_LAST_ITEM 44 13259243Sobrien e_delnext_list_eof, 13359243Sobrien#define F_DELNEXT_LIST_EOF 45 13459243Sobrien v_cmd_mode, 13559243Sobrien#define V_CMD_MODE 46 13659243Sobrien v_insert, 13759243Sobrien#define V_INSERT 47 13859243Sobrien e_argdigit, 13959243Sobrien#define F_ARGDIGIT 48 14059243Sobrien e_killregion, 14159243Sobrien#define F_KILLREGION 49 14259243Sobrien e_copyregion, 14359243Sobrien#define F_COPYREGION 50 14459243Sobrien e_gcharswitch, 14559243Sobrien#define F_GCHARSWITCH 51 14659243Sobrien e_run_fg_editor, 14759243Sobrien#define F_RUN_FG_EDITOR 52 14859243Sobrien e_unassigned, /* place holder for sequence lead in character */ 14959243Sobrien#define F_XKEY 53 15059243Sobrien e_uppercase, 15159243Sobrien#define F_CASEUPPER 54 15259243Sobrien e_lowercase, 15359243Sobrien#define F_CASELOWER 55 15459243Sobrien e_capitolcase, 15559243Sobrien#define F_CASECAPITAL 56 15659243Sobrien v_zero, 15759243Sobrien#define V_ZERO 57 15859243Sobrien v_add, 15959243Sobrien#define V_ADD 58 16059243Sobrien v_addend, 16159243Sobrien#define V_ADDEND 59 16259243Sobrien v_wordbegnext, 16359243Sobrien#define V_WORDBEGNEXT 60 16459243Sobrien e_killall, 16559243Sobrien#define F_KILLALL 61 16659243Sobrien e_unassigned, 16759243Sobrien/* F_EXTENDNEXT removed */ 16859243Sobrien v_insbeg, 16959243Sobrien#define V_INSBEG 63 17059243Sobrien v_replmode, 17159243Sobrien#define V_REPLMODE 64 17259243Sobrien v_replone, 17359243Sobrien#define V_REPLONE 65 17459243Sobrien v_substline, 17559243Sobrien#define V_SUBSTLINE 66 17659243Sobrien v_substchar, 17759243Sobrien#define V_SUBSTCHAR 67 17859243Sobrien v_chgtoend, 17959243Sobrien#define V_CHGTOEND 68 18059243Sobrien e_list_eof, 18159243Sobrien#define F_LIST_EOF 69 18259243Sobrien e_list_glob, 18359243Sobrien#define F_LIST_GLOB 70 18459243Sobrien e_expand_history, 18559243Sobrien#define F_EXPAND_HISTORY 71 18659243Sobrien e_magic_space, 18759243Sobrien#define F_MAGIC_SPACE 72 18859243Sobrien e_insovr, 18959243Sobrien#define F_INSOVR 73 19059243Sobrien v_cm_complete, 19159243Sobrien#define V_CM_COMPLETE 74 19259243Sobrien e_copyprev, 19359243Sobrien#define F_COPYPREV 75 19459243Sobrien e_correctl, 19559243Sobrien#define F_CORRECT_L 76 19659243Sobrien e_expand_glob, 19759243Sobrien#define F_EXPAND_GLOB 77 19859243Sobrien e_expand_vars, 19959243Sobrien#define F_EXPAND_VARS 78 20059243Sobrien e_toggle_hist, 20159243Sobrien#define F_TOGGLE_HIST 79 20259243Sobrien v_change_case, 20359243Sobrien#define V_CHGCASE 80 20459243Sobrien e_expand, 20559243Sobrien#define F_EXPAND 81 20659243Sobrien e_load_average, 20759243Sobrien#define F_LOAD_AVERAGE 82 20859243Sobrien v_delprev, 20959243Sobrien#define V_DELPREV 83 21059243Sobrien v_delmeta, 21159243Sobrien#define V_DELMETA 84 21259243Sobrien v_wordfwd, 21359243Sobrien#define V_WORDFWD 85 21459243Sobrien v_wordback, 21559243Sobrien#define V_WORDBACK 86 21659243Sobrien v_endword, 21759243Sobrien#define V_ENDWORD 87 21859243Sobrien v_eword, 21959243Sobrien#define V_EWORD 88 22059243Sobrien v_undo, 22159243Sobrien#define V_UNDO 89 22259243Sobrien v_ush_meta, 22359243Sobrien#define V_USH_META 90 22459243Sobrien v_dsh_meta, 22559243Sobrien#define V_DSH_META 91 22659243Sobrien v_rsrch_fwd, 22759243Sobrien#define V_RSRCH_FWD 92 22859243Sobrien v_rsrch_back, 22959243Sobrien#define V_RSRCH_BACK 93 23059243Sobrien v_char_fwd, 23159243Sobrien#define V_CHAR_FWD 94 23259243Sobrien v_char_back, 23359243Sobrien#define V_CHAR_BACK 95 23459243Sobrien v_chgmeta, 23559243Sobrien#define V_CHGMETA 96 23659243Sobrien e_inc_fwd, 23759243Sobrien#define F_INC_FWD 97 23859243Sobrien e_inc_back, 23959243Sobrien#define F_INC_BACK 98 24059243Sobrien v_rchar_fwd, 24159243Sobrien#define V_RCHAR_FWD 99 24259243Sobrien v_rchar_back, 24359243Sobrien#define V_RCHAR_BACK 100 24459243Sobrien v_charto_fwd, 24559243Sobrien#define V_CHARTO_FWD 101 24659243Sobrien v_charto_back, 24759243Sobrien#define V_CHARTO_BACK 102 24859243Sobrien e_normalize_path, 24959243Sobrien#define F_PATH_NORM 103 25059243Sobrien e_delnext_eof, /* added by mtk@ari.ncl.omron.co.jp (920818) */ 25159243Sobrien#define F_DELNEXT_EOF 104 25259243Sobrien e_stuff_char, 25359243Sobrien#define F_STUFF_CHAR 105 25459243Sobrien e_complete_all, 25559243Sobrien#define F_COMPLETE_ALL 106 25659243Sobrien e_list_all, 25759243Sobrien#define F_LIST_ALL 107 25859243Sobrien e_complete_fwd, 25959243Sobrien#define F_COMPLETE_FWD 108 26059243Sobrien e_complete_back, 26159243Sobrien#define F_COMPLETE_BACK 109 26259243Sobrien e_delnext_list, 26359243Sobrien#define F_DELNEXT_LIST 110 26459243Sobrien e_normalize_command, 26559243Sobrien#define F_COMMAND_NORM 111 26659243Sobrien e_dabbrev_expand, 26759243Sobrien#define F_DABBREV_EXPAND 112 26883098Smp e_copy_to_clipboard, 26983098Smp#define F_COPY_CLIP 113 27083098Smp e_paste_from_clipboard, 27159243Sobrien#define F_PASTE_CLIP 114 27283098Smp e_dosify_next, 27359243Sobrien#define F_DOSIFY_NEXT 115 27483098Smp e_dosify_prev, 27559243Sobrien#define F_DOSIFY_PREV 116 27683098Smp e_page_up, 27783098Smp#define F_PAGE_UP 117 27883098Smp e_page_down, 27983098Smp#define F_PAGE_DOWN 118 28083098Smp e_yank_pop, 28183098Smp#define F_YANK_POP 119 282167465Smp e_newline_hold, 283167465Smp#define F_NEWLINE_HOLD 120 284167465Smp e_newline_down_hist, 285167465Smp#define F_NEWLINE_DOWN_HIST 121 28659243Sobrien 0 /* DUMMY VALUE */ 287167465Smp#define F_NUM_FNS 122 28859243Sobrien 28959243Sobrien}; 29059243Sobrien 29159243SobrienKEYCMD NumFuns = F_NUM_FNS; 29259243Sobrien 29359243SobrienKEYCMD CcKeyMap[NT_NUM_KEYS]; /* the real key map */ 29459243SobrienKEYCMD CcAltMap[NT_NUM_KEYS]; /* the alternative key map */ 29559243Sobrien#define F_NUM_FUNCNAMES (F_NUM_FNS + 2) 29659243Sobrienstruct KeyFuncs FuncNames[F_NUM_FUNCNAMES]; 29759243Sobrien 29869408Sache#ifdef WINNT_NATIVE 29959243Sobrienextern KEYCMD CcEmacsMap[]; 30059243Sobrienextern KEYCMD CcViMap[]; 30159243Sobrienextern KEYCMD CcViCmdMap[]; 30269408Sache#else /* !WINNT_NATIVE*/ 30359243SobrienKEYCMD CcEmacsMap[] = { 30459243Sobrien/* keymap table, each index into above tbl; should be 256*sizeof(KEYCMD) 30559243Sobrien bytes long */ 30659243Sobrien 30759243Sobrien F_SET_MARK, /* ^@ */ 30859243Sobrien F_TOBEG, /* ^A */ 30959243Sobrien F_CHARBACK, /* ^B */ 31059243Sobrien F_TTY_INT, /* ^C */ 31159243Sobrien F_DELNEXT_LIST_EOF, /* ^D */ 31259243Sobrien F_TOEND, /* ^E */ 31359243Sobrien F_CHARFWD, /* ^F */ 31459243Sobrien F_UNASSIGNED, /* ^G */ 31559243Sobrien F_DELPREV, /* ^H */ 31659243Sobrien F_COMPLETE, /* ^I */ 31759243Sobrien F_NEWLINE, /* ^J */ 31859243Sobrien F_KILLEND, /* ^K */ 31959243Sobrien F_CLEARDISP, /* ^L */ 32059243Sobrien F_NEWLINE, /* ^M */ 32159243Sobrien F_DOWN_HIST, /* ^N */ 32259243Sobrien F_TTY_FLUSHO, /* ^O */ 32359243Sobrien F_UP_HIST, /* ^P */ 32459243Sobrien F_TTY_STARTO, /* ^Q */ 32559243Sobrien F_REDISP, /* ^R */ 32659243Sobrien F_TTY_STOPO, /* ^S */ 32759243Sobrien F_CHARSWITCH, /* ^T */ 32859243Sobrien F_KILLALL, /* ^U */ 32959243Sobrien F_QUOTE, /* ^V */ 33059243Sobrien F_KILLREGION, /* ^W */ 33159243Sobrien F_XKEY, /* ^X */ 33259243Sobrien F_YANK_KILL, /* ^Y */ 33359243Sobrien F_TTY_TSUSP, /* ^Z */ 33459243Sobrien F_METANEXT, /* ^[ */ 33559243Sobrien F_TTY_QUIT, /* ^\ */ 33659243Sobrien F_TTY_DSUSP, /* ^] */ 33759243Sobrien F_UNASSIGNED, /* ^^ */ 33859243Sobrien F_UNASSIGNED, /* ^_ */ 33959243Sobrien F_INSERT, /* SPACE */ 34059243Sobrien F_INSERT, /* ! */ 34159243Sobrien F_INSERT, /* " */ 34259243Sobrien F_INSERT, /* # */ 34359243Sobrien F_INSERT, /* $ */ 34459243Sobrien F_INSERT, /* % */ 34559243Sobrien F_INSERT, /* & */ 34659243Sobrien F_INSERT, /* ' */ 34759243Sobrien F_INSERT, /* ( */ 34859243Sobrien F_INSERT, /* ) */ 34959243Sobrien F_INSERT, /* * */ 35059243Sobrien F_INSERT, /* + */ 35159243Sobrien F_INSERT, /* , */ 35259243Sobrien F_INSERT, /* - */ 35359243Sobrien F_INSERT, /* . */ 35459243Sobrien F_INSERT, /* / */ 35559243Sobrien F_DIGIT, /* 0 */ 35659243Sobrien F_DIGIT, /* 1 */ 35759243Sobrien F_DIGIT, /* 2 */ 35859243Sobrien F_DIGIT, /* 3 */ 35959243Sobrien F_DIGIT, /* 4 */ 36059243Sobrien F_DIGIT, /* 5 */ 36159243Sobrien F_DIGIT, /* 6 */ 36259243Sobrien F_DIGIT, /* 7 */ 36359243Sobrien F_DIGIT, /* 8 */ 36459243Sobrien F_DIGIT, /* 9 */ 36559243Sobrien F_INSERT, /* : */ 36659243Sobrien F_INSERT, /* ; */ 36759243Sobrien F_INSERT, /* < */ 36859243Sobrien F_INSERT, /* = */ 36959243Sobrien F_INSERT, /* > */ 37059243Sobrien F_INSERT, /* ? */ 37159243Sobrien F_INSERT, /* @ */ 37259243Sobrien F_INSERT, /* A */ 37359243Sobrien F_INSERT, /* B */ 37459243Sobrien F_INSERT, /* C */ 37559243Sobrien F_INSERT, /* D */ 37659243Sobrien F_INSERT, /* E */ 37759243Sobrien F_INSERT, /* F */ 37859243Sobrien F_INSERT, /* G */ 37959243Sobrien F_INSERT, /* H */ 38059243Sobrien F_INSERT, /* I */ 38159243Sobrien F_INSERT, /* J */ 38259243Sobrien F_INSERT, /* K */ 38359243Sobrien F_INSERT, /* L */ 38459243Sobrien F_INSERT, /* M */ 38559243Sobrien F_INSERT, /* N */ 38659243Sobrien F_INSERT, /* O */ 38759243Sobrien F_INSERT, /* P */ 38859243Sobrien F_INSERT, /* Q */ 38959243Sobrien F_INSERT, /* R */ 39059243Sobrien F_INSERT, /* S */ 39159243Sobrien F_INSERT, /* T */ 39259243Sobrien F_INSERT, /* U */ 39359243Sobrien F_INSERT, /* V */ 39459243Sobrien F_INSERT, /* W */ 39559243Sobrien F_INSERT, /* X */ 39659243Sobrien F_INSERT, /* Y */ 39759243Sobrien F_INSERT, /* Z */ 39859243Sobrien F_INSERT, /* [ */ 39959243Sobrien F_INSERT, /* \ */ 40059243Sobrien F_INSERT, /* ] */ 40159243Sobrien F_INSERT, /* ^ */ 40259243Sobrien F_INSERT, /* _ */ 40359243Sobrien F_INSERT, /* ` */ 40459243Sobrien F_INSERT, /* a */ 40559243Sobrien F_INSERT, /* b */ 40659243Sobrien F_INSERT, /* c */ 40759243Sobrien F_INSERT, /* d */ 40859243Sobrien F_INSERT, /* e */ 40959243Sobrien F_INSERT, /* f */ 41059243Sobrien F_INSERT, /* g */ 41159243Sobrien F_INSERT, /* h */ 41259243Sobrien F_INSERT, /* i */ 41359243Sobrien F_INSERT, /* j */ 41459243Sobrien F_INSERT, /* k */ 41559243Sobrien F_INSERT, /* l */ 41659243Sobrien F_INSERT, /* m */ 41759243Sobrien F_INSERT, /* n */ 41859243Sobrien F_INSERT, /* o */ 41959243Sobrien F_INSERT, /* p */ 42059243Sobrien F_INSERT, /* q */ 42159243Sobrien F_INSERT, /* r */ 42259243Sobrien F_INSERT, /* s */ 42359243Sobrien F_INSERT, /* t */ 42459243Sobrien F_INSERT, /* u */ 42559243Sobrien F_INSERT, /* v */ 42659243Sobrien F_INSERT, /* w */ 42759243Sobrien F_INSERT, /* x */ 42859243Sobrien F_INSERT, /* y */ 42959243Sobrien F_INSERT, /* z */ 43059243Sobrien F_INSERT, /* { */ 43159243Sobrien F_INSERT, /* | */ 43259243Sobrien F_INSERT, /* } */ 43359243Sobrien F_INSERT, /* ~ */ 43459243Sobrien F_DELPREV, /* ^? */ 43559243Sobrien F_UNASSIGNED, /* M-^@ */ 43659243Sobrien F_UNASSIGNED, /* M-^A */ 43759243Sobrien F_UNASSIGNED, /* M-^B */ 43859243Sobrien F_UNASSIGNED, /* M-^C */ 43959243Sobrien F_LIST_CHOICES, /* M-^D */ 44059243Sobrien F_UNASSIGNED, /* M-^E */ 44159243Sobrien F_UNASSIGNED, /* M-^F */ 44259243Sobrien F_UNASSIGNED, /* M-^G */ 44359243Sobrien F_DELWORDPREV, /* M-^H */ 44459243Sobrien F_COMPLETE, /* M-^I */ 44559243Sobrien F_UNASSIGNED, /* M-^J */ 44659243Sobrien F_UNASSIGNED, /* M-^K */ 44759243Sobrien F_CLEARDISP, /* M-^L */ 44859243Sobrien F_UNASSIGNED, /* M-^M */ 44959243Sobrien F_UNASSIGNED, /* M-^N */ 45059243Sobrien F_UNASSIGNED, /* M-^O */ 45159243Sobrien F_UNASSIGNED, /* M-^P */ 45259243Sobrien F_UNASSIGNED, /* M-^Q */ 45359243Sobrien F_UNASSIGNED, /* M-^R */ 45459243Sobrien F_UNASSIGNED, /* M-^S */ 45559243Sobrien F_UNASSIGNED, /* M-^T */ 45659243Sobrien F_UNASSIGNED, /* M-^U */ 45759243Sobrien F_UNASSIGNED, /* M-^V */ 45859243Sobrien F_UNASSIGNED, /* M-^W */ 45959243Sobrien F_UNASSIGNED, /* M-^X */ 46059243Sobrien F_UNASSIGNED, /* M-^Y */ 46159243Sobrien F_RUN_FG_EDITOR, /* M-^Z */ 46259243Sobrien F_COMPLETE, /* M-^[ */ 46359243Sobrien F_UNASSIGNED, /* M-^\ */ 46459243Sobrien F_UNASSIGNED, /* M-^] */ 46559243Sobrien F_UNASSIGNED, /* M-^^ */ 46659243Sobrien F_COPYPREV, /* M-^_ */ 46759243Sobrien F_EXPAND_HISTORY, /* M-SPACE */ 46859243Sobrien F_EXPAND_HISTORY, /* M-! */ 46959243Sobrien F_UNASSIGNED, /* M-" */ 47059243Sobrien F_UNASSIGNED, /* M-# */ 47159243Sobrien F_CORRECT_L, /* M-$ */ 47259243Sobrien F_UNASSIGNED, /* M-% */ 47359243Sobrien F_UNASSIGNED, /* M-& */ 47459243Sobrien F_UNASSIGNED, /* M-' */ 47559243Sobrien F_UNASSIGNED, /* M-( */ 47659243Sobrien F_UNASSIGNED, /* M-) */ 47759243Sobrien F_UNASSIGNED, /* M-* */ 47859243Sobrien F_UNASSIGNED, /* M-+ */ 47959243Sobrien F_UNASSIGNED, /* M-, */ 48059243Sobrien F_UNASSIGNED, /* M-- */ 48159243Sobrien F_UNASSIGNED, /* M-. */ 48259243Sobrien F_DABBREV_EXPAND, /* M-/ */ 48359243Sobrien F_ARGDIGIT, /* M-0 */ 48459243Sobrien F_ARGDIGIT, /* M-1 */ 48559243Sobrien F_ARGDIGIT, /* M-2 */ 48659243Sobrien F_ARGDIGIT, /* M-3 */ 48759243Sobrien F_ARGDIGIT, /* M-4 */ 48859243Sobrien F_ARGDIGIT, /* M-5 */ 48959243Sobrien F_ARGDIGIT, /* M-6 */ 49059243Sobrien F_ARGDIGIT, /* M-7 */ 49159243Sobrien F_ARGDIGIT, /* M-8 */ 49259243Sobrien F_ARGDIGIT, /* M-9 */ 49359243Sobrien F_UNASSIGNED, /* M-: */ 49459243Sobrien F_UNASSIGNED, /* M-; */ 49559243Sobrien F_UNASSIGNED, /* M-< */ 49659243Sobrien F_UNASSIGNED, /* M-= */ 49759243Sobrien F_UNASSIGNED, /* M-> */ 49859243Sobrien F_WHICH, /* M-? */ 49959243Sobrien F_UNASSIGNED, /* M-@ */ 500167465Smp F_NEWLINE_HOLD, /* M-A */ 50159243Sobrien F_WORDBACK, /* M-B */ 50259243Sobrien F_CASECAPITAL, /* M-C */ 50359243Sobrien F_DELWORDNEXT, /* M-D */ 50459243Sobrien F_UNASSIGNED, /* M-E */ 50559243Sobrien F_WORDFWD, /* M-F */ 50659243Sobrien F_UNASSIGNED, /* M-G */ 50759243Sobrien F_HELPME, /* M-H */ 50859243Sobrien F_UNASSIGNED, /* M-I */ 50959243Sobrien F_UNASSIGNED, /* M-J */ 51059243Sobrien F_UNASSIGNED, /* M-K */ 51159243Sobrien F_CASELOWER, /* M-L */ 51259243Sobrien F_UNASSIGNED, /* M-M */ 51359243Sobrien F_DOWN_SEARCH_HIST, /* M-N */ 51459243Sobrien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 51559243Sobrien F_UP_SEARCH_HIST, /* M-P */ 51659243Sobrien F_UNASSIGNED, /* M-Q */ 51759243Sobrien F_TOGGLE_HIST, /* M-R */ 51859243Sobrien F_CORRECT, /* M-S */ 51959243Sobrien F_UNASSIGNED, /* M-T */ 52059243Sobrien F_CASEUPPER, /* M-U */ 52159243Sobrien F_UNASSIGNED, /* M-V */ 52259243Sobrien F_COPYREGION, /* M-W */ 52359243Sobrien F_UNASSIGNED, /* M-X */ 52483098Smp F_YANK_POP, /* M-Y */ 52559243Sobrien F_UNASSIGNED, /* M-Z */ 52659243Sobrien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 52759243Sobrien F_UNASSIGNED, /* M-\ */ 52859243Sobrien F_UNASSIGNED, /* M-] */ 52959243Sobrien F_UNASSIGNED, /* M-^ */ 53059243Sobrien F_LAST_ITEM, /* M-_ */ 53159243Sobrien F_UNASSIGNED, /* M-` */ 532167465Smp F_NEWLINE_HOLD, /* M-a */ 53359243Sobrien F_WORDBACK, /* M-b */ 53459243Sobrien F_CASECAPITAL, /* M-c */ 53559243Sobrien F_DELWORDNEXT, /* M-d */ 53659243Sobrien F_UNASSIGNED, /* M-e */ 53759243Sobrien F_WORDFWD, /* M-f */ 53859243Sobrien F_UNASSIGNED, /* M-g */ 53959243Sobrien F_HELPME, /* M-h */ 54059243Sobrien F_UNASSIGNED, /* M-i */ 54159243Sobrien F_UNASSIGNED, /* M-j */ 54259243Sobrien F_UNASSIGNED, /* M-k */ 54359243Sobrien F_CASELOWER, /* M-l */ 54459243Sobrien F_UNASSIGNED, /* M-m */ 54559243Sobrien F_DOWN_SEARCH_HIST, /* M-n */ 54659243Sobrien F_UNASSIGNED, /* M-o */ 54759243Sobrien F_UP_SEARCH_HIST, /* M-p */ 54859243Sobrien F_UNASSIGNED, /* M-q */ 54959243Sobrien F_TOGGLE_HIST, /* M-r */ 55059243Sobrien F_CORRECT, /* M-s */ 55159243Sobrien F_UNASSIGNED, /* M-t */ 55259243Sobrien F_CASEUPPER, /* M-u */ 55359243Sobrien F_UNASSIGNED, /* M-v */ 55459243Sobrien F_COPYREGION, /* M-w */ 55559243Sobrien F_UNASSIGNED, /* M-x */ 55683098Smp F_YANK_POP, /* M-y */ 55759243Sobrien F_UNASSIGNED, /* M-z */ 55859243Sobrien F_UNASSIGNED, /* M-{ */ 55959243Sobrien F_UNASSIGNED, /* M-| */ 56059243Sobrien F_UNASSIGNED, /* M-} */ 56159243Sobrien F_UNASSIGNED, /* M-~ */ 56259243Sobrien F_DELWORDPREV /* M-^? */ 56359243Sobrien}; 56459243Sobrien 56559243Sobrien/* 56659243Sobrien * keymap table for vi. Each index into above tbl; should be 56759243Sobrien * 256 entries long. Vi mode uses a sticky-extend to do command mode: 56859243Sobrien * insert mode characters are in the normal keymap, and command mode 56959243Sobrien * in the extended keymap. 57059243Sobrien */ 57159243Sobrienstatic KEYCMD CcViMap[] = { 57259243Sobrien#ifdef KSHVI 57359243Sobrien F_UNASSIGNED, /* ^@ */ 57459243Sobrien F_INSERT, /* ^A */ 57559243Sobrien F_INSERT, /* ^B */ 57659243Sobrien F_INSERT, /* ^C */ 57759243Sobrien F_INSERT, /* ^D */ 57859243Sobrien F_INSERT, /* ^E */ 57959243Sobrien F_INSERT, /* ^F */ 58059243Sobrien F_INSERT, /* ^G */ 58159243Sobrien V_DELPREV, /* ^H */ /* BackSpace key */ 58259243Sobrien F_COMPLETE, /* ^I */ /* Tab Key */ 58359243Sobrien F_NEWLINE, /* ^J */ 58459243Sobrien F_INSERT, /* ^K */ 58559243Sobrien F_INSERT, /* ^L */ 58659243Sobrien F_NEWLINE, /* ^M */ 58759243Sobrien F_INSERT, /* ^N */ 58859243Sobrien F_INSERT, /* ^O */ 58959243Sobrien F_INSERT, /* ^P */ 59059243Sobrien F_TTY_STARTO, /* ^Q */ 59159243Sobrien F_INSERT, /* ^R */ 59259243Sobrien F_INSERT, /* ^S */ 59359243Sobrien F_INSERT, /* ^T */ 59459243Sobrien F_INSERT, /* ^U */ 59559243Sobrien F_QUOTE, /* ^V */ 59659243Sobrien F_DELWORDPREV, /* ^W */ /* Only until start edit pos */ 59759243Sobrien F_INSERT, /* ^X */ 59859243Sobrien F_INSERT, /* ^Y */ 59959243Sobrien F_INSERT, /* ^Z */ 60059243Sobrien V_CMD_MODE, /* ^[ */ /* [ Esc ] key */ 60159243Sobrien F_TTY_QUIT, /* ^\ */ 60259243Sobrien F_INSERT, /* ^] */ 60359243Sobrien F_INSERT, /* ^^ */ 60459243Sobrien F_INSERT, /* ^_ */ 60559243Sobrien#else /* !KSHVI */ 60659243Sobrien F_UNASSIGNED, /* ^@ */ /* NOTE: These mapping do NOT */ 60759243Sobrien F_TOBEG, /* ^A */ /* Correspond well to the KSH */ 60859243Sobrien F_CHARBACK, /* ^B */ /* VI editting assignments */ 60959243Sobrien F_TTY_INT, /* ^C */ /* On the other hand they are */ 61059243Sobrien F_LIST_EOF, /* ^D */ /* convenient any many people */ 61159243Sobrien F_TOEND, /* ^E */ /* have gotten used to them */ 61259243Sobrien F_CHARFWD, /* ^F */ 61359243Sobrien F_LIST_GLOB, /* ^G */ 61459243Sobrien F_DELPREV, /* ^H */ /* BackSpace key */ 61559243Sobrien F_COMPLETE, /* ^I */ /* Tab Key */ 61659243Sobrien F_NEWLINE, /* ^J */ 61759243Sobrien F_KILLEND, /* ^K */ 61859243Sobrien F_CLEARDISP, /* ^L */ 61959243Sobrien F_NEWLINE, /* ^M */ 62059243Sobrien F_DOWN_HIST, /* ^N */ 62159243Sobrien F_TTY_FLUSHO, /* ^O */ 62259243Sobrien F_UP_HIST, /* ^P */ 62359243Sobrien F_TTY_STARTO, /* ^Q */ 62459243Sobrien F_REDISP, /* ^R */ 62559243Sobrien F_TTY_STOPO, /* ^S */ 62659243Sobrien F_CHARSWITCH, /* ^T */ 62759243Sobrien F_KILLBEG, /* ^U */ 62859243Sobrien F_QUOTE, /* ^V */ 62959243Sobrien F_DELWORDPREV, /* ^W */ 63059243Sobrien F_EXPAND, /* ^X */ 63159243Sobrien F_TTY_DSUSP, /* ^Y */ 63259243Sobrien F_TTY_TSUSP, /* ^Z */ 63359243Sobrien V_CMD_MODE, /* ^[ */ 63459243Sobrien F_TTY_QUIT, /* ^\ */ 63559243Sobrien F_UNASSIGNED, /* ^] */ 63659243Sobrien F_UNASSIGNED, /* ^^ */ 63759243Sobrien F_UNASSIGNED, /* ^_ */ 63859243Sobrien#endif /* KSHVI */ 63959243Sobrien F_INSERT, /* SPACE */ 64059243Sobrien F_INSERT, /* ! */ 64159243Sobrien F_INSERT, /* " */ 64259243Sobrien F_INSERT, /* # */ 64359243Sobrien F_INSERT, /* $ */ 64459243Sobrien F_INSERT, /* % */ 64559243Sobrien F_INSERT, /* & */ 64659243Sobrien F_INSERT, /* ' */ 64759243Sobrien F_INSERT, /* ( */ 64859243Sobrien F_INSERT, /* ) */ 64959243Sobrien F_INSERT, /* * */ 65059243Sobrien F_INSERT, /* + */ 65159243Sobrien F_INSERT, /* , */ 65259243Sobrien F_INSERT, /* - */ 65359243Sobrien F_INSERT, /* . */ 65459243Sobrien F_INSERT, /* / */ 65559243Sobrien F_INSERT, /* 0 */ 65659243Sobrien F_INSERT, /* 1 */ 65759243Sobrien F_INSERT, /* 2 */ 65859243Sobrien F_INSERT, /* 3 */ 65959243Sobrien F_INSERT, /* 4 */ 66059243Sobrien F_INSERT, /* 5 */ 66159243Sobrien F_INSERT, /* 6 */ 66259243Sobrien F_INSERT, /* 7 */ 66359243Sobrien F_INSERT, /* 8 */ 66459243Sobrien F_INSERT, /* 9 */ 66559243Sobrien F_INSERT, /* : */ 66659243Sobrien F_INSERT, /* ; */ 66759243Sobrien F_INSERT, /* < */ 66859243Sobrien F_INSERT, /* = */ 66959243Sobrien F_INSERT, /* > */ 67059243Sobrien F_INSERT, /* ? */ 67159243Sobrien F_INSERT, /* @ */ 67259243Sobrien F_INSERT, /* A */ 67359243Sobrien F_INSERT, /* B */ 67459243Sobrien F_INSERT, /* C */ 67559243Sobrien F_INSERT, /* D */ 67659243Sobrien F_INSERT, /* E */ 67759243Sobrien F_INSERT, /* F */ 67859243Sobrien F_INSERT, /* G */ 67959243Sobrien F_INSERT, /* H */ 68059243Sobrien F_INSERT, /* I */ 68159243Sobrien F_INSERT, /* J */ 68259243Sobrien F_INSERT, /* K */ 68359243Sobrien F_INSERT, /* L */ 68459243Sobrien F_INSERT, /* M */ 68559243Sobrien F_INSERT, /* N */ 68659243Sobrien F_INSERT, /* O */ 68759243Sobrien F_INSERT, /* P */ 68859243Sobrien F_INSERT, /* Q */ 68959243Sobrien F_INSERT, /* R */ 69059243Sobrien F_INSERT, /* S */ 69159243Sobrien F_INSERT, /* T */ 69259243Sobrien F_INSERT, /* U */ 69359243Sobrien F_INSERT, /* V */ 69459243Sobrien F_INSERT, /* W */ 69559243Sobrien F_INSERT, /* X */ 69659243Sobrien F_INSERT, /* Y */ 69759243Sobrien F_INSERT, /* Z */ 69859243Sobrien F_INSERT, /* [ */ 69959243Sobrien F_INSERT, /* \ */ 70059243Sobrien F_INSERT, /* ] */ 70159243Sobrien F_INSERT, /* ^ */ 70259243Sobrien F_INSERT, /* _ */ 70359243Sobrien F_INSERT, /* ` */ 70459243Sobrien F_INSERT, /* a */ 70559243Sobrien F_INSERT, /* b */ 70659243Sobrien F_INSERT, /* c */ 70759243Sobrien F_INSERT, /* d */ 70859243Sobrien F_INSERT, /* e */ 70959243Sobrien F_INSERT, /* f */ 71059243Sobrien F_INSERT, /* g */ 71159243Sobrien F_INSERT, /* h */ 71259243Sobrien F_INSERT, /* i */ 71359243Sobrien F_INSERT, /* j */ 71459243Sobrien F_INSERT, /* k */ 71559243Sobrien F_INSERT, /* l */ 71659243Sobrien F_INSERT, /* m */ 71759243Sobrien F_INSERT, /* n */ 71859243Sobrien F_INSERT, /* o */ 71959243Sobrien F_INSERT, /* p */ 72059243Sobrien F_INSERT, /* q */ 72159243Sobrien F_INSERT, /* r */ 72259243Sobrien F_INSERT, /* s */ 72359243Sobrien F_INSERT, /* t */ 72459243Sobrien F_INSERT, /* u */ 72559243Sobrien F_INSERT, /* v */ 72659243Sobrien F_INSERT, /* w */ 72759243Sobrien F_INSERT, /* x */ 72859243Sobrien F_INSERT, /* y */ 72959243Sobrien F_INSERT, /* z */ 73059243Sobrien F_INSERT, /* { */ 73159243Sobrien F_INSERT, /* | */ 73259243Sobrien F_INSERT, /* } */ 73359243Sobrien F_INSERT, /* ~ */ 73459243Sobrien F_DELPREV, /* ^? */ 73559243Sobrien F_UNASSIGNED, /* M-^@ */ 73659243Sobrien F_UNASSIGNED, /* M-^A */ 73759243Sobrien F_UNASSIGNED, /* M-^B */ 73859243Sobrien F_UNASSIGNED, /* M-^C */ 73959243Sobrien F_UNASSIGNED, /* M-^D */ 74059243Sobrien F_UNASSIGNED, /* M-^E */ 74159243Sobrien F_UNASSIGNED, /* M-^F */ 74259243Sobrien F_UNASSIGNED, /* M-^G */ 74359243Sobrien F_UNASSIGNED, /* M-^H */ 74459243Sobrien F_UNASSIGNED, /* M-^I */ 74559243Sobrien F_UNASSIGNED, /* M-^J */ 74659243Sobrien F_UNASSIGNED, /* M-^K */ 74759243Sobrien F_UNASSIGNED, /* M-^L */ 74859243Sobrien F_UNASSIGNED, /* M-^M */ 74959243Sobrien F_UNASSIGNED, /* M-^N */ 75059243Sobrien F_UNASSIGNED, /* M-^O */ 75159243Sobrien F_UNASSIGNED, /* M-^P */ 75259243Sobrien F_UNASSIGNED, /* M-^Q */ 75359243Sobrien F_UNASSIGNED, /* M-^R */ 75459243Sobrien F_UNASSIGNED, /* M-^S */ 75559243Sobrien F_UNASSIGNED, /* M-^T */ 75659243Sobrien F_UNASSIGNED, /* M-^U */ 75759243Sobrien F_UNASSIGNED, /* M-^V */ 75859243Sobrien F_UNASSIGNED, /* M-^W */ 75959243Sobrien F_UNASSIGNED, /* M-^X */ 76059243Sobrien F_UNASSIGNED, /* M-^Y */ 76159243Sobrien F_UNASSIGNED, /* M-^Z */ 76259243Sobrien F_UNASSIGNED, /* M-^[ */ 76359243Sobrien F_UNASSIGNED, /* M-^\ */ 76459243Sobrien F_UNASSIGNED, /* M-^] */ 76559243Sobrien F_UNASSIGNED, /* M-^^ */ 76659243Sobrien F_UNASSIGNED, /* M-^_ */ 76759243Sobrien F_UNASSIGNED, /* M-SPACE */ 76859243Sobrien F_UNASSIGNED, /* M-! */ 76959243Sobrien F_UNASSIGNED, /* M-" */ 77059243Sobrien F_UNASSIGNED, /* M-# */ 77159243Sobrien F_UNASSIGNED, /* M-$ */ 77259243Sobrien F_UNASSIGNED, /* M-% */ 77359243Sobrien F_UNASSIGNED, /* M-& */ 77459243Sobrien F_UNASSIGNED, /* M-' */ 77559243Sobrien F_UNASSIGNED, /* M-( */ 77659243Sobrien F_UNASSIGNED, /* M-) */ 77759243Sobrien F_UNASSIGNED, /* M-* */ 77859243Sobrien F_UNASSIGNED, /* M-+ */ 77959243Sobrien F_UNASSIGNED, /* M-, */ 78059243Sobrien F_UNASSIGNED, /* M-- */ 78159243Sobrien F_UNASSIGNED, /* M-. */ 78259243Sobrien F_UNASSIGNED, /* M-/ */ 78359243Sobrien F_UNASSIGNED, /* M-0 */ 78459243Sobrien F_UNASSIGNED, /* M-1 */ 78559243Sobrien F_UNASSIGNED, /* M-2 */ 78659243Sobrien F_UNASSIGNED, /* M-3 */ 78759243Sobrien F_UNASSIGNED, /* M-4 */ 78859243Sobrien F_UNASSIGNED, /* M-5 */ 78959243Sobrien F_UNASSIGNED, /* M-6 */ 79059243Sobrien F_UNASSIGNED, /* M-7 */ 79159243Sobrien F_UNASSIGNED, /* M-8 */ 79259243Sobrien F_UNASSIGNED, /* M-9 */ 79359243Sobrien F_UNASSIGNED, /* M-: */ 79459243Sobrien F_UNASSIGNED, /* M-; */ 79559243Sobrien F_UNASSIGNED, /* M-< */ 79659243Sobrien F_UNASSIGNED, /* M-= */ 79759243Sobrien F_UNASSIGNED, /* M-> */ 79859243Sobrien F_UNASSIGNED, /* M-? */ 79959243Sobrien F_UNASSIGNED, /* M-@ */ 80059243Sobrien F_UNASSIGNED, /* M-A */ 80159243Sobrien F_UNASSIGNED, /* M-B */ 80259243Sobrien F_UNASSIGNED, /* M-C */ 80359243Sobrien F_UNASSIGNED, /* M-D */ 80459243Sobrien F_UNASSIGNED, /* M-E */ 80559243Sobrien F_UNASSIGNED, /* M-F */ 80659243Sobrien F_UNASSIGNED, /* M-G */ 80759243Sobrien F_UNASSIGNED, /* M-H */ 80859243Sobrien F_UNASSIGNED, /* M-I */ 80959243Sobrien F_UNASSIGNED, /* M-J */ 81059243Sobrien F_UNASSIGNED, /* M-K */ 81159243Sobrien F_UNASSIGNED, /* M-L */ 81259243Sobrien F_UNASSIGNED, /* M-M */ 81359243Sobrien F_UNASSIGNED, /* M-N */ 81459243Sobrien F_UNASSIGNED, /* M-O */ 81559243Sobrien F_UNASSIGNED, /* M-P */ 81659243Sobrien F_UNASSIGNED, /* M-Q */ 81759243Sobrien F_UNASSIGNED, /* M-R */ 81859243Sobrien F_UNASSIGNED, /* M-S */ 81959243Sobrien F_UNASSIGNED, /* M-T */ 82059243Sobrien F_UNASSIGNED, /* M-U */ 82159243Sobrien F_UNASSIGNED, /* M-V */ 82259243Sobrien F_UNASSIGNED, /* M-W */ 82359243Sobrien F_UNASSIGNED, /* M-X */ 82459243Sobrien F_UNASSIGNED, /* M-Y */ 82559243Sobrien F_UNASSIGNED, /* M-Z */ 82659243Sobrien F_UNASSIGNED, /* M-[ */ 82759243Sobrien F_UNASSIGNED, /* M-\ */ 82859243Sobrien F_UNASSIGNED, /* M-] */ 82959243Sobrien F_UNASSIGNED, /* M-^ */ 83059243Sobrien F_UNASSIGNED, /* M-_ */ 83159243Sobrien F_UNASSIGNED, /* M-` */ 83259243Sobrien F_UNASSIGNED, /* M-a */ 83359243Sobrien F_UNASSIGNED, /* M-b */ 83459243Sobrien F_UNASSIGNED, /* M-c */ 83559243Sobrien F_UNASSIGNED, /* M-d */ 83659243Sobrien F_UNASSIGNED, /* M-e */ 83759243Sobrien F_UNASSIGNED, /* M-f */ 83859243Sobrien F_UNASSIGNED, /* M-g */ 83959243Sobrien F_UNASSIGNED, /* M-h */ 84059243Sobrien F_UNASSIGNED, /* M-i */ 84159243Sobrien F_UNASSIGNED, /* M-j */ 84259243Sobrien F_UNASSIGNED, /* M-k */ 84359243Sobrien F_UNASSIGNED, /* M-l */ 84459243Sobrien F_UNASSIGNED, /* M-m */ 84559243Sobrien F_UNASSIGNED, /* M-n */ 84659243Sobrien F_UNASSIGNED, /* M-o */ 84759243Sobrien F_UNASSIGNED, /* M-p */ 84859243Sobrien F_UNASSIGNED, /* M-q */ 84959243Sobrien F_UNASSIGNED, /* M-r */ 85059243Sobrien F_UNASSIGNED, /* M-s */ 85159243Sobrien F_UNASSIGNED, /* M-t */ 85259243Sobrien F_UNASSIGNED, /* M-u */ 85359243Sobrien F_UNASSIGNED, /* M-v */ 85459243Sobrien F_UNASSIGNED, /* M-w */ 85559243Sobrien F_UNASSIGNED, /* M-x */ 85659243Sobrien F_UNASSIGNED, /* M-y */ 85759243Sobrien F_UNASSIGNED, /* M-z */ 85859243Sobrien F_UNASSIGNED, /* M-{ */ 85959243Sobrien F_UNASSIGNED, /* M-| */ 86059243Sobrien F_UNASSIGNED, /* M-} */ 86159243Sobrien F_UNASSIGNED, /* M-~ */ 86259243Sobrien F_UNASSIGNED /* M-^? */ 86359243Sobrien}; 86459243Sobrien 86559243SobrienKEYCMD CcViCmdMap[] = { 86659243Sobrien F_UNASSIGNED, /* ^@ */ 86759243Sobrien F_TOBEG, /* ^A */ 86859243Sobrien F_UNASSIGNED, /* ^B */ 86959243Sobrien F_TTY_INT, /* ^C */ 87059243Sobrien F_LIST_CHOICES, /* ^D */ 87159243Sobrien F_TOEND, /* ^E */ 87259243Sobrien F_UNASSIGNED, /* ^F */ 87359243Sobrien F_LIST_GLOB, /* ^G */ 87459243Sobrien F_CHARBACK, /* ^H */ 87559243Sobrien V_CM_COMPLETE, /* ^I */ 87659243Sobrien F_NEWLINE, /* ^J */ 87759243Sobrien F_KILLEND, /* ^K */ 87859243Sobrien F_CLEARDISP, /* ^L */ 87959243Sobrien F_NEWLINE, /* ^M */ 88059243Sobrien F_DOWN_HIST, /* ^N */ 88159243Sobrien F_TTY_FLUSHO, /* ^O */ 88259243Sobrien F_UP_HIST, /* ^P */ 88359243Sobrien F_TTY_STARTO, /* ^Q */ 88459243Sobrien F_REDISP, /* ^R */ 88559243Sobrien F_TTY_STOPO, /* ^S */ 88659243Sobrien F_UNASSIGNED, /* ^T */ 88759243Sobrien F_KILLBEG, /* ^U */ 88859243Sobrien F_UNASSIGNED, /* ^V */ 88959243Sobrien F_DELWORDPREV, /* ^W */ 89059243Sobrien F_EXPAND, /* ^X */ 89159243Sobrien F_UNASSIGNED, /* ^Y */ 89259243Sobrien F_UNASSIGNED, /* ^Z */ 89359243Sobrien F_METANEXT, /* ^[ */ 89459243Sobrien F_TTY_QUIT, /* ^\ */ 89559243Sobrien F_UNASSIGNED, /* ^] */ 89659243Sobrien F_UNASSIGNED, /* ^^ */ 89759243Sobrien F_UNASSIGNED, /* ^_ */ 89859243Sobrien F_CHARFWD, /* SPACE */ 89959243Sobrien F_EXPAND_HISTORY, /* ! */ 90059243Sobrien F_UNASSIGNED, /* " */ 90159243Sobrien F_UNASSIGNED, /* # */ 90259243Sobrien F_TOEND, /* $ */ 90359243Sobrien F_UNASSIGNED, /* % */ 90459243Sobrien F_UNASSIGNED, /* & */ 90559243Sobrien F_UNASSIGNED, /* ' */ 90659243Sobrien F_UNASSIGNED, /* ( */ 90759243Sobrien F_UNASSIGNED, /* ) */ 90859243Sobrien F_EXPAND_GLOB, /* * */ 90959243Sobrien F_DOWN_HIST, /* + */ 91059243Sobrien V_RCHAR_BACK, /* , */ 91159243Sobrien F_UP_HIST, /* - */ 91259243Sobrien F_UNASSIGNED, /* . */ 91359243Sobrien V_DSH_META, /* / */ 91459243Sobrien V_ZERO, /* 0 */ 91559243Sobrien F_ARGDIGIT, /* 1 */ 91659243Sobrien F_ARGDIGIT, /* 2 */ 91759243Sobrien F_ARGDIGIT, /* 3 */ 91859243Sobrien F_ARGDIGIT, /* 4 */ 91959243Sobrien F_ARGDIGIT, /* 5 */ 92059243Sobrien F_ARGDIGIT, /* 6 */ 92159243Sobrien F_ARGDIGIT, /* 7 */ 92259243Sobrien F_ARGDIGIT, /* 8 */ 92359243Sobrien F_ARGDIGIT, /* 9 */ 92459243Sobrien F_UNASSIGNED, /* : */ 92559243Sobrien V_RCHAR_FWD, /* ; */ 92659243Sobrien F_UNASSIGNED, /* < */ 92759243Sobrien F_UNASSIGNED, /* = */ 92859243Sobrien F_UNASSIGNED, /* > */ 92959243Sobrien V_USH_META, /* ? */ 93059243Sobrien F_UNASSIGNED, /* @ */ 93159243Sobrien V_ADDEND, /* A */ 93259243Sobrien V_WORDBACK, /* B */ 93359243Sobrien V_CHGTOEND, /* C */ 93459243Sobrien F_KILLEND, /* D */ 93559243Sobrien V_ENDWORD, /* E */ 93659243Sobrien V_CHAR_BACK, /* F */ 93759243Sobrien F_UNASSIGNED, /* G */ 93859243Sobrien F_UNASSIGNED, /* H */ 93959243Sobrien V_INSBEG, /* I */ 94059243Sobrien F_DOWN_SEARCH_HIST, /* J */ 94159243Sobrien F_UP_SEARCH_HIST, /* K */ 94259243Sobrien F_UNASSIGNED, /* L */ 94359243Sobrien F_UNASSIGNED, /* M */ 94459243Sobrien V_RSRCH_BACK, /* N */ 94559243Sobrien F_XKEY, /* O */ 94659243Sobrien F_UNASSIGNED, /* P */ 94759243Sobrien F_UNASSIGNED, /* Q */ 94859243Sobrien V_REPLMODE, /* R */ 94959243Sobrien V_SUBSTLINE, /* S */ 95059243Sobrien V_CHARTO_BACK, /* T */ 95159243Sobrien F_UNASSIGNED, /* U */ 95259243Sobrien F_EXPAND_VARS, /* V */ 95359243Sobrien V_WORDFWD, /* W */ 95459243Sobrien F_DELPREV, /* X */ 95559243Sobrien F_UNASSIGNED, /* Y */ 95659243Sobrien F_UNASSIGNED, /* Z */ 95759243Sobrien F_XKEY, /* [ */ 95859243Sobrien F_UNASSIGNED, /* \ */ 95959243Sobrien F_UNASSIGNED, /* ] */ 96059243Sobrien F_TOBEG, /* ^ */ 96159243Sobrien F_UNASSIGNED, /* _ */ 96259243Sobrien F_UNASSIGNED, /* ` */ 96359243Sobrien V_ADD, /* a */ 96459243Sobrien F_WORDBACK, /* b */ 96559243Sobrien V_CHGMETA, /* c */ 96659243Sobrien V_DELMETA, /* d */ 96759243Sobrien V_EWORD, /* e */ 96859243Sobrien V_CHAR_FWD, /* f */ 96959243Sobrien F_UNASSIGNED, /* g */ 97059243Sobrien F_CHARBACK, /* h */ 97159243Sobrien V_INSERT, /* i */ 97259243Sobrien F_DOWN_HIST, /* j */ 97359243Sobrien F_UP_HIST, /* k */ 97459243Sobrien F_CHARFWD, /* l */ 97559243Sobrien F_UNASSIGNED, /* m */ 97659243Sobrien V_RSRCH_FWD, /* n */ 97759243Sobrien F_UNASSIGNED, /* o */ 97859243Sobrien F_UNASSIGNED, /* p */ 97959243Sobrien F_UNASSIGNED, /* q */ 98059243Sobrien V_REPLONE, /* r */ 98159243Sobrien V_SUBSTCHAR, /* s */ 98259243Sobrien V_CHARTO_FWD, /* t */ 98359243Sobrien V_UNDO, /* u */ 98459243Sobrien F_EXPAND_VARS, /* v */ 98559243Sobrien V_WORDBEGNEXT, /* w */ 98659243Sobrien F_DELNEXT_EOF, /* x */ 98759243Sobrien F_UNASSIGNED, /* y */ 98859243Sobrien F_UNASSIGNED, /* z */ 98959243Sobrien F_UNASSIGNED, /* { */ 99059243Sobrien F_UNASSIGNED, /* | */ 99159243Sobrien F_UNASSIGNED, /* } */ 99259243Sobrien V_CHGCASE, /* ~ */ 99359243Sobrien F_DELPREV, /* ^? */ 99459243Sobrien F_UNASSIGNED, /* M-^@ */ 99559243Sobrien F_UNASSIGNED, /* M-^A */ 99659243Sobrien F_UNASSIGNED, /* M-^B */ 99759243Sobrien F_UNASSIGNED, /* M-^C */ 99859243Sobrien F_UNASSIGNED, /* M-^D */ 99959243Sobrien F_UNASSIGNED, /* M-^E */ 100059243Sobrien F_UNASSIGNED, /* M-^F */ 100159243Sobrien F_UNASSIGNED, /* M-^G */ 100259243Sobrien F_UNASSIGNED, /* M-^H */ 100359243Sobrien F_UNASSIGNED, /* M-^I */ 100459243Sobrien F_UNASSIGNED, /* M-^J */ 100559243Sobrien F_UNASSIGNED, /* M-^K */ 100659243Sobrien F_UNASSIGNED, /* M-^L */ 100759243Sobrien F_UNASSIGNED, /* M-^M */ 100859243Sobrien F_UNASSIGNED, /* M-^N */ 100959243Sobrien F_UNASSIGNED, /* M-^O */ 101059243Sobrien F_UNASSIGNED, /* M-^P */ 101159243Sobrien F_UNASSIGNED, /* M-^Q */ 101259243Sobrien F_UNASSIGNED, /* M-^R */ 101359243Sobrien F_UNASSIGNED, /* M-^S */ 101459243Sobrien F_UNASSIGNED, /* M-^T */ 101559243Sobrien F_UNASSIGNED, /* M-^U */ 101659243Sobrien F_UNASSIGNED, /* M-^V */ 101759243Sobrien F_UNASSIGNED, /* M-^W */ 101859243Sobrien F_UNASSIGNED, /* M-^X */ 101959243Sobrien F_UNASSIGNED, /* M-^Y */ 102059243Sobrien F_UNASSIGNED, /* M-^Z */ 102159243Sobrien F_UNASSIGNED, /* M-^[ */ 102259243Sobrien F_UNASSIGNED, /* M-^\ */ 102359243Sobrien F_UNASSIGNED, /* M-^] */ 102459243Sobrien F_UNASSIGNED, /* M-^^ */ 102559243Sobrien F_UNASSIGNED, /* M-^_ */ 102659243Sobrien F_UNASSIGNED, /* M-SPACE */ 102759243Sobrien F_UNASSIGNED, /* M-! */ 102859243Sobrien F_UNASSIGNED, /* M-" */ 102959243Sobrien F_UNASSIGNED, /* M-# */ 103059243Sobrien F_UNASSIGNED, /* M-$ */ 103159243Sobrien F_UNASSIGNED, /* M-% */ 103259243Sobrien F_UNASSIGNED, /* M-& */ 103359243Sobrien F_UNASSIGNED, /* M-' */ 103459243Sobrien F_UNASSIGNED, /* M-( */ 103559243Sobrien F_UNASSIGNED, /* M-) */ 103659243Sobrien F_UNASSIGNED, /* M-* */ 103759243Sobrien F_UNASSIGNED, /* M-+ */ 103859243Sobrien F_UNASSIGNED, /* M-, */ 103959243Sobrien F_UNASSIGNED, /* M-- */ 104059243Sobrien F_UNASSIGNED, /* M-. */ 104159243Sobrien F_UNASSIGNED, /* M-/ */ 104259243Sobrien F_UNASSIGNED, /* M-0 */ 104359243Sobrien F_UNASSIGNED, /* M-1 */ 104459243Sobrien F_UNASSIGNED, /* M-2 */ 104559243Sobrien F_UNASSIGNED, /* M-3 */ 104659243Sobrien F_UNASSIGNED, /* M-4 */ 104759243Sobrien F_UNASSIGNED, /* M-5 */ 104859243Sobrien F_UNASSIGNED, /* M-6 */ 104959243Sobrien F_UNASSIGNED, /* M-7 */ 105059243Sobrien F_UNASSIGNED, /* M-8 */ 105159243Sobrien F_UNASSIGNED, /* M-9 */ 105259243Sobrien F_UNASSIGNED, /* M-: */ 105359243Sobrien F_UNASSIGNED, /* M-; */ 105459243Sobrien F_UNASSIGNED, /* M-< */ 105559243Sobrien F_UNASSIGNED, /* M-= */ 105659243Sobrien F_UNASSIGNED, /* M-> */ 105759243Sobrien F_HELPME, /* M-? */ 105859243Sobrien F_UNASSIGNED, /* M-@ */ 105959243Sobrien F_UNASSIGNED, /* M-A */ 106059243Sobrien F_UNASSIGNED, /* M-B */ 106159243Sobrien F_UNASSIGNED, /* M-C */ 106259243Sobrien F_UNASSIGNED, /* M-D */ 106359243Sobrien F_UNASSIGNED, /* M-E */ 106459243Sobrien F_UNASSIGNED, /* M-F */ 106559243Sobrien F_UNASSIGNED, /* M-G */ 106659243Sobrien F_UNASSIGNED, /* M-H */ 106759243Sobrien F_UNASSIGNED, /* M-I */ 106859243Sobrien F_UNASSIGNED, /* M-J */ 106959243Sobrien F_UNASSIGNED, /* M-K */ 107059243Sobrien F_UNASSIGNED, /* M-L */ 107159243Sobrien F_UNASSIGNED, /* M-M */ 107259243Sobrien F_UNASSIGNED, /* M-N */ 107359243Sobrien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 107459243Sobrien F_UNASSIGNED, /* M-P */ 107559243Sobrien F_UNASSIGNED, /* M-Q */ 107659243Sobrien F_UNASSIGNED, /* M-R */ 107759243Sobrien F_UNASSIGNED, /* M-S */ 107859243Sobrien F_UNASSIGNED, /* M-T */ 107959243Sobrien F_UNASSIGNED, /* M-U */ 108059243Sobrien F_UNASSIGNED, /* M-V */ 108159243Sobrien F_UNASSIGNED, /* M-W */ 108259243Sobrien F_UNASSIGNED, /* M-X */ 108359243Sobrien F_UNASSIGNED, /* M-Y */ 108459243Sobrien F_UNASSIGNED, /* M-Z */ 108559243Sobrien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 108659243Sobrien F_UNASSIGNED, /* M-\ */ 108759243Sobrien F_UNASSIGNED, /* M-] */ 108859243Sobrien F_UNASSIGNED, /* M-^ */ 108959243Sobrien F_UNASSIGNED, /* M-_ */ 109059243Sobrien F_UNASSIGNED, /* M-` */ 109159243Sobrien F_UNASSIGNED, /* M-a */ 109259243Sobrien F_UNASSIGNED, /* M-b */ 109359243Sobrien F_UNASSIGNED, /* M-c */ 109459243Sobrien F_UNASSIGNED, /* M-d */ 109559243Sobrien F_UNASSIGNED, /* M-e */ 109659243Sobrien F_UNASSIGNED, /* M-f */ 109759243Sobrien F_UNASSIGNED, /* M-g */ 109859243Sobrien F_UNASSIGNED, /* M-h */ 109959243Sobrien F_UNASSIGNED, /* M-i */ 110059243Sobrien F_UNASSIGNED, /* M-j */ 110159243Sobrien F_UNASSIGNED, /* M-k */ 110259243Sobrien F_UNASSIGNED, /* M-l */ 110359243Sobrien F_UNASSIGNED, /* M-m */ 110459243Sobrien F_UNASSIGNED, /* M-n */ 110559243Sobrien F_UNASSIGNED, /* M-o */ 110659243Sobrien F_UNASSIGNED, /* M-p */ 110759243Sobrien F_UNASSIGNED, /* M-q */ 110859243Sobrien F_UNASSIGNED, /* M-r */ 110959243Sobrien F_UNASSIGNED, /* M-s */ 111059243Sobrien F_UNASSIGNED, /* M-t */ 111159243Sobrien F_UNASSIGNED, /* M-u */ 111259243Sobrien F_UNASSIGNED, /* M-v */ 111359243Sobrien F_UNASSIGNED, /* M-w */ 111459243Sobrien F_UNASSIGNED, /* M-x */ 111559243Sobrien F_UNASSIGNED, /* M-y */ 111659243Sobrien F_UNASSIGNED, /* M-z */ 111759243Sobrien F_UNASSIGNED, /* M-{ */ 111859243Sobrien F_UNASSIGNED, /* M-| */ 111959243Sobrien F_UNASSIGNED, /* M-} */ 112059243Sobrien F_UNASSIGNED, /* M-~ */ 112159243Sobrien F_UNASSIGNED /* M-^? */ 112259243Sobrien}; 112369408Sache#endif /* WINNT_NATIVE */ 112459243Sobrien 112559243Sobrien 112659243Sobrienvoid 1127167465Smpeditinit(void) 112859243Sobrien{ 112959243Sobrien struct KeyFuncs *f; 113059243Sobrien 113169408Sache#if defined(NLS_CATALOGS) || defined(WINNT_NATIVE) 113259243Sobrien int i; 113359243Sobrien 113459243Sobrien for (i = 0; i < F_NUM_FUNCNAMES; i++) 1135167465Smp xfree((ptr_t)(intptr_t)FuncNames[i].desc); 113659243Sobrien#endif 113759243Sobrien 113859243Sobrien f = FuncNames; 113959243Sobrien f->name = "backward-char"; 114059243Sobrien f->func = F_CHARBACK; 114159243Sobrien f->desc = CSAVS(3, 1, "Move back a character"); 114259243Sobrien 114359243Sobrien f++; 114459243Sobrien f->name = "backward-delete-char"; 114559243Sobrien f->func = F_DELPREV; 114659243Sobrien f->desc = CSAVS(3, 2, "Delete the character behind cursor"); 114759243Sobrien 114859243Sobrien f++; 114959243Sobrien f->name = "backward-delete-word"; 115059243Sobrien f->func = F_DELWORDPREV; 115159243Sobrien f->desc = CSAVS(3, 3, 115259243Sobrien "Cut from beginning of current word to cursor - saved in cut buffer"); 115359243Sobrien 115459243Sobrien f++; 115559243Sobrien f->name = "backward-kill-line"; 115659243Sobrien f->func = F_KILLBEG; 115759243Sobrien f->desc = CSAVS(3, 4, 115859243Sobrien "Cut from beginning of line to cursor - save in cut buffer"); 115959243Sobrien 116059243Sobrien f++; 116159243Sobrien f->name = "backward-word"; 116259243Sobrien f->func = F_WORDBACK; 116359243Sobrien f->desc = CSAVS(3, 5, "Move to beginning of current word"); 116459243Sobrien 116559243Sobrien f++; 116659243Sobrien f->name = "beginning-of-line"; 116759243Sobrien f->func = F_TOBEG; 116859243Sobrien f->desc = CSAVS(3, 6, "Move to beginning of line"); 116959243Sobrien 117059243Sobrien f++; 117159243Sobrien f->name = "capitalize-word"; 117259243Sobrien f->func = F_CASECAPITAL; 117359243Sobrien f->desc = CSAVS(3, 7, 117459243Sobrien "Capitalize the characters from cursor to end of current word"); 117559243Sobrien 117659243Sobrien f++; 117759243Sobrien f->name = "change-case"; 117859243Sobrien f->func = V_CHGCASE; 117959243Sobrien f->desc = CSAVS(3, 8, 118059243Sobrien "Vi change case of character under cursor and advance one character"); 118159243Sobrien 118259243Sobrien f++; 118359243Sobrien f->name = "change-till-end-of-line"; 118459243Sobrien f->func = V_CHGTOEND; /* backward compat. */ 118559243Sobrien f->desc = CSAVS(3, 9, "Vi change to end of line"); 118659243Sobrien 118759243Sobrien f++; 118859243Sobrien f->name = "clear-screen"; 118959243Sobrien f->func = F_CLEARDISP; 119059243Sobrien f->desc = CSAVS(3, 10, "Clear screen leaving current line on top"); 119159243Sobrien 119259243Sobrien f++; 119359243Sobrien f->name = "complete-word"; 119459243Sobrien f->func = F_COMPLETE; 119559243Sobrien f->desc = CSAVS(3, 11, "Complete current word"); 119659243Sobrien 119759243Sobrien f++; 119859243Sobrien f->name = "complete-word-fwd"; 119959243Sobrien f->func = F_COMPLETE_FWD; 120059243Sobrien f->desc = CSAVS(3, 12, "Tab forward through files"); 120159243Sobrien 120259243Sobrien f++; 120359243Sobrien f->name = "complete-word-back"; 120459243Sobrien f->func = F_COMPLETE_BACK; 120559243Sobrien f->desc = CSAVS(3, 13, "Tab backward through files"); 120659243Sobrien 120759243Sobrien f++; 120859243Sobrien f->name = "complete-word-raw"; 120959243Sobrien f->func = F_COMPLETE_ALL; 121059243Sobrien f->desc = CSAVS(3, 14, 121159243Sobrien "Complete current word ignoring programmable completions"); 121259243Sobrien 121359243Sobrien f++; 121459243Sobrien f->name = "copy-prev-word"; 121559243Sobrien f->func = F_COPYPREV; 121659243Sobrien f->desc = CSAVS(3, 15, "Copy current word to cursor"); 121759243Sobrien 121859243Sobrien f++; 121959243Sobrien f->name = "copy-region-as-kill"; 122059243Sobrien f->func = F_COPYREGION; 122159243Sobrien f->desc = CSAVS(3, 16, "Copy area between mark and cursor to cut buffer"); 122259243Sobrien 122359243Sobrien f++; 122459243Sobrien f->name = "dabbrev-expand"; 122559243Sobrien f->func = F_DABBREV_EXPAND; 122659243Sobrien f->desc = CSAVS(3, 17, 122759243Sobrien "Expand to preceding word for which this is a prefix"); 122859243Sobrien 122959243Sobrien f++; 123059243Sobrien f->name = "delete-char"; 123159243Sobrien f->func = F_DELNEXT; 123259243Sobrien f->desc = CSAVS(3, 18, "Delete character under cursor"); 123359243Sobrien 123459243Sobrien f++; 123559243Sobrien f->name = "delete-char-or-eof"; 123659243Sobrien f->func = F_DELNEXT_EOF; 123759243Sobrien f->desc = CSAVS(3, 19, 123859243Sobrien "Delete character under cursor or signal end of file on an empty line"); 123959243Sobrien 124059243Sobrien f++; 124159243Sobrien f->name = "delete-char-or-list"; 124259243Sobrien f->func = F_DELNEXT_LIST; 124359243Sobrien f->desc = CSAVS(3, 20, 124459243Sobrien "Delete character under cursor or list completions if at end of line"); 124559243Sobrien 124659243Sobrien f++; 124759243Sobrien f->name = "delete-char-or-list-or-eof"; 124859243Sobrien f->func = F_DELNEXT_LIST_EOF; 124959243Sobrien f->desc = CSAVS(3, 21, 125059243Sobrien "Delete character under cursor, list completions or signal end of file"); 125159243Sobrien 125259243Sobrien f++; 125359243Sobrien f->name = "delete-word"; 125459243Sobrien f->func = F_DELWORDNEXT; 125559243Sobrien f->desc = CSAVS(3, 22, 125659243Sobrien "Cut from cursor to end of current word - save in cut buffer"); 125759243Sobrien 125859243Sobrien f++; 125959243Sobrien f->name = "digit"; 126059243Sobrien f->func = F_DIGIT; 126159243Sobrien f->desc = CSAVS(3, 23, "Adds to argument if started or enters digit"); 126259243Sobrien 126359243Sobrien f++; 126459243Sobrien f->name = "digit-argument"; 126559243Sobrien f->func = F_ARGDIGIT; 126659243Sobrien f->desc = CSAVS(3, 24, "Digit that starts argument"); 126759243Sobrien 126859243Sobrien f++; 126959243Sobrien f->name = "down-history"; 127059243Sobrien f->func = F_DOWN_HIST; 127159243Sobrien f->desc = CSAVS(3, 25, "Move to next history line"); 127259243Sobrien 127359243Sobrien f++; 127459243Sobrien f->name = "downcase-word"; 127559243Sobrien f->func = F_CASELOWER; 127659243Sobrien f->desc = CSAVS(3, 26, 127759243Sobrien "Lowercase the characters from cursor to end of current word"); 127859243Sobrien 127959243Sobrien f++; 128059243Sobrien f->name = "end-of-file"; 128159243Sobrien f->func = F_SEND_EOF; 128259243Sobrien f->desc = CSAVS(3, 27, "Indicate end of file"); 128359243Sobrien 128459243Sobrien f++; 128559243Sobrien f->name = "end-of-line"; 128659243Sobrien f->func = F_TOEND; 128759243Sobrien f->desc = CSAVS(3, 28, "Move cursor to end of line"); 128859243Sobrien 128959243Sobrien f++; 129059243Sobrien f->name = "exchange-point-and-mark"; 129159243Sobrien f->func = F_EXCHANGE_MARK; 129259243Sobrien f->desc = CSAVS(3, 29, "Exchange the cursor and mark"); 129359243Sobrien 129459243Sobrien f++; 129559243Sobrien f->name = "expand-glob"; 129659243Sobrien f->func = F_EXPAND_GLOB; 129759243Sobrien f->desc = CSAVS(3, 30, "Expand file name wildcards"); 129859243Sobrien 129959243Sobrien f++; 130059243Sobrien f->name = "expand-history"; 130159243Sobrien f->func = F_EXPAND_HISTORY; 130259243Sobrien f->desc = CSAVS(3, 31, "Expand history escapes"); 130359243Sobrien 130459243Sobrien f++; 130559243Sobrien f->name = "expand-line"; 130659243Sobrien f->func = F_EXPAND; 130759243Sobrien f->desc = CSAVS(3, 32, "Expand the history escapes in a line"); 130859243Sobrien 130959243Sobrien f++; 131059243Sobrien f->name = "expand-variables"; 131159243Sobrien f->func = F_EXPAND_VARS; 131259243Sobrien f->desc = CSAVS(3, 33, "Expand variables"); 131359243Sobrien 131459243Sobrien f++; 131559243Sobrien f->name = "forward-char"; 131659243Sobrien f->func = F_CHARFWD; 131759243Sobrien f->desc = CSAVS(3, 34, "Move forward one character"); 131859243Sobrien 131959243Sobrien f++; 132059243Sobrien f->name = "forward-word"; 132159243Sobrien f->func = F_WORDFWD; 132259243Sobrien f->desc = CSAVS(3, 35, "Move forward to end of current word"); 132359243Sobrien 132459243Sobrien f++; 132559243Sobrien f->name = "gosmacs-transpose-chars"; 132659243Sobrien f->func = F_GCHARSWITCH; 132759243Sobrien f->desc = CSAVS(3, 36, "Exchange the two characters before the cursor"); 132859243Sobrien 132959243Sobrien f++; 133059243Sobrien f->name = "history-search-backward"; 133159243Sobrien f->func = F_UP_SEARCH_HIST; 133259243Sobrien f->desc = CSAVS(3, 37, 133359243Sobrien "Search in history backward for line beginning as current"); 133459243Sobrien 133559243Sobrien f++; 133659243Sobrien f->name = "history-search-forward"; 133759243Sobrien f->func = F_DOWN_SEARCH_HIST; 133859243Sobrien f->desc = CSAVS(3, 38, 133959243Sobrien "Search in history forward for line beginning as current"); 134059243Sobrien 134159243Sobrien f++; 134259243Sobrien f->name = "insert-last-word"; 134359243Sobrien f->func = F_LAST_ITEM; 134459243Sobrien f->desc = CSAVS(3, 39, "Insert last item of previous command"); 134559243Sobrien 134659243Sobrien f++; 134759243Sobrien f->name = "i-search-fwd"; 134859243Sobrien f->func = F_INC_FWD; 134959243Sobrien f->desc = CSAVS(3, 40, "Incremental search forward"); 135059243Sobrien 135159243Sobrien f++; 135259243Sobrien f->name = "i-search-back"; 135359243Sobrien f->func = F_INC_BACK; 135459243Sobrien f->desc = CSAVS(3, 41, "Incremental search backward"); 135559243Sobrien 135659243Sobrien f++; 135759243Sobrien f->name = "keyboard-quit"; 135859243Sobrien f->func = F_STARTOVER; 135959243Sobrien f->desc = CSAVS(3, 42, "Clear line"); 136059243Sobrien 136159243Sobrien f++; 136259243Sobrien f->name = "kill-line"; 136359243Sobrien f->func = F_KILLEND; 136459243Sobrien f->desc = CSAVS(3, 43, "Cut to end of line and save in cut buffer"); 136559243Sobrien 136659243Sobrien f++; 136759243Sobrien f->name = "kill-region"; 136859243Sobrien f->func = F_KILLREGION; 136959243Sobrien f->desc = CSAVS(3, 44, 137059243Sobrien "Cut area between mark and cursor and save in cut buffer"); 137159243Sobrien 137259243Sobrien f++; 137359243Sobrien f->name = "kill-whole-line"; 137459243Sobrien f->func = F_KILLALL; 137559243Sobrien f->desc = CSAVS(3, 45, "Cut the entire line and save in cut buffer"); 137659243Sobrien 137759243Sobrien f++; 137859243Sobrien f->name = "list-choices"; 137959243Sobrien f->func = F_LIST_CHOICES; 138059243Sobrien f->desc = CSAVS(3, 46, "List choices for completion"); 138159243Sobrien 138259243Sobrien f++; 138359243Sobrien f->name = "list-choices-raw"; 138459243Sobrien f->func = F_LIST_ALL; 138559243Sobrien f->desc = CSAVS(3, 47, 138659243Sobrien "List choices for completion overriding programmable completion"); 138759243Sobrien 138859243Sobrien f++; 138959243Sobrien f->name = "list-glob"; 139059243Sobrien f->func = F_LIST_GLOB; 139159243Sobrien f->desc = CSAVS(3, 48, "List file name wildcard matches"); 139259243Sobrien 139359243Sobrien f++; 139459243Sobrien f->name = "list-or-eof"; 139559243Sobrien f->func = F_LIST_EOF; 139659243Sobrien f->desc = CSAVS(3, 49, 139759243Sobrien "List choices for completion or indicate end of file if empty line"); 139859243Sobrien 139959243Sobrien f++; 140059243Sobrien f->name = "load-average"; 140159243Sobrien f->func = F_LOAD_AVERAGE; 140259243Sobrien f->desc = CSAVS(3, 50, "Display load average and current process status"); 140359243Sobrien 140459243Sobrien f++; 140559243Sobrien f->name = "magic-space"; 140659243Sobrien f->func = F_MAGIC_SPACE; 140759243Sobrien f->desc = CSAVS(3, 51, "Expand history escapes and insert a space"); 140859243Sobrien 140959243Sobrien f++; 141059243Sobrien f->name = "newline"; 141159243Sobrien f->func = F_NEWLINE; 141259243Sobrien f->desc = CSAVS(3, 52, "Execute command"); 141359243Sobrien 141459243Sobrien f++; 1415167465Smp f->name = "newline-and-hold"; 1416167465Smp f->func = F_NEWLINE_HOLD; 1417167465Smp f->desc = CSAVS(3, 122, "Execute command and keep current line"); 1418167465Smp 1419167465Smp f++; 1420167465Smp f->name = "newline-and-down-history"; 1421167465Smp f->func = F_NEWLINE_DOWN_HIST; 1422167465Smp f->desc = CSAVS(3, 123, "Execute command and move to next history line"); 1423167465Smp 1424167465Smp f++; 142559243Sobrien f->name = "normalize-path"; 142659243Sobrien f->func = F_PATH_NORM; 142759243Sobrien f->desc = CSAVS(3, 53, 142859243Sobrien "Expand pathnames, eliminating leading .'s and ..'s"); 142959243Sobrien 143059243Sobrien f++; 143159243Sobrien f->name = "normalize-command"; 143259243Sobrien f->func = F_COMMAND_NORM; 143359243Sobrien f->desc = CSAVS(3, 54, 143459243Sobrien "Expand commands to the resulting pathname or alias"); 143559243Sobrien 143659243Sobrien f++; 143759243Sobrien f->name = "overwrite-mode"; 143859243Sobrien f->func = F_INSOVR; 143959243Sobrien f->desc = CSAVS(3, 55, 144059243Sobrien "Switch from insert to overwrite mode or vice versa"); 144159243Sobrien 144259243Sobrien f++; 144359243Sobrien f->name = "prefix-meta"; 144459243Sobrien f->func = F_METANEXT; 144559243Sobrien f->desc = CSAVS(3, 56, "Add 8th bit to next character typed"); 144659243Sobrien 144759243Sobrien f++; 144859243Sobrien f->name = "quoted-insert"; 144959243Sobrien f->func = F_QUOTE; 145059243Sobrien f->desc = CSAVS(3, 57, "Add the next character typed to the line verbatim"); 145159243Sobrien 145259243Sobrien f++; 145359243Sobrien f->name = "redisplay"; 145459243Sobrien f->func = F_REDISP; 145559243Sobrien f->desc = CSAVS(3, 58, "Redisplay everything"); 145659243Sobrien 145759243Sobrien f++; 145859243Sobrien f->name = "run-fg-editor"; 145959243Sobrien f->func = F_RUN_FG_EDITOR; 146059243Sobrien f->desc = CSAVS(3, 59, "Restart stopped editor"); 146159243Sobrien 146259243Sobrien f++; 146359243Sobrien f->name = "run-help"; 146459243Sobrien f->func = F_HELPME; 146559243Sobrien f->desc = CSAVS(3, 60, "Look for help on current command"); 146659243Sobrien 146759243Sobrien f++; 146859243Sobrien f->name = "self-insert-command"; 146959243Sobrien f->func = F_INSERT; 147059243Sobrien f->desc = CSAVS(3, 61, "This character is added to the line"); 147159243Sobrien 147259243Sobrien f++; 147359243Sobrien f->name = "sequence-lead-in"; 147459243Sobrien f->func = F_XKEY; 147559243Sobrien f->desc = CSAVS(3, 62, 147659243Sobrien "This character is the first in a character sequence"); 147759243Sobrien 147859243Sobrien f++; 147959243Sobrien f->name = "set-mark-command"; 148059243Sobrien f->func = F_SET_MARK; 148159243Sobrien f->desc = CSAVS(3, 63, "Set the mark at cursor"); 148259243Sobrien 148359243Sobrien f++; 148459243Sobrien f->name = "spell-word"; 148559243Sobrien f->func = F_CORRECT; 148659243Sobrien f->desc = CSAVS(3, 64, "Correct the spelling of current word"); 148759243Sobrien 148859243Sobrien f++; 148959243Sobrien f->name = "spell-line"; 149059243Sobrien f->func = F_CORRECT_L; 149159243Sobrien f->desc = CSAVS(3, 65, "Correct the spelling of entire line"); 149259243Sobrien 149359243Sobrien f++; 149459243Sobrien f->name = "stuff-char"; 149559243Sobrien f->func = F_STUFF_CHAR; 149659243Sobrien f->desc = CSAVS(3, 66, "Send character to tty in cooked mode"); 149759243Sobrien 149859243Sobrien f++; 149959243Sobrien f->name = "toggle-literal-history"; 150059243Sobrien f->func = F_TOGGLE_HIST; 150159243Sobrien f->desc = CSAVS(3, 67, 150259243Sobrien "Toggle between literal and lexical current history line"); 150359243Sobrien 150459243Sobrien f++; 150559243Sobrien f->name = "transpose-chars"; 150659243Sobrien f->func = F_CHARSWITCH; 150759243Sobrien f->desc = CSAVS(3, 68, 150859243Sobrien "Exchange the character to the left of the cursor with the one under"); 150959243Sobrien 151059243Sobrien f++; 151159243Sobrien f->name = "transpose-gosling"; 151259243Sobrien f->func = F_GCHARSWITCH; 151359243Sobrien f->desc = CSAVS(3, 69, "Exchange the two characters before the cursor"); 151459243Sobrien 151559243Sobrien f++; 151659243Sobrien f->name = "tty-dsusp"; 151759243Sobrien f->func = F_TTY_DSUSP; 151859243Sobrien f->desc = CSAVS(3, 70, "Tty delayed suspend character"); 151959243Sobrien 152059243Sobrien f++; 152159243Sobrien f->name = "tty-flush-output"; 152259243Sobrien f->func = F_TTY_FLUSHO; 152359243Sobrien f->desc = CSAVS(3, 71, "Tty flush output character"); 152459243Sobrien 152559243Sobrien f++; 152659243Sobrien f->name = "tty-sigintr"; 152759243Sobrien f->func = F_TTY_INT; 152859243Sobrien f->desc = CSAVS(3, 72, "Tty interrupt character"); 152959243Sobrien 153059243Sobrien f++; 153159243Sobrien f->name = "tty-sigquit"; 153259243Sobrien f->func = F_TTY_QUIT; 153359243Sobrien f->desc = CSAVS(3, 73, "Tty quit character"); 153459243Sobrien 153559243Sobrien f++; 153659243Sobrien f->name = "tty-sigtsusp"; 153759243Sobrien f->func = F_TTY_TSUSP; 153859243Sobrien f->desc = CSAVS(3, 74, "Tty suspend character"); 153959243Sobrien 154059243Sobrien f++; 154159243Sobrien f->name = "tty-start-output"; 154259243Sobrien f->func = F_TTY_STARTO; 154359243Sobrien f->desc = CSAVS(3, 75, "Tty allow output character"); 154459243Sobrien 154559243Sobrien f++; 154659243Sobrien f->name = "tty-stop-output"; 154759243Sobrien f->func = F_TTY_STOPO; 154859243Sobrien f->desc = CSAVS(3, 76, "Tty disallow output character"); 154959243Sobrien 155059243Sobrien f++; 155159243Sobrien f->name = "undefined-key"; 155259243Sobrien f->func = F_UNASSIGNED; 155359243Sobrien f->desc = CSAVS(3, 77, "Indicates unbound character"); 155459243Sobrien 155559243Sobrien f++; 155659243Sobrien f->name = "universal-argument"; 155759243Sobrien f->func = F_ARGFOUR; 155859243Sobrien f->desc = CSAVS(3, 78, "Emacs universal argument (argument times 4)"); 155959243Sobrien 156059243Sobrien f++; 156159243Sobrien f->name = "up-history"; 156259243Sobrien f->func = F_UP_HIST; 156359243Sobrien f->desc = CSAVS(3, 79, "Move to previous history line"); 156459243Sobrien 156559243Sobrien f++; 156659243Sobrien f->name = "upcase-word"; 156759243Sobrien f->func = F_CASEUPPER; 156859243Sobrien f->desc = CSAVS(3, 80, 156959243Sobrien "Uppercase the characters from cursor to end of current word"); 157059243Sobrien 157159243Sobrien f++; 157259243Sobrien f->name = "vi-beginning-of-next-word"; 157359243Sobrien f->func = V_WORDBEGNEXT; 157459243Sobrien f->desc = CSAVS(3, 81, "Vi goto the beginning of next word"); 157559243Sobrien 157659243Sobrien f++; 157759243Sobrien f->name = "vi-add"; 157859243Sobrien f->func = V_ADD; 157959243Sobrien f->desc = CSAVS(3, 82, "Vi enter insert mode after the cursor"); 158059243Sobrien 158159243Sobrien f++; 158259243Sobrien f->name = "vi-add-at-eol"; 158359243Sobrien f->func = V_ADDEND; 158459243Sobrien f->desc = CSAVS(3, 83, "Vi enter insert mode at end of line"); 158559243Sobrien 158659243Sobrien f++; 158759243Sobrien f->name = "vi-chg-case"; 158859243Sobrien f->func = V_CHGCASE; 158959243Sobrien f->desc = CSAVS(3, 84, 159059243Sobrien "Vi change case of character under cursor and advance one character"); 159159243Sobrien 159259243Sobrien f++; 159359243Sobrien f->name = "vi-chg-meta"; 159459243Sobrien f->func = V_CHGMETA; 159559243Sobrien f->desc = CSAVS(3, 85, "Vi change prefix command"); 159659243Sobrien 159759243Sobrien f++; 159859243Sobrien f->name = "vi-chg-to-eol"; 159959243Sobrien f->func = V_CHGTOEND; 160059243Sobrien f->desc = CSAVS(3, 86, "Vi change to end of line"); 160159243Sobrien 160259243Sobrien f++; 160359243Sobrien f->name = "vi-cmd-mode"; 160459243Sobrien f->func = V_CMD_MODE; 160559243Sobrien f->desc = CSAVS(3, 87, 160659243Sobrien "Enter vi command mode (use alternative key bindings)"); 160759243Sobrien 160859243Sobrien f++; 160959243Sobrien f->name = "vi-cmd-mode-complete"; 161059243Sobrien f->func = V_CM_COMPLETE; 161159243Sobrien f->desc = CSAVS(3, 88, "Vi command mode complete current word"); 161259243Sobrien 161359243Sobrien f++; 161459243Sobrien f->name = "vi-delprev"; 161559243Sobrien f->func = V_DELPREV; 161659243Sobrien f->desc = CSAVS(3, 89, "Vi move to previous character (backspace)"); 161759243Sobrien 161859243Sobrien f++; 161959243Sobrien f->name = "vi-delmeta"; 162059243Sobrien f->func = V_DELMETA; 162159243Sobrien f->desc = CSAVS(3, 90, "Vi delete prefix command"); 162259243Sobrien 162359243Sobrien f++; 162459243Sobrien f->name = "vi-endword"; 162559243Sobrien f->func = V_ENDWORD; 162659243Sobrien f->desc = CSAVS(3, 91, 162759243Sobrien "Vi move to the end of the current space delimited word"); 162859243Sobrien 162959243Sobrien f++; 163059243Sobrien f->name = "vi-eword"; 163159243Sobrien f->func = V_EWORD; 163259243Sobrien f->desc = CSAVS(3, 92, "Vi move to the end of the current word"); 163359243Sobrien 163459243Sobrien f++; 163559243Sobrien f->name = "vi-char-back"; 163659243Sobrien f->func = V_CHAR_BACK; 163759243Sobrien f->desc = CSAVS(3, 93, "Vi move to the character specified backward"); 163859243Sobrien 163959243Sobrien f++; 164059243Sobrien f->name = "vi-char-fwd"; 164159243Sobrien f->func = V_CHAR_FWD; 164259243Sobrien f->desc = CSAVS(3, 94, "Vi move to the character specified forward"); 164359243Sobrien 164459243Sobrien f++; 164559243Sobrien f->name = "vi-charto-back"; 164659243Sobrien f->func = V_CHARTO_BACK; 164759243Sobrien f->desc = CSAVS(3, 95, "Vi move up to the character specified backward"); 164859243Sobrien 164959243Sobrien f++; 165059243Sobrien f->name = "vi-charto-fwd"; 165159243Sobrien f->func = V_CHARTO_FWD; 165259243Sobrien f->desc = CSAVS(3, 96, "Vi move up to the character specified forward"); 165359243Sobrien 165459243Sobrien f++; 165559243Sobrien f->name = "vi-insert"; 165659243Sobrien f->func = V_INSERT; 165759243Sobrien f->desc = CSAVS(3, 97, "Enter vi insert mode"); 165859243Sobrien 165959243Sobrien f++; 166059243Sobrien f->name = "vi-insert-at-bol"; 166159243Sobrien f->func = V_INSBEG; 166259243Sobrien f->desc = CSAVS(3, 98, "Enter vi insert mode at beginning of line"); 166359243Sobrien 166459243Sobrien f++; 166559243Sobrien f->name = "vi-repeat-char-fwd"; 166659243Sobrien f->func = V_RCHAR_FWD; 166759243Sobrien f->desc = CSAVS(3, 99, 166859243Sobrien "Vi repeat current character search in the same search direction"); 166959243Sobrien 167059243Sobrien f++; 167159243Sobrien f->name = "vi-repeat-char-back"; 167259243Sobrien f->func = V_RCHAR_BACK; 167359243Sobrien f->desc = CSAVS(3, 100, 167459243Sobrien "Vi repeat current character search in the opposite search direction"); 167559243Sobrien 167659243Sobrien f++; 167759243Sobrien f->name = "vi-repeat-search-fwd"; 167859243Sobrien f->func = V_RSRCH_FWD; 167959243Sobrien f->desc = CSAVS(3, 101, 168059243Sobrien "Vi repeat current search in the same search direction"); 168159243Sobrien 168259243Sobrien f++; 168359243Sobrien f->name = "vi-repeat-search-back"; 168459243Sobrien f->func = V_RSRCH_BACK; 168559243Sobrien f->desc = CSAVS(3, 102, 168659243Sobrien "Vi repeat current search in the opposite search direction"); 168759243Sobrien 168859243Sobrien f++; 168959243Sobrien f->name = "vi-replace-char"; 169059243Sobrien f->func = V_REPLONE; 169159243Sobrien f->desc = CSAVS(3, 103, 169259243Sobrien "Vi replace character under the cursor with the next character typed"); 169359243Sobrien 169459243Sobrien f++; 169559243Sobrien f->name = "vi-replace-mode"; 169659243Sobrien f->func = V_REPLMODE; 169759243Sobrien f->desc = CSAVS(3, 104, "Vi replace mode"); 169859243Sobrien 169959243Sobrien f++; 170059243Sobrien f->name = "vi-search-back"; 170159243Sobrien f->func = V_USH_META; 170259243Sobrien f->desc = CSAVS(3, 105, "Vi search history backward"); 170359243Sobrien 170459243Sobrien f++; 170559243Sobrien f->name = "vi-search-fwd"; 170659243Sobrien f->func = V_DSH_META; 170759243Sobrien f->desc = CSAVS(3, 106, "Vi search history forward"); 170859243Sobrien 170959243Sobrien f++; 171059243Sobrien f->name = "vi-substitute-char"; 171159243Sobrien f->func = V_SUBSTCHAR; 171259243Sobrien f->desc = CSAVS(3, 107, 171359243Sobrien "Vi replace character under the cursor and enter insert mode"); 171459243Sobrien 171559243Sobrien f++; 171659243Sobrien f->name = "vi-substitute-line"; 171759243Sobrien f->func = V_SUBSTLINE; 171859243Sobrien f->desc = CSAVS(3, 108, "Vi replace entire line"); 171959243Sobrien 172059243Sobrien f++; 172159243Sobrien f->name = "vi-word-back"; 172259243Sobrien f->func = V_WORDBACK; 172359243Sobrien f->desc = CSAVS(3, 109, "Vi move to the previous word"); 172459243Sobrien 172559243Sobrien f++; 172659243Sobrien f->name = "vi-word-fwd"; 172759243Sobrien f->func = V_WORDFWD; 172859243Sobrien f->desc = CSAVS(3, 110, "Vi move to the next word"); 172959243Sobrien 173059243Sobrien f++; 173159243Sobrien f->name = "vi-undo"; 173259243Sobrien f->func = V_UNDO; 173359243Sobrien f->desc = CSAVS(3, 111, "Vi undo last change"); 173459243Sobrien 173559243Sobrien f++; 173659243Sobrien f->name = "vi-zero"; 173759243Sobrien f->func = V_ZERO; 173859243Sobrien f->desc = CSAVS(3, 112, "Vi goto the beginning of line"); 173959243Sobrien 174059243Sobrien f++; 174159243Sobrien f->name = "which-command"; 174259243Sobrien f->func = F_WHICH; 174359243Sobrien f->desc = CSAVS(3, 113, "Perform which of current command"); 174459243Sobrien 174559243Sobrien f++; 174659243Sobrien f->name = "yank"; 174759243Sobrien f->func = F_YANK_KILL; 174859243Sobrien f->desc = CSAVS(3, 114, "Paste cut buffer at cursor position"); 174959243Sobrien 175059243Sobrien f++; 175183098Smp f->name = "yank-pop"; 175283098Smp f->func = F_YANK_POP; 175383098Smp f->desc = CSAVS(3, 115, 175483098Smp "Replace just-yanked text with yank from earlier kill"); 175583098Smp 175683098Smp f++; 175759243Sobrien f->name = "e_copy_to_clipboard"; 175859243Sobrien f->func = F_COPY_CLIP; 175983098Smp f->desc = CSAVS(3, 116, 176083098Smp "(WIN32 only) Copy cut buffer to system clipboard"); 176183098Smp 176259243Sobrien f++; 176359243Sobrien f->name = "e_paste_from_clipboard"; 176459243Sobrien f->func = F_PASTE_CLIP; 176583098Smp f->desc = CSAVS(3, 117, 176683098Smp "(WIN32 only) Paste clipboard buffer at cursor position"); 176783098Smp 176859243Sobrien f++; 176959243Sobrien f->name = "e_dosify_next"; 177059243Sobrien f->func = F_DOSIFY_NEXT; 177183098Smp f->desc = CSAVS(3, 118, 177283098Smp "(WIN32 only) Convert each '/' in next word to '\\\\'"); 177383098Smp 177459243Sobrien f++; 177559243Sobrien f->name = "e_dosify_prev"; 177659243Sobrien f->func = F_DOSIFY_PREV; 177783098Smp f->desc = CSAVS(3, 119, 177883098Smp "(WIN32 only) Convert each '/' in previous word to '\\\\'"); 177983098Smp 178069408Sache f++; 178169408Sache f->name = "e_page_up"; 178269408Sache f->func = F_PAGE_UP; 178383098Smp f->desc = CSAVS(3, 120, "(WIN32 only) Page visible console window up"); 178483098Smp 178569408Sache f++; 178669408Sache f->name = "e_page_down"; 178769408Sache f->func = F_PAGE_DOWN; 178883098Smp f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down"); 178959243Sobrien 179059243Sobrien f++; 179159243Sobrien f->name = NULL; 179259243Sobrien f->func = 0; 179359243Sobrien f->desc = NULL; 179459243Sobrien 179559243Sobrien f++; 179659243Sobrien if (f - FuncNames != F_NUM_FUNCNAMES) 179759243Sobrien abort(); 179859243Sobrien} 179959243Sobrien 180059243Sobrien#ifdef DEBUG_EDIT 180159243Sobrienvoid 1802167465SmpCheckMaps(void) 180359243Sobrien{ /* check the size of the key maps */ 180459243Sobrien int c1 = (NT_NUM_KEYS * sizeof(KEYCMD)); 180559243Sobrien 180659243Sobrien if ((sizeof(CcKeyMap)) != c1) 180759243Sobrien xprintf("CcKeyMap should be %d entries, but is %d.\r\n", 180859243Sobrien NT_NUM_KEYS, sizeof(CcKeyMap) / sizeof(KEYCMD))); 180959243Sobrien 181059243Sobrien if ((sizeof(CcAltMap)) != c1) 181159243Sobrien xprintf("CcAltMap should be %d entries, but is %d.\r\n", 181259243Sobrien NT_NUM_KEYS, (sizeof(CcAltMap) / sizeof(KEYCMD))); 181359243Sobrien 181459243Sobrien if ((sizeof(CcEmacsMap)) != c1) 181559243Sobrien xprintf("CcEmacsMap should be %d entries, but is %d.\r\n", 181659243Sobrien NT_NUM_KEYS, (sizeof(CcEmacsMap) / sizeof(KEYCMD))); 181759243Sobrien 181859243Sobrien if ((sizeof(CcViMap)) != c1) 181959243Sobrien xprintf("CcViMap should be %d entries, but is %d.\r\n", 182059243Sobrien NT_NUM_KEYS, (sizeof(CcViMap) / sizeof(KEYCMD))); 182159243Sobrien 182259243Sobrien if ((sizeof(CcViCmdMap)) != c1) 182359243Sobrien xprintf("CcViCmdMap should be %d entries, but is %d.\r\n", 182459243Sobrien NT_NUM_KEYS, (sizeof(CcViCmdMap) / sizeof(KEYCMD))); 182559243Sobrien} 182659243Sobrien 182759243Sobrien#endif 182859243Sobrien 1829145479Smpint MapsAreInited = 0; 1830145479Smpint NLSMapsAreInited = 0; 1831145479Smpint NoNLSRebind; 183259243Sobrien 183359243Sobrienvoid 1834167465Smped_InitNLSMaps(void) 183559243Sobrien{ 1836145479Smp int i; 183759243Sobrien 183859243Sobrien if (AsciiOnly) 183959243Sobrien return; 184059243Sobrien if (NoNLSRebind) 184159243Sobrien return; 184259243Sobrien for (i = 0200; i <= 0377; i++) { 1843145479Smp if (Isprint(CTL_ESC(i))) { 1844145479Smp CcKeyMap[CTL_ESC(i)] = F_INSERT; 184559243Sobrien } 184659243Sobrien } 184759243Sobrien NLSMapsAreInited = 1; 184859243Sobrien} 184959243Sobrien 185059243Sobrienstatic void 1851167465Smped_InitMetaBindings(void) 185259243Sobrien{ 185359243Sobrien Char buf[3]; 185459243Sobrien int i; 185559243Sobrien CStr cstr; 185659243Sobrien KEYCMD *map; 185759243Sobrien 185859243Sobrien map = CcKeyMap; 1859145479Smp for (i = 0; i <= 0377 && CcKeyMap[CTL_ESC(i)] != F_METANEXT; i++) 186059243Sobrien continue; 186159243Sobrien if (i > 0377) { 1862145479Smp for (i = 0; i <= 0377 && CcAltMap[CTL_ESC(i)] != F_METANEXT; i++) 186359243Sobrien continue; 186459243Sobrien if (i > 0377) { 1865145479Smp i = '\033'; 186659243Sobrien if (VImode) 186759243Sobrien map = CcAltMap; 186859243Sobrien } 186959243Sobrien else { 187059243Sobrien map = CcAltMap; 187159243Sobrien } 187259243Sobrien } 1873145479Smp buf[0] = (Char)CTL_ESC(i); 187459243Sobrien buf[2] = 0; 187559243Sobrien cstr.buf = buf; 187659243Sobrien cstr.len = 2; 187759243Sobrien for (i = 0200; i <= 0377; i++) { 1878145479Smp if (map[CTL_ESC(i)] != F_INSERT && map[CTL_ESC(i)] != F_UNASSIGNED && map[CTL_ESC(i)] != F_XKEY) { 1879145479Smp buf[1] = CTL_ESC(i & ASCII); 1880145479Smp AddXkey(&cstr, XmapCmd((int) map[CTL_ESC(i)]), XK_CMD); 188159243Sobrien } 188259243Sobrien } 188359243Sobrien map[buf[0]] = F_XKEY; 188459243Sobrien} 188559243Sobrien 188659243Sobrienvoid 1887167465Smped_InitVIMaps(void) 188859243Sobrien{ 1889145479Smp int i; 189059243Sobrien 189159243Sobrien VImode = 1; 189259243Sobrien ResetXmap(); 189359243Sobrien for (i = 0; i < NT_NUM_KEYS; i++) { 189459243Sobrien CcKeyMap[i] = CcViMap[i]; 189559243Sobrien CcAltMap[i] = CcViCmdMap[i]; 189659243Sobrien } 189759243Sobrien ed_InitMetaBindings(); 189859243Sobrien ed_InitNLSMaps(); 189959243Sobrien ResetArrowKeys(); 190059243Sobrien BindArrowKeys(); 190159243Sobrien} 190259243Sobrien 190359243Sobrienvoid 1904167465Smped_InitEmacsMaps(void) 190559243Sobrien{ 190659243Sobrien int i; 190759243Sobrien Char buf[3]; 190859243Sobrien CStr cstr; 190959243Sobrien cstr.buf = buf; 191059243Sobrien cstr.len = 2; 191159243Sobrien 191259243Sobrien VImode = 0; 191359243Sobrien ResetXmap(); 191459243Sobrien for (i = 0; i < NT_NUM_KEYS; i++) { 191559243Sobrien CcKeyMap[i] = CcEmacsMap[i]; 191659243Sobrien CcAltMap[i] = F_UNASSIGNED; 191759243Sobrien } 191859243Sobrien ed_InitMetaBindings(); 191959243Sobrien ed_InitNLSMaps(); 192059243Sobrien buf[0] = CTL_ESC('\030'); 192159243Sobrien buf[2] = 0; 192259243Sobrien buf[1] = CTL_ESC('\030'); 192359243Sobrien AddXkey(&cstr, XmapCmd(F_EXCHANGE_MARK), XK_CMD); 192459243Sobrien buf[1] = '*'; 192559243Sobrien AddXkey(&cstr, XmapCmd(F_EXPAND_GLOB), XK_CMD); 192659243Sobrien buf[1] = '$'; 192759243Sobrien AddXkey(&cstr, XmapCmd(F_EXPAND_VARS), XK_CMD); 192859243Sobrien buf[1] = 'G'; 192959243Sobrien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 193059243Sobrien buf[1] = 'g'; 193159243Sobrien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 193259243Sobrien buf[1] = 'n'; 193359243Sobrien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 193459243Sobrien buf[1] = 'N'; 193559243Sobrien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 193659243Sobrien buf[1] = '?'; 193759243Sobrien AddXkey(&cstr, XmapCmd(F_COMMAND_NORM), XK_CMD); 193859243Sobrien buf[1] = '\t'; 193959243Sobrien AddXkey(&cstr, XmapCmd(F_COMPLETE_ALL), XK_CMD); 194059243Sobrien buf[1] = CTL_ESC('\004'); /* ^D */ 194159243Sobrien AddXkey(&cstr, XmapCmd(F_LIST_ALL), XK_CMD); 194259243Sobrien ResetArrowKeys(); 194359243Sobrien BindArrowKeys(); 194459243Sobrien} 194559243Sobrien 194659243Sobrienvoid 1947167465Smped_InitMaps(void) 194859243Sobrien{ 194959243Sobrien if (MapsAreInited) 195059243Sobrien return; 195169408Sache#ifndef IS_ASCII 195259243Sobrien /* This machine has an EBCDIC charset. The assumptions made for the 195359243Sobrien * initialized keymaps therefore don't hold, since they are based on 195459243Sobrien * ASCII (or ISO8859-1). 195559243Sobrien * Here, we do a one-time transformation to EBCDIC environment 195659243Sobrien * for the key initializations. 195759243Sobrien */ 195859243Sobrien { 195959243Sobrien KEYCMD temp[NT_NUM_KEYS]; 196059243Sobrien static KEYCMD *const list[3] = { CcEmacsMap, CcViMap, CcViCmdMap }; 1961145479Smp int i, table; 196259243Sobrien 196359243Sobrien for (table=0; table<3; ++table) 196459243Sobrien { 196559243Sobrien /* copy ASCII ordered map to temp table */ 196659243Sobrien for (i = 0; i < NT_NUM_KEYS; i++) { 196759243Sobrien temp[i] = list[table][i]; 196859243Sobrien } 196959243Sobrien /* write back as EBCDIC ordered map */ 197059243Sobrien for (i = 0; i < NT_NUM_KEYS; i++) { 197159243Sobrien list[table][_toebcdic[i]] = temp[i]; 197259243Sobrien } 197359243Sobrien } 197459243Sobrien } 197569408Sache#endif /* !IS_ASCII */ 197659243Sobrien 197759243Sobrien#ifdef VIDEFAULT 197859243Sobrien ed_InitVIMaps(); 197959243Sobrien#else 198059243Sobrien ed_InitEmacsMaps(); 198159243Sobrien#endif 198259243Sobrien 198359243Sobrien MapsAreInited = 1; 198459243Sobrien} 1985