1c80476e4SDavid E. O'Brien /* 2c80476e4SDavid E. O'Brien * ed.defns.c: Editor function definitions and initialization 3c80476e4SDavid E. O'Brien */ 4c80476e4SDavid E. O'Brien /*- 5c80476e4SDavid E. O'Brien * Copyright (c) 1980, 1991 The Regents of the University of California. 6c80476e4SDavid E. O'Brien * All rights reserved. 7c80476e4SDavid E. O'Brien * 8c80476e4SDavid E. O'Brien * Redistribution and use in source and binary forms, with or without 9c80476e4SDavid E. O'Brien * modification, are permitted provided that the following conditions 10c80476e4SDavid E. O'Brien * are met: 11c80476e4SDavid E. O'Brien * 1. Redistributions of source code must retain the above copyright 12c80476e4SDavid E. O'Brien * notice, this list of conditions and the following disclaimer. 13c80476e4SDavid E. O'Brien * 2. Redistributions in binary form must reproduce the above copyright 14c80476e4SDavid E. O'Brien * notice, this list of conditions and the following disclaimer in the 15c80476e4SDavid E. O'Brien * documentation and/or other materials provided with the distribution. 1629301572SMark Peek * 3. Neither the name of the University nor the names of its contributors 17c80476e4SDavid E. O'Brien * may be used to endorse or promote products derived from this software 18c80476e4SDavid E. O'Brien * without specific prior written permission. 19c80476e4SDavid E. O'Brien * 20c80476e4SDavid E. O'Brien * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21c80476e4SDavid E. O'Brien * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22c80476e4SDavid E. O'Brien * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23c80476e4SDavid E. O'Brien * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24c80476e4SDavid E. O'Brien * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25c80476e4SDavid E. O'Brien * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26c80476e4SDavid E. O'Brien * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27c80476e4SDavid E. O'Brien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28c80476e4SDavid E. O'Brien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29c80476e4SDavid E. O'Brien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30c80476e4SDavid E. O'Brien * SUCH DAMAGE. 31c80476e4SDavid E. O'Brien */ 32c80476e4SDavid E. O'Brien #include "sh.h" 33c80476e4SDavid E. O'Brien #include "ed.h" 34c80476e4SDavid E. O'Brien 3545e5710bSMark Peek static void ed_InitMetaBindings (void); 36c80476e4SDavid E. O'Brien 37c80476e4SDavid E. O'Brien PFCmd CcFuncTbl[] = { /* table of available commands */ 38c80476e4SDavid E. O'Brien e_unassigned, 39c80476e4SDavid E. O'Brien /* no #define here -- this is a dummy to detect initing of the key map */ 40c80476e4SDavid E. O'Brien e_unassigned, 41c80476e4SDavid E. O'Brien #define F_UNASSIGNED 1 42c80476e4SDavid E. O'Brien e_insert, 43c80476e4SDavid E. O'Brien #define F_INSERT 2 44c80476e4SDavid E. O'Brien e_newline, 45c80476e4SDavid E. O'Brien #define F_NEWLINE 3 46c80476e4SDavid E. O'Brien e_delprev, 47c80476e4SDavid E. O'Brien #define F_DELPREV 4 48c80476e4SDavid E. O'Brien e_delnext, 49c80476e4SDavid E. O'Brien #define F_DELNEXT 5 50c80476e4SDavid E. O'Brien e_toend, 51c80476e4SDavid E. O'Brien #define F_TOEND 6 52c80476e4SDavid E. O'Brien e_tobeg, 53c80476e4SDavid E. O'Brien #define F_TOBEG 7 54c80476e4SDavid E. O'Brien e_charback, 55c80476e4SDavid E. O'Brien #define F_CHARBACK 8 56c80476e4SDavid E. O'Brien e_charfwd, 57c80476e4SDavid E. O'Brien #define F_CHARFWD 9 58c80476e4SDavid E. O'Brien e_quote, 59c80476e4SDavid E. O'Brien #define F_QUOTE 10 60c80476e4SDavid E. O'Brien e_startover, 61c80476e4SDavid E. O'Brien #define F_STARTOVER 11 62c80476e4SDavid E. O'Brien e_redisp, 63c80476e4SDavid E. O'Brien #define F_REDISP 12 64c80476e4SDavid E. O'Brien e_tty_int, 65c80476e4SDavid E. O'Brien #define F_TTY_INT 13 66c80476e4SDavid E. O'Brien e_wordback, 67c80476e4SDavid E. O'Brien #define F_WORDBACK 14 68c80476e4SDavid E. O'Brien e_wordfwd, 69c80476e4SDavid E. O'Brien #define F_WORDFWD 15 70c80476e4SDavid E. O'Brien e_cleardisp, 71c80476e4SDavid E. O'Brien #define F_CLEARDISP 16 72c80476e4SDavid E. O'Brien e_complete, 73c80476e4SDavid E. O'Brien #define F_COMPLETE 17 74c80476e4SDavid E. O'Brien e_correct, 75c80476e4SDavid E. O'Brien #define F_CORRECT 18 76c80476e4SDavid E. O'Brien e_up_hist, 77c80476e4SDavid E. O'Brien #define F_UP_HIST 19 78c80476e4SDavid E. O'Brien e_down_hist, 79c80476e4SDavid E. O'Brien #define F_DOWN_HIST 20 80c80476e4SDavid E. O'Brien e_up_search_hist, 81c80476e4SDavid E. O'Brien #define F_UP_SEARCH_HIST 21 82c80476e4SDavid E. O'Brien e_down_search_hist, 83c80476e4SDavid E. O'Brien #define F_DOWN_SEARCH_HIST 22 84c80476e4SDavid E. O'Brien e_helpme, 85c80476e4SDavid E. O'Brien #define F_HELPME 23 86c80476e4SDavid E. O'Brien e_list_choices, 87c80476e4SDavid E. O'Brien #define F_LIST_CHOICES 24 88c80476e4SDavid E. O'Brien e_delwordprev, 89c80476e4SDavid E. O'Brien #define F_DELWORDPREV 25 90c80476e4SDavid E. O'Brien e_delwordnext, 91c80476e4SDavid E. O'Brien #define F_DELWORDNEXT 26 92c80476e4SDavid E. O'Brien e_digit, 93c80476e4SDavid E. O'Brien #define F_DIGIT 27 94c80476e4SDavid E. O'Brien e_killend, 95c80476e4SDavid E. O'Brien #define F_KILLEND 28 96c80476e4SDavid E. O'Brien e_killbeg, 97c80476e4SDavid E. O'Brien #define F_KILLBEG 29 98c80476e4SDavid E. O'Brien e_metanext, 99c80476e4SDavid E. O'Brien #define F_METANEXT 30 100c80476e4SDavid E. O'Brien e_send_eof, 101c80476e4SDavid E. O'Brien #define F_SEND_EOF 31 102c80476e4SDavid E. O'Brien e_charswitch, 103c80476e4SDavid E. O'Brien #define F_CHARSWITCH 32 104c80476e4SDavid E. O'Brien e_which, 105c80476e4SDavid E. O'Brien #define F_WHICH 33 106c80476e4SDavid E. O'Brien e_yank_kill, 107c80476e4SDavid E. O'Brien #define F_YANK_KILL 34 108c80476e4SDavid E. O'Brien e_tty_dsusp, 109c80476e4SDavid E. O'Brien #define F_TTY_DSUSP 35 110c80476e4SDavid E. O'Brien e_tty_flusho, 111c80476e4SDavid E. O'Brien #define F_TTY_FLUSHO 36 112c80476e4SDavid E. O'Brien e_tty_quit, 113c80476e4SDavid E. O'Brien #define F_TTY_QUIT 37 114c80476e4SDavid E. O'Brien e_tty_tsusp, 115c80476e4SDavid E. O'Brien #define F_TTY_TSUSP 38 116c80476e4SDavid E. O'Brien e_tty_stopo, 117c80476e4SDavid E. O'Brien #define F_TTY_STOPO 39 118c80476e4SDavid E. O'Brien e_tty_starto, 119c80476e4SDavid E. O'Brien #define F_TTY_STARTO 40 120c80476e4SDavid E. O'Brien e_argfour, 121c80476e4SDavid E. O'Brien #define F_ARGFOUR 41 122c80476e4SDavid E. O'Brien e_set_mark, 123c80476e4SDavid E. O'Brien #define F_SET_MARK 42 124c80476e4SDavid E. O'Brien e_exchange_mark, 125c80476e4SDavid E. O'Brien #define F_EXCHANGE_MARK 43 126c80476e4SDavid E. O'Brien e_last_item, 127c80476e4SDavid E. O'Brien #define F_LAST_ITEM 44 128c80476e4SDavid E. O'Brien e_delnext_list_eof, 129c80476e4SDavid E. O'Brien #define F_DELNEXT_LIST_EOF 45 130c80476e4SDavid E. O'Brien v_cmd_mode, 131c80476e4SDavid E. O'Brien #define V_CMD_MODE 46 132c80476e4SDavid E. O'Brien v_insert, 133c80476e4SDavid E. O'Brien #define V_INSERT 47 134c80476e4SDavid E. O'Brien e_argdigit, 135c80476e4SDavid E. O'Brien #define F_ARGDIGIT 48 136c80476e4SDavid E. O'Brien e_killregion, 137c80476e4SDavid E. O'Brien #define F_KILLREGION 49 138c80476e4SDavid E. O'Brien e_copyregion, 139c80476e4SDavid E. O'Brien #define F_COPYREGION 50 140c80476e4SDavid E. O'Brien e_gcharswitch, 141c80476e4SDavid E. O'Brien #define F_GCHARSWITCH 51 142c80476e4SDavid E. O'Brien e_run_fg_editor, 143c80476e4SDavid E. O'Brien #define F_RUN_FG_EDITOR 52 144c80476e4SDavid E. O'Brien e_unassigned, /* place holder for sequence lead in character */ 145c80476e4SDavid E. O'Brien #define F_XKEY 53 146c80476e4SDavid E. O'Brien e_uppercase, 147c80476e4SDavid E. O'Brien #define F_CASEUPPER 54 148c80476e4SDavid E. O'Brien e_lowercase, 149c80476e4SDavid E. O'Brien #define F_CASELOWER 55 15019d2e3deSDmitry Chagin e_capitalcase, 151c80476e4SDavid E. O'Brien #define F_CASECAPITAL 56 152c80476e4SDavid E. O'Brien v_zero, 153c80476e4SDavid E. O'Brien #define V_ZERO 57 154c80476e4SDavid E. O'Brien v_add, 155c80476e4SDavid E. O'Brien #define V_ADD 58 156c80476e4SDavid E. O'Brien v_addend, 157c80476e4SDavid E. O'Brien #define V_ADDEND 59 158c80476e4SDavid E. O'Brien v_wordbegnext, 159c80476e4SDavid E. O'Brien #define V_WORDBEGNEXT 60 160c80476e4SDavid E. O'Brien e_killall, 161c80476e4SDavid E. O'Brien #define F_KILLALL 61 162c80476e4SDavid E. O'Brien e_unassigned, 163c80476e4SDavid E. O'Brien /* F_EXTENDNEXT removed */ 164c80476e4SDavid E. O'Brien v_insbeg, 165c80476e4SDavid E. O'Brien #define V_INSBEG 63 166c80476e4SDavid E. O'Brien v_replmode, 167c80476e4SDavid E. O'Brien #define V_REPLMODE 64 168c80476e4SDavid E. O'Brien v_replone, 169c80476e4SDavid E. O'Brien #define V_REPLONE 65 170c80476e4SDavid E. O'Brien v_substline, 171c80476e4SDavid E. O'Brien #define V_SUBSTLINE 66 172c80476e4SDavid E. O'Brien v_substchar, 173c80476e4SDavid E. O'Brien #define V_SUBSTCHAR 67 174c80476e4SDavid E. O'Brien v_chgtoend, 175c80476e4SDavid E. O'Brien #define V_CHGTOEND 68 176c80476e4SDavid E. O'Brien e_list_eof, 177c80476e4SDavid E. O'Brien #define F_LIST_EOF 69 178c80476e4SDavid E. O'Brien e_list_glob, 179c80476e4SDavid E. O'Brien #define F_LIST_GLOB 70 180c80476e4SDavid E. O'Brien e_expand_history, 181c80476e4SDavid E. O'Brien #define F_EXPAND_HISTORY 71 182c80476e4SDavid E. O'Brien e_magic_space, 183c80476e4SDavid E. O'Brien #define F_MAGIC_SPACE 72 184c80476e4SDavid E. O'Brien e_insovr, 185c80476e4SDavid E. O'Brien #define F_INSOVR 73 186c80476e4SDavid E. O'Brien v_cm_complete, 187c80476e4SDavid E. O'Brien #define V_CM_COMPLETE 74 188c80476e4SDavid E. O'Brien e_copyprev, 189c80476e4SDavid E. O'Brien #define F_COPYPREV 75 190c80476e4SDavid E. O'Brien e_correctl, 191c80476e4SDavid E. O'Brien #define F_CORRECT_L 76 192c80476e4SDavid E. O'Brien e_expand_glob, 193c80476e4SDavid E. O'Brien #define F_EXPAND_GLOB 77 194c80476e4SDavid E. O'Brien e_expand_vars, 195c80476e4SDavid E. O'Brien #define F_EXPAND_VARS 78 196c80476e4SDavid E. O'Brien e_toggle_hist, 197c80476e4SDavid E. O'Brien #define F_TOGGLE_HIST 79 198c80476e4SDavid E. O'Brien v_change_case, 199c80476e4SDavid E. O'Brien #define V_CHGCASE 80 200c80476e4SDavid E. O'Brien e_expand, 201c80476e4SDavid E. O'Brien #define F_EXPAND 81 202c80476e4SDavid E. O'Brien e_load_average, 203c80476e4SDavid E. O'Brien #define F_LOAD_AVERAGE 82 204c80476e4SDavid E. O'Brien v_delprev, 205c80476e4SDavid E. O'Brien #define V_DELPREV 83 206c80476e4SDavid E. O'Brien v_delmeta, 207c80476e4SDavid E. O'Brien #define V_DELMETA 84 208c80476e4SDavid E. O'Brien v_wordfwd, 209c80476e4SDavid E. O'Brien #define V_WORDFWD 85 210c80476e4SDavid E. O'Brien v_wordback, 211c80476e4SDavid E. O'Brien #define V_WORDBACK 86 212c80476e4SDavid E. O'Brien v_endword, 213c80476e4SDavid E. O'Brien #define V_ENDWORD 87 214c80476e4SDavid E. O'Brien v_eword, 215c80476e4SDavid E. O'Brien #define V_EWORD 88 216c80476e4SDavid E. O'Brien v_undo, 217c80476e4SDavid E. O'Brien #define V_UNDO 89 218c80476e4SDavid E. O'Brien v_ush_meta, 219c80476e4SDavid E. O'Brien #define V_USH_META 90 220c80476e4SDavid E. O'Brien v_dsh_meta, 221c80476e4SDavid E. O'Brien #define V_DSH_META 91 222c80476e4SDavid E. O'Brien v_rsrch_fwd, 223c80476e4SDavid E. O'Brien #define V_RSRCH_FWD 92 224c80476e4SDavid E. O'Brien v_rsrch_back, 225c80476e4SDavid E. O'Brien #define V_RSRCH_BACK 93 226c80476e4SDavid E. O'Brien v_char_fwd, 227c80476e4SDavid E. O'Brien #define V_CHAR_FWD 94 228c80476e4SDavid E. O'Brien v_char_back, 229c80476e4SDavid E. O'Brien #define V_CHAR_BACK 95 230c80476e4SDavid E. O'Brien v_chgmeta, 231c80476e4SDavid E. O'Brien #define V_CHGMETA 96 232c80476e4SDavid E. O'Brien e_inc_fwd, 233c80476e4SDavid E. O'Brien #define F_INC_FWD 97 234c80476e4SDavid E. O'Brien e_inc_back, 235c80476e4SDavid E. O'Brien #define F_INC_BACK 98 236c80476e4SDavid E. O'Brien v_rchar_fwd, 237c80476e4SDavid E. O'Brien #define V_RCHAR_FWD 99 238c80476e4SDavid E. O'Brien v_rchar_back, 239c80476e4SDavid E. O'Brien #define V_RCHAR_BACK 100 240c80476e4SDavid E. O'Brien v_charto_fwd, 241c80476e4SDavid E. O'Brien #define V_CHARTO_FWD 101 242c80476e4SDavid E. O'Brien v_charto_back, 243c80476e4SDavid E. O'Brien #define V_CHARTO_BACK 102 244c80476e4SDavid E. O'Brien e_normalize_path, 245c80476e4SDavid E. O'Brien #define F_PATH_NORM 103 246c80476e4SDavid E. O'Brien e_delnext_eof, /* added by mtk@ari.ncl.omron.co.jp (920818) */ 247c80476e4SDavid E. O'Brien #define F_DELNEXT_EOF 104 248c80476e4SDavid E. O'Brien e_stuff_char, 249c80476e4SDavid E. O'Brien #define F_STUFF_CHAR 105 250c80476e4SDavid E. O'Brien e_complete_all, 251c80476e4SDavid E. O'Brien #define F_COMPLETE_ALL 106 252c80476e4SDavid E. O'Brien e_list_all, 253c80476e4SDavid E. O'Brien #define F_LIST_ALL 107 254c80476e4SDavid E. O'Brien e_complete_fwd, 255c80476e4SDavid E. O'Brien #define F_COMPLETE_FWD 108 256c80476e4SDavid E. O'Brien e_complete_back, 257c80476e4SDavid E. O'Brien #define F_COMPLETE_BACK 109 258c80476e4SDavid E. O'Brien e_delnext_list, 259c80476e4SDavid E. O'Brien #define F_DELNEXT_LIST 110 260c80476e4SDavid E. O'Brien e_normalize_command, 261c80476e4SDavid E. O'Brien #define F_COMMAND_NORM 111 262c80476e4SDavid E. O'Brien e_dabbrev_expand, 263c80476e4SDavid E. O'Brien #define F_DABBREV_EXPAND 112 264c80476e4SDavid E. O'Brien e_dosify_next, 265*cc698b49SBrooks Davis #define F_DOSIFY_NEXT 113 266c80476e4SDavid E. O'Brien e_dosify_prev, 267*cc698b49SBrooks Davis #define F_DOSIFY_PREV 114 2683b6eaa7bSAndrey A. Chernov e_page_up, 269*cc698b49SBrooks Davis #define F_PAGE_UP 115 2703b6eaa7bSAndrey A. Chernov e_page_down, 271*cc698b49SBrooks Davis #define F_PAGE_DOWN 116 2726767bd61SMark Peek e_yank_pop, 273*cc698b49SBrooks Davis #define F_YANK_POP 117 27445e5710bSMark Peek e_newline_hold, 275*cc698b49SBrooks Davis #define F_NEWLINE_HOLD 118 27645e5710bSMark Peek e_newline_down_hist, 277*cc698b49SBrooks Davis #define F_NEWLINE_DOWN_HIST 119 278c80476e4SDavid E. O'Brien 0 /* DUMMY VALUE */ 279*cc698b49SBrooks Davis #define F_NUM_FNS 120 280c80476e4SDavid E. O'Brien 281c80476e4SDavid E. O'Brien }; 282c80476e4SDavid E. O'Brien 283c80476e4SDavid E. O'Brien KEYCMD NumFuns = F_NUM_FNS; 284c80476e4SDavid E. O'Brien 285c80476e4SDavid E. O'Brien KEYCMD CcKeyMap[NT_NUM_KEYS]; /* the real key map */ 286c80476e4SDavid E. O'Brien KEYCMD CcAltMap[NT_NUM_KEYS]; /* the alternative key map */ 287c80476e4SDavid E. O'Brien #define F_NUM_FUNCNAMES (F_NUM_FNS + 2) 288c80476e4SDavid E. O'Brien struct KeyFuncs FuncNames[F_NUM_FUNCNAMES]; 289c80476e4SDavid E. O'Brien 2903b6eaa7bSAndrey A. Chernov #ifdef WINNT_NATIVE 291c80476e4SDavid E. O'Brien extern KEYCMD CcEmacsMap[]; 292c80476e4SDavid E. O'Brien extern KEYCMD CcViMap[]; 293c80476e4SDavid E. O'Brien extern KEYCMD CcViCmdMap[]; 2943b6eaa7bSAndrey A. Chernov #else /* !WINNT_NATIVE*/ 295c80476e4SDavid E. O'Brien KEYCMD CcEmacsMap[] = { 296c80476e4SDavid E. O'Brien /* keymap table, each index into above tbl; should be 256*sizeof(KEYCMD) 297c80476e4SDavid E. O'Brien bytes long */ 298c80476e4SDavid E. O'Brien 299c80476e4SDavid E. O'Brien F_SET_MARK, /* ^@ */ 300c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ 301c80476e4SDavid E. O'Brien F_CHARBACK, /* ^B */ 302c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ 303c80476e4SDavid E. O'Brien F_DELNEXT_LIST_EOF, /* ^D */ 304c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ 305c80476e4SDavid E. O'Brien F_CHARFWD, /* ^F */ 306c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^G */ 307c80476e4SDavid E. O'Brien F_DELPREV, /* ^H */ 308c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ 309c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 310c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 311c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 312c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 313c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 314c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 315c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 316c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 317c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 318c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 319c80476e4SDavid E. O'Brien F_CHARSWITCH, /* ^T */ 320c80476e4SDavid E. O'Brien F_KILLALL, /* ^U */ 321c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 322c80476e4SDavid E. O'Brien F_KILLREGION, /* ^W */ 323c80476e4SDavid E. O'Brien F_XKEY, /* ^X */ 324c80476e4SDavid E. O'Brien F_YANK_KILL, /* ^Y */ 325c80476e4SDavid E. O'Brien F_TTY_TSUSP, /* ^Z */ 326c80476e4SDavid E. O'Brien F_METANEXT, /* ^[ */ 327c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 328c80476e4SDavid E. O'Brien F_TTY_DSUSP, /* ^] */ 329c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 330c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 331c80476e4SDavid E. O'Brien F_INSERT, /* SPACE */ 332c80476e4SDavid E. O'Brien F_INSERT, /* ! */ 333c80476e4SDavid E. O'Brien F_INSERT, /* " */ 334c80476e4SDavid E. O'Brien F_INSERT, /* # */ 335c80476e4SDavid E. O'Brien F_INSERT, /* $ */ 336c80476e4SDavid E. O'Brien F_INSERT, /* % */ 337c80476e4SDavid E. O'Brien F_INSERT, /* & */ 338c80476e4SDavid E. O'Brien F_INSERT, /* ' */ 339c80476e4SDavid E. O'Brien F_INSERT, /* ( */ 340c80476e4SDavid E. O'Brien F_INSERT, /* ) */ 341c80476e4SDavid E. O'Brien F_INSERT, /* * */ 342c80476e4SDavid E. O'Brien F_INSERT, /* + */ 343c80476e4SDavid E. O'Brien F_INSERT, /* , */ 344c80476e4SDavid E. O'Brien F_INSERT, /* - */ 345c80476e4SDavid E. O'Brien F_INSERT, /* . */ 346c80476e4SDavid E. O'Brien F_INSERT, /* / */ 347c80476e4SDavid E. O'Brien F_DIGIT, /* 0 */ 348c80476e4SDavid E. O'Brien F_DIGIT, /* 1 */ 349c80476e4SDavid E. O'Brien F_DIGIT, /* 2 */ 350c80476e4SDavid E. O'Brien F_DIGIT, /* 3 */ 351c80476e4SDavid E. O'Brien F_DIGIT, /* 4 */ 352c80476e4SDavid E. O'Brien F_DIGIT, /* 5 */ 353c80476e4SDavid E. O'Brien F_DIGIT, /* 6 */ 354c80476e4SDavid E. O'Brien F_DIGIT, /* 7 */ 355c80476e4SDavid E. O'Brien F_DIGIT, /* 8 */ 356c80476e4SDavid E. O'Brien F_DIGIT, /* 9 */ 357c80476e4SDavid E. O'Brien F_INSERT, /* : */ 358c80476e4SDavid E. O'Brien F_INSERT, /* ; */ 359c80476e4SDavid E. O'Brien F_INSERT, /* < */ 360c80476e4SDavid E. O'Brien F_INSERT, /* = */ 361c80476e4SDavid E. O'Brien F_INSERT, /* > */ 362c80476e4SDavid E. O'Brien F_INSERT, /* ? */ 363c80476e4SDavid E. O'Brien F_INSERT, /* @ */ 364c80476e4SDavid E. O'Brien F_INSERT, /* A */ 365c80476e4SDavid E. O'Brien F_INSERT, /* B */ 366c80476e4SDavid E. O'Brien F_INSERT, /* C */ 367c80476e4SDavid E. O'Brien F_INSERT, /* D */ 368c80476e4SDavid E. O'Brien F_INSERT, /* E */ 369c80476e4SDavid E. O'Brien F_INSERT, /* F */ 370c80476e4SDavid E. O'Brien F_INSERT, /* G */ 371c80476e4SDavid E. O'Brien F_INSERT, /* H */ 372c80476e4SDavid E. O'Brien F_INSERT, /* I */ 373c80476e4SDavid E. O'Brien F_INSERT, /* J */ 374c80476e4SDavid E. O'Brien F_INSERT, /* K */ 375c80476e4SDavid E. O'Brien F_INSERT, /* L */ 376c80476e4SDavid E. O'Brien F_INSERT, /* M */ 377c80476e4SDavid E. O'Brien F_INSERT, /* N */ 378c80476e4SDavid E. O'Brien F_INSERT, /* O */ 379c80476e4SDavid E. O'Brien F_INSERT, /* P */ 380c80476e4SDavid E. O'Brien F_INSERT, /* Q */ 381c80476e4SDavid E. O'Brien F_INSERT, /* R */ 382c80476e4SDavid E. O'Brien F_INSERT, /* S */ 383c80476e4SDavid E. O'Brien F_INSERT, /* T */ 384c80476e4SDavid E. O'Brien F_INSERT, /* U */ 385c80476e4SDavid E. O'Brien F_INSERT, /* V */ 386c80476e4SDavid E. O'Brien F_INSERT, /* W */ 387c80476e4SDavid E. O'Brien F_INSERT, /* X */ 388c80476e4SDavid E. O'Brien F_INSERT, /* Y */ 389c80476e4SDavid E. O'Brien F_INSERT, /* Z */ 390c80476e4SDavid E. O'Brien F_INSERT, /* [ */ 391c80476e4SDavid E. O'Brien F_INSERT, /* \ */ 392c80476e4SDavid E. O'Brien F_INSERT, /* ] */ 393c80476e4SDavid E. O'Brien F_INSERT, /* ^ */ 394c80476e4SDavid E. O'Brien F_INSERT, /* _ */ 395c80476e4SDavid E. O'Brien F_INSERT, /* ` */ 396c80476e4SDavid E. O'Brien F_INSERT, /* a */ 397c80476e4SDavid E. O'Brien F_INSERT, /* b */ 398c80476e4SDavid E. O'Brien F_INSERT, /* c */ 399c80476e4SDavid E. O'Brien F_INSERT, /* d */ 400c80476e4SDavid E. O'Brien F_INSERT, /* e */ 401c80476e4SDavid E. O'Brien F_INSERT, /* f */ 402c80476e4SDavid E. O'Brien F_INSERT, /* g */ 403c80476e4SDavid E. O'Brien F_INSERT, /* h */ 404c80476e4SDavid E. O'Brien F_INSERT, /* i */ 405c80476e4SDavid E. O'Brien F_INSERT, /* j */ 406c80476e4SDavid E. O'Brien F_INSERT, /* k */ 407c80476e4SDavid E. O'Brien F_INSERT, /* l */ 408c80476e4SDavid E. O'Brien F_INSERT, /* m */ 409c80476e4SDavid E. O'Brien F_INSERT, /* n */ 410c80476e4SDavid E. O'Brien F_INSERT, /* o */ 411c80476e4SDavid E. O'Brien F_INSERT, /* p */ 412c80476e4SDavid E. O'Brien F_INSERT, /* q */ 413c80476e4SDavid E. O'Brien F_INSERT, /* r */ 414c80476e4SDavid E. O'Brien F_INSERT, /* s */ 415c80476e4SDavid E. O'Brien F_INSERT, /* t */ 416c80476e4SDavid E. O'Brien F_INSERT, /* u */ 417c80476e4SDavid E. O'Brien F_INSERT, /* v */ 418c80476e4SDavid E. O'Brien F_INSERT, /* w */ 419c80476e4SDavid E. O'Brien F_INSERT, /* x */ 420c80476e4SDavid E. O'Brien F_INSERT, /* y */ 421c80476e4SDavid E. O'Brien F_INSERT, /* z */ 422c80476e4SDavid E. O'Brien F_INSERT, /* { */ 423c80476e4SDavid E. O'Brien F_INSERT, /* | */ 424c80476e4SDavid E. O'Brien F_INSERT, /* } */ 425c80476e4SDavid E. O'Brien F_INSERT, /* ~ */ 426c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 427c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 428c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 429c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 430c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 431c80476e4SDavid E. O'Brien F_LIST_CHOICES, /* M-^D */ 432c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 433c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 434c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 435c80476e4SDavid E. O'Brien F_DELWORDPREV, /* M-^H */ 436c80476e4SDavid E. O'Brien F_COMPLETE, /* M-^I */ 437c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 438c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 439c80476e4SDavid E. O'Brien F_CLEARDISP, /* M-^L */ 440c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 441c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 442c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 443c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 444c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 445c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 446c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 447c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 448c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 449c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 450c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 451c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 452c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 453c80476e4SDavid E. O'Brien F_RUN_FG_EDITOR, /* M-^Z */ 454c80476e4SDavid E. O'Brien F_COMPLETE, /* M-^[ */ 455c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 456c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 457c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 458c80476e4SDavid E. O'Brien F_COPYPREV, /* M-^_ */ 459c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* M-SPACE */ 460c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* M-! */ 461c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 462c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 463c80476e4SDavid E. O'Brien F_CORRECT_L, /* M-$ */ 464c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 465c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 466c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 467c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 468c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 469c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 470c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-+ */ 471c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-, */ 472c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-- */ 473c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-. */ 474c80476e4SDavid E. O'Brien F_DABBREV_EXPAND, /* M-/ */ 475c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-0 */ 476c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-1 */ 477c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-2 */ 478c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-3 */ 479c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-4 */ 480c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-5 */ 481c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-6 */ 482c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-7 */ 483c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-8 */ 484c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-9 */ 485c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 486c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 487c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 488c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 489c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-> */ 490c80476e4SDavid E. O'Brien F_WHICH, /* M-? */ 491c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-@ */ 49245e5710bSMark Peek F_NEWLINE_HOLD, /* M-A */ 493c80476e4SDavid E. O'Brien F_WORDBACK, /* M-B */ 494c80476e4SDavid E. O'Brien F_CASECAPITAL, /* M-C */ 495c80476e4SDavid E. O'Brien F_DELWORDNEXT, /* M-D */ 496c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 497c80476e4SDavid E. O'Brien F_WORDFWD, /* M-F */ 498c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 499c80476e4SDavid E. O'Brien F_HELPME, /* M-H */ 500c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 501c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 502c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 503c80476e4SDavid E. O'Brien F_CASELOWER, /* M-L */ 504c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 505c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* M-N */ 506c80476e4SDavid E. O'Brien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 507c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* M-P */ 508c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 509c80476e4SDavid E. O'Brien F_TOGGLE_HIST, /* M-R */ 510c80476e4SDavid E. O'Brien F_CORRECT, /* M-S */ 511c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 512c80476e4SDavid E. O'Brien F_CASEUPPER, /* M-U */ 513c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 514c80476e4SDavid E. O'Brien F_COPYREGION, /* M-W */ 515c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 5166767bd61SMark Peek F_YANK_POP, /* M-Y */ 517c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 518c80476e4SDavid E. O'Brien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 519c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 520c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 521c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 522c80476e4SDavid E. O'Brien F_LAST_ITEM, /* M-_ */ 523c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 52445e5710bSMark Peek F_NEWLINE_HOLD, /* M-a */ 525c80476e4SDavid E. O'Brien F_WORDBACK, /* M-b */ 526c80476e4SDavid E. O'Brien F_CASECAPITAL, /* M-c */ 527c80476e4SDavid E. O'Brien F_DELWORDNEXT, /* M-d */ 528c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 529c80476e4SDavid E. O'Brien F_WORDFWD, /* M-f */ 530c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 531c80476e4SDavid E. O'Brien F_HELPME, /* M-h */ 532c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 533c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 534c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 535c80476e4SDavid E. O'Brien F_CASELOWER, /* M-l */ 536c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 537c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* M-n */ 538c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 539c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* M-p */ 540c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 541c80476e4SDavid E. O'Brien F_TOGGLE_HIST, /* M-r */ 542c80476e4SDavid E. O'Brien F_CORRECT, /* M-s */ 543c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 544c80476e4SDavid E. O'Brien F_CASEUPPER, /* M-u */ 545c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 546c80476e4SDavid E. O'Brien F_COPYREGION, /* M-w */ 547c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 5486767bd61SMark Peek F_YANK_POP, /* M-y */ 549c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 550c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 551c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 552c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 553c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 554c80476e4SDavid E. O'Brien F_DELWORDPREV /* M-^? */ 555c80476e4SDavid E. O'Brien }; 556c80476e4SDavid E. O'Brien 557c80476e4SDavid E. O'Brien /* 558c80476e4SDavid E. O'Brien * keymap table for vi. Each index into above tbl; should be 559c80476e4SDavid E. O'Brien * 256 entries long. Vi mode uses a sticky-extend to do command mode: 560c80476e4SDavid E. O'Brien * insert mode characters are in the normal keymap, and command mode 561c80476e4SDavid E. O'Brien * in the extended keymap. 562c80476e4SDavid E. O'Brien */ 563c80476e4SDavid E. O'Brien static KEYCMD CcViMap[] = { 564c80476e4SDavid E. O'Brien #ifdef KSHVI 565c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ 566c80476e4SDavid E. O'Brien F_INSERT, /* ^A */ 567c80476e4SDavid E. O'Brien F_INSERT, /* ^B */ 568c80476e4SDavid E. O'Brien F_INSERT, /* ^C */ 569c80476e4SDavid E. O'Brien F_INSERT, /* ^D */ 570c80476e4SDavid E. O'Brien F_INSERT, /* ^E */ 571c80476e4SDavid E. O'Brien F_INSERT, /* ^F */ 572c80476e4SDavid E. O'Brien F_INSERT, /* ^G */ 573c80476e4SDavid E. O'Brien V_DELPREV, /* ^H */ /* BackSpace key */ 574c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ /* Tab Key */ 575c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 576c80476e4SDavid E. O'Brien F_INSERT, /* ^K */ 577c80476e4SDavid E. O'Brien F_INSERT, /* ^L */ 578c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 579c80476e4SDavid E. O'Brien F_INSERT, /* ^N */ 580c80476e4SDavid E. O'Brien F_INSERT, /* ^O */ 581c80476e4SDavid E. O'Brien F_INSERT, /* ^P */ 582c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 583c80476e4SDavid E. O'Brien F_INSERT, /* ^R */ 584c80476e4SDavid E. O'Brien F_INSERT, /* ^S */ 585c80476e4SDavid E. O'Brien F_INSERT, /* ^T */ 586c80476e4SDavid E. O'Brien F_INSERT, /* ^U */ 587c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 588c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ /* Only until start edit pos */ 589c80476e4SDavid E. O'Brien F_INSERT, /* ^X */ 590c80476e4SDavid E. O'Brien F_INSERT, /* ^Y */ 591c80476e4SDavid E. O'Brien F_INSERT, /* ^Z */ 592c80476e4SDavid E. O'Brien V_CMD_MODE, /* ^[ */ /* [ Esc ] key */ 593c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 594c80476e4SDavid E. O'Brien F_INSERT, /* ^] */ 595c80476e4SDavid E. O'Brien F_INSERT, /* ^^ */ 596c80476e4SDavid E. O'Brien F_INSERT, /* ^_ */ 597c80476e4SDavid E. O'Brien #else /* !KSHVI */ 598c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ /* NOTE: These mapping do NOT */ 599c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ /* Correspond well to the KSH */ 600c80476e4SDavid E. O'Brien F_CHARBACK, /* ^B */ /* VI editting assignments */ 601c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ /* On the other hand they are */ 602c80476e4SDavid E. O'Brien F_LIST_EOF, /* ^D */ /* convenient any many people */ 603c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ /* have gotten used to them */ 604c80476e4SDavid E. O'Brien F_CHARFWD, /* ^F */ 605c80476e4SDavid E. O'Brien F_LIST_GLOB, /* ^G */ 606c80476e4SDavid E. O'Brien F_DELPREV, /* ^H */ /* BackSpace key */ 607c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ /* Tab Key */ 608c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 609c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 610c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 611c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 612c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 613c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 614c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 615c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 616c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 617c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 618c80476e4SDavid E. O'Brien F_CHARSWITCH, /* ^T */ 619c80476e4SDavid E. O'Brien F_KILLBEG, /* ^U */ 620c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 621c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ 622c80476e4SDavid E. O'Brien F_EXPAND, /* ^X */ 623c80476e4SDavid E. O'Brien F_TTY_DSUSP, /* ^Y */ 624c80476e4SDavid E. O'Brien F_TTY_TSUSP, /* ^Z */ 625c80476e4SDavid E. O'Brien V_CMD_MODE, /* ^[ */ 626c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 627c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^] */ 628c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 629c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 630c80476e4SDavid E. O'Brien #endif /* KSHVI */ 631c80476e4SDavid E. O'Brien F_INSERT, /* SPACE */ 632c80476e4SDavid E. O'Brien F_INSERT, /* ! */ 633c80476e4SDavid E. O'Brien F_INSERT, /* " */ 634c80476e4SDavid E. O'Brien F_INSERT, /* # */ 635c80476e4SDavid E. O'Brien F_INSERT, /* $ */ 636c80476e4SDavid E. O'Brien F_INSERT, /* % */ 637c80476e4SDavid E. O'Brien F_INSERT, /* & */ 638c80476e4SDavid E. O'Brien F_INSERT, /* ' */ 639c80476e4SDavid E. O'Brien F_INSERT, /* ( */ 640c80476e4SDavid E. O'Brien F_INSERT, /* ) */ 641c80476e4SDavid E. O'Brien F_INSERT, /* * */ 642c80476e4SDavid E. O'Brien F_INSERT, /* + */ 643c80476e4SDavid E. O'Brien F_INSERT, /* , */ 644c80476e4SDavid E. O'Brien F_INSERT, /* - */ 645c80476e4SDavid E. O'Brien F_INSERT, /* . */ 646c80476e4SDavid E. O'Brien F_INSERT, /* / */ 647c80476e4SDavid E. O'Brien F_INSERT, /* 0 */ 648c80476e4SDavid E. O'Brien F_INSERT, /* 1 */ 649c80476e4SDavid E. O'Brien F_INSERT, /* 2 */ 650c80476e4SDavid E. O'Brien F_INSERT, /* 3 */ 651c80476e4SDavid E. O'Brien F_INSERT, /* 4 */ 652c80476e4SDavid E. O'Brien F_INSERT, /* 5 */ 653c80476e4SDavid E. O'Brien F_INSERT, /* 6 */ 654c80476e4SDavid E. O'Brien F_INSERT, /* 7 */ 655c80476e4SDavid E. O'Brien F_INSERT, /* 8 */ 656c80476e4SDavid E. O'Brien F_INSERT, /* 9 */ 657c80476e4SDavid E. O'Brien F_INSERT, /* : */ 658c80476e4SDavid E. O'Brien F_INSERT, /* ; */ 659c80476e4SDavid E. O'Brien F_INSERT, /* < */ 660c80476e4SDavid E. O'Brien F_INSERT, /* = */ 661c80476e4SDavid E. O'Brien F_INSERT, /* > */ 662c80476e4SDavid E. O'Brien F_INSERT, /* ? */ 663c80476e4SDavid E. O'Brien F_INSERT, /* @ */ 664c80476e4SDavid E. O'Brien F_INSERT, /* A */ 665c80476e4SDavid E. O'Brien F_INSERT, /* B */ 666c80476e4SDavid E. O'Brien F_INSERT, /* C */ 667c80476e4SDavid E. O'Brien F_INSERT, /* D */ 668c80476e4SDavid E. O'Brien F_INSERT, /* E */ 669c80476e4SDavid E. O'Brien F_INSERT, /* F */ 670c80476e4SDavid E. O'Brien F_INSERT, /* G */ 671c80476e4SDavid E. O'Brien F_INSERT, /* H */ 672c80476e4SDavid E. O'Brien F_INSERT, /* I */ 673c80476e4SDavid E. O'Brien F_INSERT, /* J */ 674c80476e4SDavid E. O'Brien F_INSERT, /* K */ 675c80476e4SDavid E. O'Brien F_INSERT, /* L */ 676c80476e4SDavid E. O'Brien F_INSERT, /* M */ 677c80476e4SDavid E. O'Brien F_INSERT, /* N */ 678c80476e4SDavid E. O'Brien F_INSERT, /* O */ 679c80476e4SDavid E. O'Brien F_INSERT, /* P */ 680c80476e4SDavid E. O'Brien F_INSERT, /* Q */ 681c80476e4SDavid E. O'Brien F_INSERT, /* R */ 682c80476e4SDavid E. O'Brien F_INSERT, /* S */ 683c80476e4SDavid E. O'Brien F_INSERT, /* T */ 684c80476e4SDavid E. O'Brien F_INSERT, /* U */ 685c80476e4SDavid E. O'Brien F_INSERT, /* V */ 686c80476e4SDavid E. O'Brien F_INSERT, /* W */ 687c80476e4SDavid E. O'Brien F_INSERT, /* X */ 688c80476e4SDavid E. O'Brien F_INSERT, /* Y */ 689c80476e4SDavid E. O'Brien F_INSERT, /* Z */ 690c80476e4SDavid E. O'Brien F_INSERT, /* [ */ 691c80476e4SDavid E. O'Brien F_INSERT, /* \ */ 692c80476e4SDavid E. O'Brien F_INSERT, /* ] */ 693c80476e4SDavid E. O'Brien F_INSERT, /* ^ */ 694c80476e4SDavid E. O'Brien F_INSERT, /* _ */ 695c80476e4SDavid E. O'Brien F_INSERT, /* ` */ 696c80476e4SDavid E. O'Brien F_INSERT, /* a */ 697c80476e4SDavid E. O'Brien F_INSERT, /* b */ 698c80476e4SDavid E. O'Brien F_INSERT, /* c */ 699c80476e4SDavid E. O'Brien F_INSERT, /* d */ 700c80476e4SDavid E. O'Brien F_INSERT, /* e */ 701c80476e4SDavid E. O'Brien F_INSERT, /* f */ 702c80476e4SDavid E. O'Brien F_INSERT, /* g */ 703c80476e4SDavid E. O'Brien F_INSERT, /* h */ 704c80476e4SDavid E. O'Brien F_INSERT, /* i */ 705c80476e4SDavid E. O'Brien F_INSERT, /* j */ 706c80476e4SDavid E. O'Brien F_INSERT, /* k */ 707c80476e4SDavid E. O'Brien F_INSERT, /* l */ 708c80476e4SDavid E. O'Brien F_INSERT, /* m */ 709c80476e4SDavid E. O'Brien F_INSERT, /* n */ 710c80476e4SDavid E. O'Brien F_INSERT, /* o */ 711c80476e4SDavid E. O'Brien F_INSERT, /* p */ 712c80476e4SDavid E. O'Brien F_INSERT, /* q */ 713c80476e4SDavid E. O'Brien F_INSERT, /* r */ 714c80476e4SDavid E. O'Brien F_INSERT, /* s */ 715c80476e4SDavid E. O'Brien F_INSERT, /* t */ 716c80476e4SDavid E. O'Brien F_INSERT, /* u */ 717c80476e4SDavid E. O'Brien F_INSERT, /* v */ 718c80476e4SDavid E. O'Brien F_INSERT, /* w */ 719c80476e4SDavid E. O'Brien F_INSERT, /* x */ 720c80476e4SDavid E. O'Brien F_INSERT, /* y */ 721c80476e4SDavid E. O'Brien F_INSERT, /* z */ 722c80476e4SDavid E. O'Brien F_INSERT, /* { */ 723c80476e4SDavid E. O'Brien F_INSERT, /* | */ 724c80476e4SDavid E. O'Brien F_INSERT, /* } */ 725c80476e4SDavid E. O'Brien F_INSERT, /* ~ */ 726c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 727c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 728c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 729c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 730c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 731c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^D */ 732c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 733c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 734c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 735c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^H */ 736c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^I */ 737c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 738c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 739c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^L */ 740c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 741c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 742c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 743c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 744c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 745c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 746c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 747c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 748c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 749c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 750c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 751c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 752c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 753c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Z */ 754c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^[ */ 755c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 756c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 757c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 758c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^_ */ 759c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-SPACE */ 760c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-! */ 761c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 762c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 763c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-$ */ 764c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 765c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 766c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 767c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 768c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 769c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 770c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-+ */ 771c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-, */ 772c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-- */ 773c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-. */ 774c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-/ */ 775c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-0 */ 776c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-1 */ 777c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-2 */ 778c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-3 */ 779c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-4 */ 780c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-5 */ 781c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-6 */ 782c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-7 */ 783c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-8 */ 784c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-9 */ 785c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 786c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 787c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 788c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 789c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-> */ 790c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-? */ 791c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-@ */ 792c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-A */ 793c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-B */ 794c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-C */ 795c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-D */ 796c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 797c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-F */ 798c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 799c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-H */ 800c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 801c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 802c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 803c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-L */ 804c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 805c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-N */ 806c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-O */ 807c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-P */ 808c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 809c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-R */ 810c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-S */ 811c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 812c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-U */ 813c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 814c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-W */ 815c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 816c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Y */ 817c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 818c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-[ */ 819c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 820c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 821c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 822c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-_ */ 823c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 824c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-a */ 825c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-b */ 826c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-c */ 827c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-d */ 828c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 829c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-f */ 830c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 831c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-h */ 832c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 833c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 834c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 835c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-l */ 836c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 837c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-n */ 838c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 839c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-p */ 840c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 841c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-r */ 842c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-s */ 843c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 844c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-u */ 845c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 846c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-w */ 847c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 848c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-y */ 849c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 850c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 851c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 852c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 853c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 854c80476e4SDavid E. O'Brien F_UNASSIGNED /* M-^? */ 855c80476e4SDavid E. O'Brien }; 856c80476e4SDavid E. O'Brien 857c80476e4SDavid E. O'Brien KEYCMD CcViCmdMap[] = { 858c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ 859c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ 860c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^B */ 861c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ 862c80476e4SDavid E. O'Brien F_LIST_CHOICES, /* ^D */ 863c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ 864c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^F */ 865c80476e4SDavid E. O'Brien F_LIST_GLOB, /* ^G */ 866c80476e4SDavid E. O'Brien F_CHARBACK, /* ^H */ 867c80476e4SDavid E. O'Brien V_CM_COMPLETE, /* ^I */ 868c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 869c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 870c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 871c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 872c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 873c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 874c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 875c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 876c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 877c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 878c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^T */ 879c80476e4SDavid E. O'Brien F_KILLBEG, /* ^U */ 880c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^V */ 881c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ 882c80476e4SDavid E. O'Brien F_EXPAND, /* ^X */ 883c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^Y */ 884c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^Z */ 885c80476e4SDavid E. O'Brien F_METANEXT, /* ^[ */ 886c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 887c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^] */ 888c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 889c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 890c80476e4SDavid E. O'Brien F_CHARFWD, /* SPACE */ 891c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* ! */ 892c80476e4SDavid E. O'Brien F_UNASSIGNED, /* " */ 893c80476e4SDavid E. O'Brien F_UNASSIGNED, /* # */ 894c80476e4SDavid E. O'Brien F_TOEND, /* $ */ 895c80476e4SDavid E. O'Brien F_UNASSIGNED, /* % */ 896c80476e4SDavid E. O'Brien F_UNASSIGNED, /* & */ 897c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ' */ 898c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ( */ 899c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ) */ 900c80476e4SDavid E. O'Brien F_EXPAND_GLOB, /* * */ 901c80476e4SDavid E. O'Brien F_DOWN_HIST, /* + */ 902c80476e4SDavid E. O'Brien V_RCHAR_BACK, /* , */ 903c80476e4SDavid E. O'Brien F_UP_HIST, /* - */ 904c80476e4SDavid E. O'Brien F_UNASSIGNED, /* . */ 905c80476e4SDavid E. O'Brien V_DSH_META, /* / */ 906c80476e4SDavid E. O'Brien V_ZERO, /* 0 */ 907c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 1 */ 908c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 2 */ 909c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 3 */ 910c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 4 */ 911c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 5 */ 912c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 6 */ 913c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 7 */ 914c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 8 */ 915c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 9 */ 916c80476e4SDavid E. O'Brien F_UNASSIGNED, /* : */ 917c80476e4SDavid E. O'Brien V_RCHAR_FWD, /* ; */ 918c80476e4SDavid E. O'Brien F_UNASSIGNED, /* < */ 919c80476e4SDavid E. O'Brien F_UNASSIGNED, /* = */ 920c80476e4SDavid E. O'Brien F_UNASSIGNED, /* > */ 921c80476e4SDavid E. O'Brien V_USH_META, /* ? */ 922c80476e4SDavid E. O'Brien F_UNASSIGNED, /* @ */ 923c80476e4SDavid E. O'Brien V_ADDEND, /* A */ 924c80476e4SDavid E. O'Brien V_WORDBACK, /* B */ 925c80476e4SDavid E. O'Brien V_CHGTOEND, /* C */ 926c80476e4SDavid E. O'Brien F_KILLEND, /* D */ 927c80476e4SDavid E. O'Brien V_ENDWORD, /* E */ 928c80476e4SDavid E. O'Brien V_CHAR_BACK, /* F */ 929c80476e4SDavid E. O'Brien F_UNASSIGNED, /* G */ 930c80476e4SDavid E. O'Brien F_UNASSIGNED, /* H */ 931c80476e4SDavid E. O'Brien V_INSBEG, /* I */ 932c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* J */ 933c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* K */ 934c80476e4SDavid E. O'Brien F_UNASSIGNED, /* L */ 935c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M */ 936c80476e4SDavid E. O'Brien V_RSRCH_BACK, /* N */ 937c80476e4SDavid E. O'Brien F_XKEY, /* O */ 938c80476e4SDavid E. O'Brien F_UNASSIGNED, /* P */ 939c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Q */ 940c80476e4SDavid E. O'Brien V_REPLMODE, /* R */ 941c80476e4SDavid E. O'Brien V_SUBSTLINE, /* S */ 942c80476e4SDavid E. O'Brien V_CHARTO_BACK, /* T */ 943c80476e4SDavid E. O'Brien F_UNASSIGNED, /* U */ 944c80476e4SDavid E. O'Brien F_EXPAND_VARS, /* V */ 945c80476e4SDavid E. O'Brien V_WORDFWD, /* W */ 946c80476e4SDavid E. O'Brien F_DELPREV, /* X */ 947c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Y */ 948c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Z */ 949c80476e4SDavid E. O'Brien F_XKEY, /* [ */ 950c80476e4SDavid E. O'Brien F_UNASSIGNED, /* \ */ 951c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ] */ 952c80476e4SDavid E. O'Brien F_TOBEG, /* ^ */ 953c80476e4SDavid E. O'Brien F_UNASSIGNED, /* _ */ 954c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ` */ 955c80476e4SDavid E. O'Brien V_ADD, /* a */ 956c80476e4SDavid E. O'Brien F_WORDBACK, /* b */ 957c80476e4SDavid E. O'Brien V_CHGMETA, /* c */ 958c80476e4SDavid E. O'Brien V_DELMETA, /* d */ 959c80476e4SDavid E. O'Brien V_EWORD, /* e */ 960c80476e4SDavid E. O'Brien V_CHAR_FWD, /* f */ 961c80476e4SDavid E. O'Brien F_UNASSIGNED, /* g */ 962c80476e4SDavid E. O'Brien F_CHARBACK, /* h */ 963c80476e4SDavid E. O'Brien V_INSERT, /* i */ 964c80476e4SDavid E. O'Brien F_DOWN_HIST, /* j */ 965c80476e4SDavid E. O'Brien F_UP_HIST, /* k */ 966c80476e4SDavid E. O'Brien F_CHARFWD, /* l */ 967c80476e4SDavid E. O'Brien F_UNASSIGNED, /* m */ 968c80476e4SDavid E. O'Brien V_RSRCH_FWD, /* n */ 969c80476e4SDavid E. O'Brien F_UNASSIGNED, /* o */ 970c80476e4SDavid E. O'Brien F_UNASSIGNED, /* p */ 971c80476e4SDavid E. O'Brien F_UNASSIGNED, /* q */ 972c80476e4SDavid E. O'Brien V_REPLONE, /* r */ 973c80476e4SDavid E. O'Brien V_SUBSTCHAR, /* s */ 974c80476e4SDavid E. O'Brien V_CHARTO_FWD, /* t */ 975c80476e4SDavid E. O'Brien V_UNDO, /* u */ 976c80476e4SDavid E. O'Brien F_EXPAND_VARS, /* v */ 977c80476e4SDavid E. O'Brien V_WORDBEGNEXT, /* w */ 978c80476e4SDavid E. O'Brien F_DELNEXT_EOF, /* x */ 979c80476e4SDavid E. O'Brien F_UNASSIGNED, /* y */ 980c80476e4SDavid E. O'Brien F_UNASSIGNED, /* z */ 981c80476e4SDavid E. O'Brien F_UNASSIGNED, /* { */ 982c80476e4SDavid E. O'Brien F_UNASSIGNED, /* | */ 983c80476e4SDavid E. O'Brien F_UNASSIGNED, /* } */ 984c80476e4SDavid E. O'Brien V_CHGCASE, /* ~ */ 985c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 986c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 987c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 988c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 989c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 990c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^D */ 991c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 992c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 993c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 994c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^H */ 995c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^I */ 996c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 997c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 998c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^L */ 999c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 1000c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 1001c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 1002c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 1003c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 1004c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 1005c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 1006c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 1007c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 1008c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 1009c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 1010c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 1011c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 1012c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Z */ 1013c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^[ */ 1014c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 1015c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 1016c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 1017c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^_ */ 1018c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-SPACE */ 1019c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-! */ 1020c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 1021c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 1022c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-$ */ 1023c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 1024c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 1025c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 1026c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 1027c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 1028c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 1029c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-+ */ 1030c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-, */ 1031c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-- */ 1032c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-. */ 1033c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-/ */ 1034c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-0 */ 1035c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-1 */ 1036c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-2 */ 1037c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-3 */ 1038c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-4 */ 1039c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-5 */ 1040c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-6 */ 1041c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-7 */ 1042c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-8 */ 1043c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-9 */ 1044c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 1045c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 1046c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 1047c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 1048c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-> */ 1049c80476e4SDavid E. O'Brien F_HELPME, /* M-? */ 1050c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-@ */ 1051c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-A */ 1052c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-B */ 1053c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-C */ 1054c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-D */ 1055c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 1056c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-F */ 1057c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 1058c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-H */ 1059c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 1060c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 1061c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 1062c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-L */ 1063c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 1064c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-N */ 1065c80476e4SDavid E. O'Brien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 1066c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-P */ 1067c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 1068c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-R */ 1069c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-S */ 1070c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 1071c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-U */ 1072c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 1073c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-W */ 1074c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 1075c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Y */ 1076c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 1077c80476e4SDavid E. O'Brien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 1078c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 1079c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 1080c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 1081c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-_ */ 1082c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 1083c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-a */ 1084c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-b */ 1085c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-c */ 1086c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-d */ 1087c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 1088c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-f */ 1089c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 1090c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-h */ 1091c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 1092c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 1093c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 1094c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-l */ 1095c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 1096c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-n */ 1097c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 1098c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-p */ 1099c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 1100c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-r */ 1101c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-s */ 1102c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 1103c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-u */ 1104c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 1105c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-w */ 1106c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 1107c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-y */ 1108c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 1109c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 1110c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 1111c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 1112c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 1113c80476e4SDavid E. O'Brien F_UNASSIGNED /* M-^? */ 1114c80476e4SDavid E. O'Brien }; 11153b6eaa7bSAndrey A. Chernov #endif /* WINNT_NATIVE */ 1116c80476e4SDavid E. O'Brien 1117c80476e4SDavid E. O'Brien 1118c80476e4SDavid E. O'Brien void 111945e5710bSMark Peek editinit(void) 1120c80476e4SDavid E. O'Brien { 1121c80476e4SDavid E. O'Brien struct KeyFuncs *f; 1122c80476e4SDavid E. O'Brien 11233b6eaa7bSAndrey A. Chernov #if defined(NLS_CATALOGS) || defined(WINNT_NATIVE) 1124c80476e4SDavid E. O'Brien int i; 1125c80476e4SDavid E. O'Brien 1126c80476e4SDavid E. O'Brien for (i = 0; i < F_NUM_FUNCNAMES; i++) 112745e5710bSMark Peek xfree((ptr_t)(intptr_t)FuncNames[i].desc); 1128c80476e4SDavid E. O'Brien #endif 1129c80476e4SDavid E. O'Brien 1130c80476e4SDavid E. O'Brien f = FuncNames; 1131c80476e4SDavid E. O'Brien f->name = "backward-char"; 1132c80476e4SDavid E. O'Brien f->func = F_CHARBACK; 1133c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 1, "Move back a character"); 1134c80476e4SDavid E. O'Brien 1135c80476e4SDavid E. O'Brien f++; 1136c80476e4SDavid E. O'Brien f->name = "backward-delete-char"; 1137c80476e4SDavid E. O'Brien f->func = F_DELPREV; 1138c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 2, "Delete the character behind cursor"); 1139c80476e4SDavid E. O'Brien 1140c80476e4SDavid E. O'Brien f++; 1141c80476e4SDavid E. O'Brien f->name = "backward-delete-word"; 1142c80476e4SDavid E. O'Brien f->func = F_DELWORDPREV; 1143c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 3, 1144c80476e4SDavid E. O'Brien "Cut from beginning of current word to cursor - saved in cut buffer"); 1145c80476e4SDavid E. O'Brien 1146c80476e4SDavid E. O'Brien f++; 1147c80476e4SDavid E. O'Brien f->name = "backward-kill-line"; 1148c80476e4SDavid E. O'Brien f->func = F_KILLBEG; 1149c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 4, 1150c80476e4SDavid E. O'Brien "Cut from beginning of line to cursor - save in cut buffer"); 1151c80476e4SDavid E. O'Brien 1152c80476e4SDavid E. O'Brien f++; 1153c80476e4SDavid E. O'Brien f->name = "backward-word"; 1154c80476e4SDavid E. O'Brien f->func = F_WORDBACK; 1155c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 5, "Move to beginning of current word"); 1156c80476e4SDavid E. O'Brien 1157c80476e4SDavid E. O'Brien f++; 1158c80476e4SDavid E. O'Brien f->name = "beginning-of-line"; 1159c80476e4SDavid E. O'Brien f->func = F_TOBEG; 1160c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 6, "Move to beginning of line"); 1161c80476e4SDavid E. O'Brien 1162c80476e4SDavid E. O'Brien f++; 1163c80476e4SDavid E. O'Brien f->name = "capitalize-word"; 1164c80476e4SDavid E. O'Brien f->func = F_CASECAPITAL; 1165c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 7, 1166c80476e4SDavid E. O'Brien "Capitalize the characters from cursor to end of current word"); 1167c80476e4SDavid E. O'Brien 1168c80476e4SDavid E. O'Brien f++; 1169c80476e4SDavid E. O'Brien f->name = "change-case"; 1170c80476e4SDavid E. O'Brien f->func = V_CHGCASE; 1171c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 8, 1172c80476e4SDavid E. O'Brien "Vi change case of character under cursor and advance one character"); 1173c80476e4SDavid E. O'Brien 1174c80476e4SDavid E. O'Brien f++; 1175c80476e4SDavid E. O'Brien f->name = "change-till-end-of-line"; 1176c80476e4SDavid E. O'Brien f->func = V_CHGTOEND; /* backward compat. */ 1177c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 9, "Vi change to end of line"); 1178c80476e4SDavid E. O'Brien 1179c80476e4SDavid E. O'Brien f++; 1180c80476e4SDavid E. O'Brien f->name = "clear-screen"; 1181c80476e4SDavid E. O'Brien f->func = F_CLEARDISP; 1182c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 10, "Clear screen leaving current line on top"); 1183c80476e4SDavid E. O'Brien 1184c80476e4SDavid E. O'Brien f++; 1185c80476e4SDavid E. O'Brien f->name = "complete-word"; 1186c80476e4SDavid E. O'Brien f->func = F_COMPLETE; 1187c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 11, "Complete current word"); 1188c80476e4SDavid E. O'Brien 1189c80476e4SDavid E. O'Brien f++; 1190c80476e4SDavid E. O'Brien f->name = "complete-word-fwd"; 1191c80476e4SDavid E. O'Brien f->func = F_COMPLETE_FWD; 1192c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 12, "Tab forward through files"); 1193c80476e4SDavid E. O'Brien 1194c80476e4SDavid E. O'Brien f++; 1195c80476e4SDavid E. O'Brien f->name = "complete-word-back"; 1196c80476e4SDavid E. O'Brien f->func = F_COMPLETE_BACK; 1197c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 13, "Tab backward through files"); 1198c80476e4SDavid E. O'Brien 1199c80476e4SDavid E. O'Brien f++; 1200c80476e4SDavid E. O'Brien f->name = "complete-word-raw"; 1201c80476e4SDavid E. O'Brien f->func = F_COMPLETE_ALL; 1202c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 14, 1203c80476e4SDavid E. O'Brien "Complete current word ignoring programmable completions"); 1204c80476e4SDavid E. O'Brien 1205c80476e4SDavid E. O'Brien f++; 1206c80476e4SDavid E. O'Brien f->name = "copy-prev-word"; 1207c80476e4SDavid E. O'Brien f->func = F_COPYPREV; 1208c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 15, "Copy current word to cursor"); 1209c80476e4SDavid E. O'Brien 1210c80476e4SDavid E. O'Brien f++; 1211c80476e4SDavid E. O'Brien f->name = "copy-region-as-kill"; 1212c80476e4SDavid E. O'Brien f->func = F_COPYREGION; 1213c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 16, "Copy area between mark and cursor to cut buffer"); 1214c80476e4SDavid E. O'Brien 1215c80476e4SDavid E. O'Brien f++; 1216c80476e4SDavid E. O'Brien f->name = "dabbrev-expand"; 1217c80476e4SDavid E. O'Brien f->func = F_DABBREV_EXPAND; 1218c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 17, 1219c80476e4SDavid E. O'Brien "Expand to preceding word for which this is a prefix"); 1220c80476e4SDavid E. O'Brien 1221c80476e4SDavid E. O'Brien f++; 1222c80476e4SDavid E. O'Brien f->name = "delete-char"; 1223c80476e4SDavid E. O'Brien f->func = F_DELNEXT; 1224c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 18, "Delete character under cursor"); 1225c80476e4SDavid E. O'Brien 1226c80476e4SDavid E. O'Brien f++; 1227c80476e4SDavid E. O'Brien f->name = "delete-char-or-eof"; 1228c80476e4SDavid E. O'Brien f->func = F_DELNEXT_EOF; 1229c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 19, 1230c80476e4SDavid E. O'Brien "Delete character under cursor or signal end of file on an empty line"); 1231c80476e4SDavid E. O'Brien 1232c80476e4SDavid E. O'Brien f++; 1233c80476e4SDavid E. O'Brien f->name = "delete-char-or-list"; 1234c80476e4SDavid E. O'Brien f->func = F_DELNEXT_LIST; 1235c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 20, 1236c80476e4SDavid E. O'Brien "Delete character under cursor or list completions if at end of line"); 1237c80476e4SDavid E. O'Brien 1238c80476e4SDavid E. O'Brien f++; 1239c80476e4SDavid E. O'Brien f->name = "delete-char-or-list-or-eof"; 1240c80476e4SDavid E. O'Brien f->func = F_DELNEXT_LIST_EOF; 1241c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 21, 1242c80476e4SDavid E. O'Brien "Delete character under cursor, list completions or signal end of file"); 1243c80476e4SDavid E. O'Brien 1244c80476e4SDavid E. O'Brien f++; 1245c80476e4SDavid E. O'Brien f->name = "delete-word"; 1246c80476e4SDavid E. O'Brien f->func = F_DELWORDNEXT; 1247c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 22, 1248c80476e4SDavid E. O'Brien "Cut from cursor to end of current word - save in cut buffer"); 1249c80476e4SDavid E. O'Brien 1250c80476e4SDavid E. O'Brien f++; 1251c80476e4SDavid E. O'Brien f->name = "digit"; 1252c80476e4SDavid E. O'Brien f->func = F_DIGIT; 1253c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 23, "Adds to argument if started or enters digit"); 1254c80476e4SDavid E. O'Brien 1255c80476e4SDavid E. O'Brien f++; 1256c80476e4SDavid E. O'Brien f->name = "digit-argument"; 1257c80476e4SDavid E. O'Brien f->func = F_ARGDIGIT; 1258c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 24, "Digit that starts argument"); 1259c80476e4SDavid E. O'Brien 1260c80476e4SDavid E. O'Brien f++; 1261c80476e4SDavid E. O'Brien f->name = "down-history"; 1262c80476e4SDavid E. O'Brien f->func = F_DOWN_HIST; 1263c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 25, "Move to next history line"); 1264c80476e4SDavid E. O'Brien 1265c80476e4SDavid E. O'Brien f++; 1266c80476e4SDavid E. O'Brien f->name = "downcase-word"; 1267c80476e4SDavid E. O'Brien f->func = F_CASELOWER; 1268c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 26, 1269c80476e4SDavid E. O'Brien "Lowercase the characters from cursor to end of current word"); 1270c80476e4SDavid E. O'Brien 1271c80476e4SDavid E. O'Brien f++; 1272c80476e4SDavid E. O'Brien f->name = "end-of-file"; 1273c80476e4SDavid E. O'Brien f->func = F_SEND_EOF; 1274c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 27, "Indicate end of file"); 1275c80476e4SDavid E. O'Brien 1276c80476e4SDavid E. O'Brien f++; 1277c80476e4SDavid E. O'Brien f->name = "end-of-line"; 1278c80476e4SDavid E. O'Brien f->func = F_TOEND; 1279c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 28, "Move cursor to end of line"); 1280c80476e4SDavid E. O'Brien 1281c80476e4SDavid E. O'Brien f++; 1282c80476e4SDavid E. O'Brien f->name = "exchange-point-and-mark"; 1283c80476e4SDavid E. O'Brien f->func = F_EXCHANGE_MARK; 1284c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 29, "Exchange the cursor and mark"); 1285c80476e4SDavid E. O'Brien 1286c80476e4SDavid E. O'Brien f++; 1287c80476e4SDavid E. O'Brien f->name = "expand-glob"; 1288c80476e4SDavid E. O'Brien f->func = F_EXPAND_GLOB; 1289c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 30, "Expand file name wildcards"); 1290c80476e4SDavid E. O'Brien 1291c80476e4SDavid E. O'Brien f++; 1292c80476e4SDavid E. O'Brien f->name = "expand-history"; 1293c80476e4SDavid E. O'Brien f->func = F_EXPAND_HISTORY; 1294c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 31, "Expand history escapes"); 1295c80476e4SDavid E. O'Brien 1296c80476e4SDavid E. O'Brien f++; 1297c80476e4SDavid E. O'Brien f->name = "expand-line"; 1298c80476e4SDavid E. O'Brien f->func = F_EXPAND; 1299c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 32, "Expand the history escapes in a line"); 1300c80476e4SDavid E. O'Brien 1301c80476e4SDavid E. O'Brien f++; 1302c80476e4SDavid E. O'Brien f->name = "expand-variables"; 1303c80476e4SDavid E. O'Brien f->func = F_EXPAND_VARS; 1304c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 33, "Expand variables"); 1305c80476e4SDavid E. O'Brien 1306c80476e4SDavid E. O'Brien f++; 1307c80476e4SDavid E. O'Brien f->name = "forward-char"; 1308c80476e4SDavid E. O'Brien f->func = F_CHARFWD; 1309c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 34, "Move forward one character"); 1310c80476e4SDavid E. O'Brien 1311c80476e4SDavid E. O'Brien f++; 1312c80476e4SDavid E. O'Brien f->name = "forward-word"; 1313c80476e4SDavid E. O'Brien f->func = F_WORDFWD; 1314c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 35, "Move forward to end of current word"); 1315c80476e4SDavid E. O'Brien 1316c80476e4SDavid E. O'Brien f++; 1317c80476e4SDavid E. O'Brien f->name = "gosmacs-transpose-chars"; 1318c80476e4SDavid E. O'Brien f->func = F_GCHARSWITCH; 1319c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 36, "Exchange the two characters before the cursor"); 1320c80476e4SDavid E. O'Brien 1321c80476e4SDavid E. O'Brien f++; 1322c80476e4SDavid E. O'Brien f->name = "history-search-backward"; 1323c80476e4SDavid E. O'Brien f->func = F_UP_SEARCH_HIST; 1324c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 37, 1325c80476e4SDavid E. O'Brien "Search in history backward for line beginning as current"); 1326c80476e4SDavid E. O'Brien 1327c80476e4SDavid E. O'Brien f++; 1328c80476e4SDavid E. O'Brien f->name = "history-search-forward"; 1329c80476e4SDavid E. O'Brien f->func = F_DOWN_SEARCH_HIST; 1330c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 38, 1331c80476e4SDavid E. O'Brien "Search in history forward for line beginning as current"); 1332c80476e4SDavid E. O'Brien 1333c80476e4SDavid E. O'Brien f++; 1334c80476e4SDavid E. O'Brien f->name = "insert-last-word"; 1335c80476e4SDavid E. O'Brien f->func = F_LAST_ITEM; 1336c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 39, "Insert last item of previous command"); 1337c80476e4SDavid E. O'Brien 1338c80476e4SDavid E. O'Brien f++; 1339c80476e4SDavid E. O'Brien f->name = "i-search-fwd"; 1340c80476e4SDavid E. O'Brien f->func = F_INC_FWD; 1341c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 40, "Incremental search forward"); 1342c80476e4SDavid E. O'Brien 1343c80476e4SDavid E. O'Brien f++; 1344c80476e4SDavid E. O'Brien f->name = "i-search-back"; 1345c80476e4SDavid E. O'Brien f->func = F_INC_BACK; 1346c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 41, "Incremental search backward"); 1347c80476e4SDavid E. O'Brien 1348c80476e4SDavid E. O'Brien f++; 1349c80476e4SDavid E. O'Brien f->name = "keyboard-quit"; 1350c80476e4SDavid E. O'Brien f->func = F_STARTOVER; 1351c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 42, "Clear line"); 1352c80476e4SDavid E. O'Brien 1353c80476e4SDavid E. O'Brien f++; 1354c80476e4SDavid E. O'Brien f->name = "kill-line"; 1355c80476e4SDavid E. O'Brien f->func = F_KILLEND; 1356c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 43, "Cut to end of line and save in cut buffer"); 1357c80476e4SDavid E. O'Brien 1358c80476e4SDavid E. O'Brien f++; 1359c80476e4SDavid E. O'Brien f->name = "kill-region"; 1360c80476e4SDavid E. O'Brien f->func = F_KILLREGION; 1361c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 44, 1362c80476e4SDavid E. O'Brien "Cut area between mark and cursor and save in cut buffer"); 1363c80476e4SDavid E. O'Brien 1364c80476e4SDavid E. O'Brien f++; 1365c80476e4SDavid E. O'Brien f->name = "kill-whole-line"; 1366c80476e4SDavid E. O'Brien f->func = F_KILLALL; 1367c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 45, "Cut the entire line and save in cut buffer"); 1368c80476e4SDavid E. O'Brien 1369c80476e4SDavid E. O'Brien f++; 1370c80476e4SDavid E. O'Brien f->name = "list-choices"; 1371c80476e4SDavid E. O'Brien f->func = F_LIST_CHOICES; 1372c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 46, "List choices for completion"); 1373c80476e4SDavid E. O'Brien 1374c80476e4SDavid E. O'Brien f++; 1375c80476e4SDavid E. O'Brien f->name = "list-choices-raw"; 1376c80476e4SDavid E. O'Brien f->func = F_LIST_ALL; 1377c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 47, 1378c80476e4SDavid E. O'Brien "List choices for completion overriding programmable completion"); 1379c80476e4SDavid E. O'Brien 1380c80476e4SDavid E. O'Brien f++; 1381c80476e4SDavid E. O'Brien f->name = "list-glob"; 1382c80476e4SDavid E. O'Brien f->func = F_LIST_GLOB; 1383c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 48, "List file name wildcard matches"); 1384c80476e4SDavid E. O'Brien 1385c80476e4SDavid E. O'Brien f++; 1386c80476e4SDavid E. O'Brien f->name = "list-or-eof"; 1387c80476e4SDavid E. O'Brien f->func = F_LIST_EOF; 1388c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 49, 1389c80476e4SDavid E. O'Brien "List choices for completion or indicate end of file if empty line"); 1390c80476e4SDavid E. O'Brien 1391c80476e4SDavid E. O'Brien f++; 1392c80476e4SDavid E. O'Brien f->name = "load-average"; 1393c80476e4SDavid E. O'Brien f->func = F_LOAD_AVERAGE; 1394c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 50, "Display load average and current process status"); 1395c80476e4SDavid E. O'Brien 1396c80476e4SDavid E. O'Brien f++; 1397c80476e4SDavid E. O'Brien f->name = "magic-space"; 1398c80476e4SDavid E. O'Brien f->func = F_MAGIC_SPACE; 1399c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 51, "Expand history escapes and insert a space"); 1400c80476e4SDavid E. O'Brien 1401c80476e4SDavid E. O'Brien f++; 1402c80476e4SDavid E. O'Brien f->name = "newline"; 1403c80476e4SDavid E. O'Brien f->func = F_NEWLINE; 1404c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 52, "Execute command"); 1405c80476e4SDavid E. O'Brien 1406c80476e4SDavid E. O'Brien f++; 140745e5710bSMark Peek f->name = "newline-and-hold"; 140845e5710bSMark Peek f->func = F_NEWLINE_HOLD; 140945e5710bSMark Peek f->desc = CSAVS(3, 122, "Execute command and keep current line"); 141045e5710bSMark Peek 141145e5710bSMark Peek f++; 141245e5710bSMark Peek f->name = "newline-and-down-history"; 141345e5710bSMark Peek f->func = F_NEWLINE_DOWN_HIST; 141445e5710bSMark Peek f->desc = CSAVS(3, 123, "Execute command and move to next history line"); 141545e5710bSMark Peek 141645e5710bSMark Peek f++; 1417c80476e4SDavid E. O'Brien f->name = "normalize-path"; 1418c80476e4SDavid E. O'Brien f->func = F_PATH_NORM; 1419c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 53, 1420c80476e4SDavid E. O'Brien "Expand pathnames, eliminating leading .'s and ..'s"); 1421c80476e4SDavid E. O'Brien 1422c80476e4SDavid E. O'Brien f++; 1423c80476e4SDavid E. O'Brien f->name = "normalize-command"; 1424c80476e4SDavid E. O'Brien f->func = F_COMMAND_NORM; 1425c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 54, 1426c80476e4SDavid E. O'Brien "Expand commands to the resulting pathname or alias"); 1427c80476e4SDavid E. O'Brien 1428c80476e4SDavid E. O'Brien f++; 1429c80476e4SDavid E. O'Brien f->name = "overwrite-mode"; 1430c80476e4SDavid E. O'Brien f->func = F_INSOVR; 1431c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 55, 1432c80476e4SDavid E. O'Brien "Switch from insert to overwrite mode or vice versa"); 1433c80476e4SDavid E. O'Brien 1434c80476e4SDavid E. O'Brien f++; 1435c80476e4SDavid E. O'Brien f->name = "prefix-meta"; 1436c80476e4SDavid E. O'Brien f->func = F_METANEXT; 1437c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 56, "Add 8th bit to next character typed"); 1438c80476e4SDavid E. O'Brien 1439c80476e4SDavid E. O'Brien f++; 1440c80476e4SDavid E. O'Brien f->name = "quoted-insert"; 1441c80476e4SDavid E. O'Brien f->func = F_QUOTE; 1442c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 57, "Add the next character typed to the line verbatim"); 1443c80476e4SDavid E. O'Brien 1444c80476e4SDavid E. O'Brien f++; 1445c80476e4SDavid E. O'Brien f->name = "redisplay"; 1446c80476e4SDavid E. O'Brien f->func = F_REDISP; 1447c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 58, "Redisplay everything"); 1448c80476e4SDavid E. O'Brien 1449c80476e4SDavid E. O'Brien f++; 1450c80476e4SDavid E. O'Brien f->name = "run-fg-editor"; 1451c80476e4SDavid E. O'Brien f->func = F_RUN_FG_EDITOR; 1452c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 59, "Restart stopped editor"); 1453c80476e4SDavid E. O'Brien 1454c80476e4SDavid E. O'Brien f++; 1455c80476e4SDavid E. O'Brien f->name = "run-help"; 1456c80476e4SDavid E. O'Brien f->func = F_HELPME; 1457c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 60, "Look for help on current command"); 1458c80476e4SDavid E. O'Brien 1459c80476e4SDavid E. O'Brien f++; 1460c80476e4SDavid E. O'Brien f->name = "self-insert-command"; 1461c80476e4SDavid E. O'Brien f->func = F_INSERT; 1462c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 61, "This character is added to the line"); 1463c80476e4SDavid E. O'Brien 1464c80476e4SDavid E. O'Brien f++; 1465c80476e4SDavid E. O'Brien f->name = "sequence-lead-in"; 1466c80476e4SDavid E. O'Brien f->func = F_XKEY; 1467c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 62, 1468c80476e4SDavid E. O'Brien "This character is the first in a character sequence"); 1469c80476e4SDavid E. O'Brien 1470c80476e4SDavid E. O'Brien f++; 1471c80476e4SDavid E. O'Brien f->name = "set-mark-command"; 1472c80476e4SDavid E. O'Brien f->func = F_SET_MARK; 1473c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 63, "Set the mark at cursor"); 1474c80476e4SDavid E. O'Brien 1475c80476e4SDavid E. O'Brien f++; 1476c80476e4SDavid E. O'Brien f->name = "spell-word"; 1477c80476e4SDavid E. O'Brien f->func = F_CORRECT; 1478c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 64, "Correct the spelling of current word"); 1479c80476e4SDavid E. O'Brien 1480c80476e4SDavid E. O'Brien f++; 1481c80476e4SDavid E. O'Brien f->name = "spell-line"; 1482c80476e4SDavid E. O'Brien f->func = F_CORRECT_L; 1483c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 65, "Correct the spelling of entire line"); 1484c80476e4SDavid E. O'Brien 1485c80476e4SDavid E. O'Brien f++; 1486c80476e4SDavid E. O'Brien f->name = "stuff-char"; 1487c80476e4SDavid E. O'Brien f->func = F_STUFF_CHAR; 1488c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 66, "Send character to tty in cooked mode"); 1489c80476e4SDavid E. O'Brien 1490c80476e4SDavid E. O'Brien f++; 1491c80476e4SDavid E. O'Brien f->name = "toggle-literal-history"; 1492c80476e4SDavid E. O'Brien f->func = F_TOGGLE_HIST; 1493c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 67, 1494c80476e4SDavid E. O'Brien "Toggle between literal and lexical current history line"); 1495c80476e4SDavid E. O'Brien 1496c80476e4SDavid E. O'Brien f++; 1497c80476e4SDavid E. O'Brien f->name = "transpose-chars"; 1498c80476e4SDavid E. O'Brien f->func = F_CHARSWITCH; 1499c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 68, 1500c80476e4SDavid E. O'Brien "Exchange the character to the left of the cursor with the one under"); 1501c80476e4SDavid E. O'Brien 1502c80476e4SDavid E. O'Brien f++; 1503c80476e4SDavid E. O'Brien f->name = "transpose-gosling"; 1504c80476e4SDavid E. O'Brien f->func = F_GCHARSWITCH; 1505c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 69, "Exchange the two characters before the cursor"); 1506c80476e4SDavid E. O'Brien 1507c80476e4SDavid E. O'Brien f++; 1508c80476e4SDavid E. O'Brien f->name = "tty-dsusp"; 1509c80476e4SDavid E. O'Brien f->func = F_TTY_DSUSP; 1510c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 70, "Tty delayed suspend character"); 1511c80476e4SDavid E. O'Brien 1512c80476e4SDavid E. O'Brien f++; 1513c80476e4SDavid E. O'Brien f->name = "tty-flush-output"; 1514c80476e4SDavid E. O'Brien f->func = F_TTY_FLUSHO; 1515c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 71, "Tty flush output character"); 1516c80476e4SDavid E. O'Brien 1517c80476e4SDavid E. O'Brien f++; 1518c80476e4SDavid E. O'Brien f->name = "tty-sigintr"; 1519c80476e4SDavid E. O'Brien f->func = F_TTY_INT; 1520c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 72, "Tty interrupt character"); 1521c80476e4SDavid E. O'Brien 1522c80476e4SDavid E. O'Brien f++; 1523c80476e4SDavid E. O'Brien f->name = "tty-sigquit"; 1524c80476e4SDavid E. O'Brien f->func = F_TTY_QUIT; 1525c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 73, "Tty quit character"); 1526c80476e4SDavid E. O'Brien 1527c80476e4SDavid E. O'Brien f++; 1528c80476e4SDavid E. O'Brien f->name = "tty-sigtsusp"; 1529c80476e4SDavid E. O'Brien f->func = F_TTY_TSUSP; 1530c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 74, "Tty suspend character"); 1531c80476e4SDavid E. O'Brien 1532c80476e4SDavid E. O'Brien f++; 1533c80476e4SDavid E. O'Brien f->name = "tty-start-output"; 1534c80476e4SDavid E. O'Brien f->func = F_TTY_STARTO; 1535c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 75, "Tty allow output character"); 1536c80476e4SDavid E. O'Brien 1537c80476e4SDavid E. O'Brien f++; 1538c80476e4SDavid E. O'Brien f->name = "tty-stop-output"; 1539c80476e4SDavid E. O'Brien f->func = F_TTY_STOPO; 1540c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 76, "Tty disallow output character"); 1541c80476e4SDavid E. O'Brien 1542c80476e4SDavid E. O'Brien f++; 1543c80476e4SDavid E. O'Brien f->name = "undefined-key"; 1544c80476e4SDavid E. O'Brien f->func = F_UNASSIGNED; 1545c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 77, "Indicates unbound character"); 1546c80476e4SDavid E. O'Brien 1547c80476e4SDavid E. O'Brien f++; 1548c80476e4SDavid E. O'Brien f->name = "universal-argument"; 1549c80476e4SDavid E. O'Brien f->func = F_ARGFOUR; 1550c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 78, "Emacs universal argument (argument times 4)"); 1551c80476e4SDavid E. O'Brien 1552c80476e4SDavid E. O'Brien f++; 1553c80476e4SDavid E. O'Brien f->name = "up-history"; 1554c80476e4SDavid E. O'Brien f->func = F_UP_HIST; 1555c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 79, "Move to previous history line"); 1556c80476e4SDavid E. O'Brien 1557c80476e4SDavid E. O'Brien f++; 1558c80476e4SDavid E. O'Brien f->name = "upcase-word"; 1559c80476e4SDavid E. O'Brien f->func = F_CASEUPPER; 1560c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 80, 1561c80476e4SDavid E. O'Brien "Uppercase the characters from cursor to end of current word"); 1562c80476e4SDavid E. O'Brien 1563c80476e4SDavid E. O'Brien f++; 1564c80476e4SDavid E. O'Brien f->name = "vi-beginning-of-next-word"; 1565c80476e4SDavid E. O'Brien f->func = V_WORDBEGNEXT; 1566c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 81, "Vi goto the beginning of next word"); 1567c80476e4SDavid E. O'Brien 1568c80476e4SDavid E. O'Brien f++; 1569c80476e4SDavid E. O'Brien f->name = "vi-add"; 1570c80476e4SDavid E. O'Brien f->func = V_ADD; 1571c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 82, "Vi enter insert mode after the cursor"); 1572c80476e4SDavid E. O'Brien 1573c80476e4SDavid E. O'Brien f++; 1574c80476e4SDavid E. O'Brien f->name = "vi-add-at-eol"; 1575c80476e4SDavid E. O'Brien f->func = V_ADDEND; 1576c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 83, "Vi enter insert mode at end of line"); 1577c80476e4SDavid E. O'Brien 1578c80476e4SDavid E. O'Brien f++; 1579c80476e4SDavid E. O'Brien f->name = "vi-chg-case"; 1580c80476e4SDavid E. O'Brien f->func = V_CHGCASE; 1581c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 84, 1582c80476e4SDavid E. O'Brien "Vi change case of character under cursor and advance one character"); 1583c80476e4SDavid E. O'Brien 1584c80476e4SDavid E. O'Brien f++; 1585c80476e4SDavid E. O'Brien f->name = "vi-chg-meta"; 1586c80476e4SDavid E. O'Brien f->func = V_CHGMETA; 1587c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 85, "Vi change prefix command"); 1588c80476e4SDavid E. O'Brien 1589c80476e4SDavid E. O'Brien f++; 1590c80476e4SDavid E. O'Brien f->name = "vi-chg-to-eol"; 1591c80476e4SDavid E. O'Brien f->func = V_CHGTOEND; 1592c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 86, "Vi change to end of line"); 1593c80476e4SDavid E. O'Brien 1594c80476e4SDavid E. O'Brien f++; 1595c80476e4SDavid E. O'Brien f->name = "vi-cmd-mode"; 1596c80476e4SDavid E. O'Brien f->func = V_CMD_MODE; 1597c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 87, 1598c80476e4SDavid E. O'Brien "Enter vi command mode (use alternative key bindings)"); 1599c80476e4SDavid E. O'Brien 1600c80476e4SDavid E. O'Brien f++; 1601c80476e4SDavid E. O'Brien f->name = "vi-cmd-mode-complete"; 1602c80476e4SDavid E. O'Brien f->func = V_CM_COMPLETE; 1603c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 88, "Vi command mode complete current word"); 1604c80476e4SDavid E. O'Brien 1605c80476e4SDavid E. O'Brien f++; 1606c80476e4SDavid E. O'Brien f->name = "vi-delprev"; 1607c80476e4SDavid E. O'Brien f->func = V_DELPREV; 1608c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 89, "Vi move to previous character (backspace)"); 1609c80476e4SDavid E. O'Brien 1610c80476e4SDavid E. O'Brien f++; 1611c80476e4SDavid E. O'Brien f->name = "vi-delmeta"; 1612c80476e4SDavid E. O'Brien f->func = V_DELMETA; 1613c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 90, "Vi delete prefix command"); 1614c80476e4SDavid E. O'Brien 1615c80476e4SDavid E. O'Brien f++; 1616c80476e4SDavid E. O'Brien f->name = "vi-endword"; 1617c80476e4SDavid E. O'Brien f->func = V_ENDWORD; 1618c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 91, 1619c80476e4SDavid E. O'Brien "Vi move to the end of the current space delimited word"); 1620c80476e4SDavid E. O'Brien 1621c80476e4SDavid E. O'Brien f++; 1622c80476e4SDavid E. O'Brien f->name = "vi-eword"; 1623c80476e4SDavid E. O'Brien f->func = V_EWORD; 1624c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 92, "Vi move to the end of the current word"); 1625c80476e4SDavid E. O'Brien 1626c80476e4SDavid E. O'Brien f++; 1627c80476e4SDavid E. O'Brien f->name = "vi-char-back"; 1628c80476e4SDavid E. O'Brien f->func = V_CHAR_BACK; 1629c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 93, "Vi move to the character specified backward"); 1630c80476e4SDavid E. O'Brien 1631c80476e4SDavid E. O'Brien f++; 1632c80476e4SDavid E. O'Brien f->name = "vi-char-fwd"; 1633c80476e4SDavid E. O'Brien f->func = V_CHAR_FWD; 1634c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 94, "Vi move to the character specified forward"); 1635c80476e4SDavid E. O'Brien 1636c80476e4SDavid E. O'Brien f++; 1637c80476e4SDavid E. O'Brien f->name = "vi-charto-back"; 1638c80476e4SDavid E. O'Brien f->func = V_CHARTO_BACK; 1639c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 95, "Vi move up to the character specified backward"); 1640c80476e4SDavid E. O'Brien 1641c80476e4SDavid E. O'Brien f++; 1642c80476e4SDavid E. O'Brien f->name = "vi-charto-fwd"; 1643c80476e4SDavid E. O'Brien f->func = V_CHARTO_FWD; 1644c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 96, "Vi move up to the character specified forward"); 1645c80476e4SDavid E. O'Brien 1646c80476e4SDavid E. O'Brien f++; 1647c80476e4SDavid E. O'Brien f->name = "vi-insert"; 1648c80476e4SDavid E. O'Brien f->func = V_INSERT; 1649c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 97, "Enter vi insert mode"); 1650c80476e4SDavid E. O'Brien 1651c80476e4SDavid E. O'Brien f++; 1652c80476e4SDavid E. O'Brien f->name = "vi-insert-at-bol"; 1653c80476e4SDavid E. O'Brien f->func = V_INSBEG; 1654c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 98, "Enter vi insert mode at beginning of line"); 1655c80476e4SDavid E. O'Brien 1656c80476e4SDavid E. O'Brien f++; 1657c80476e4SDavid E. O'Brien f->name = "vi-repeat-char-fwd"; 1658c80476e4SDavid E. O'Brien f->func = V_RCHAR_FWD; 1659c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 99, 1660c80476e4SDavid E. O'Brien "Vi repeat current character search in the same search direction"); 1661c80476e4SDavid E. O'Brien 1662c80476e4SDavid E. O'Brien f++; 1663c80476e4SDavid E. O'Brien f->name = "vi-repeat-char-back"; 1664c80476e4SDavid E. O'Brien f->func = V_RCHAR_BACK; 1665c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 100, 1666c80476e4SDavid E. O'Brien "Vi repeat current character search in the opposite search direction"); 1667c80476e4SDavid E. O'Brien 1668c80476e4SDavid E. O'Brien f++; 1669c80476e4SDavid E. O'Brien f->name = "vi-repeat-search-fwd"; 1670c80476e4SDavid E. O'Brien f->func = V_RSRCH_FWD; 1671c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 101, 1672c80476e4SDavid E. O'Brien "Vi repeat current search in the same search direction"); 1673c80476e4SDavid E. O'Brien 1674c80476e4SDavid E. O'Brien f++; 1675c80476e4SDavid E. O'Brien f->name = "vi-repeat-search-back"; 1676c80476e4SDavid E. O'Brien f->func = V_RSRCH_BACK; 1677c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 102, 1678c80476e4SDavid E. O'Brien "Vi repeat current search in the opposite search direction"); 1679c80476e4SDavid E. O'Brien 1680c80476e4SDavid E. O'Brien f++; 1681c80476e4SDavid E. O'Brien f->name = "vi-replace-char"; 1682c80476e4SDavid E. O'Brien f->func = V_REPLONE; 1683c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 103, 1684c80476e4SDavid E. O'Brien "Vi replace character under the cursor with the next character typed"); 1685c80476e4SDavid E. O'Brien 1686c80476e4SDavid E. O'Brien f++; 1687c80476e4SDavid E. O'Brien f->name = "vi-replace-mode"; 1688c80476e4SDavid E. O'Brien f->func = V_REPLMODE; 1689c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 104, "Vi replace mode"); 1690c80476e4SDavid E. O'Brien 1691c80476e4SDavid E. O'Brien f++; 1692c80476e4SDavid E. O'Brien f->name = "vi-search-back"; 1693c80476e4SDavid E. O'Brien f->func = V_USH_META; 1694c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 105, "Vi search history backward"); 1695c80476e4SDavid E. O'Brien 1696c80476e4SDavid E. O'Brien f++; 1697c80476e4SDavid E. O'Brien f->name = "vi-search-fwd"; 1698c80476e4SDavid E. O'Brien f->func = V_DSH_META; 1699c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 106, "Vi search history forward"); 1700c80476e4SDavid E. O'Brien 1701c80476e4SDavid E. O'Brien f++; 1702c80476e4SDavid E. O'Brien f->name = "vi-substitute-char"; 1703c80476e4SDavid E. O'Brien f->func = V_SUBSTCHAR; 1704c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 107, 1705c80476e4SDavid E. O'Brien "Vi replace character under the cursor and enter insert mode"); 1706c80476e4SDavid E. O'Brien 1707c80476e4SDavid E. O'Brien f++; 1708c80476e4SDavid E. O'Brien f->name = "vi-substitute-line"; 1709c80476e4SDavid E. O'Brien f->func = V_SUBSTLINE; 1710c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 108, "Vi replace entire line"); 1711c80476e4SDavid E. O'Brien 1712c80476e4SDavid E. O'Brien f++; 1713c80476e4SDavid E. O'Brien f->name = "vi-word-back"; 1714c80476e4SDavid E. O'Brien f->func = V_WORDBACK; 1715c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 109, "Vi move to the previous word"); 1716c80476e4SDavid E. O'Brien 1717c80476e4SDavid E. O'Brien f++; 1718c80476e4SDavid E. O'Brien f->name = "vi-word-fwd"; 1719c80476e4SDavid E. O'Brien f->func = V_WORDFWD; 1720c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 110, "Vi move to the next word"); 1721c80476e4SDavid E. O'Brien 1722c80476e4SDavid E. O'Brien f++; 1723c80476e4SDavid E. O'Brien f->name = "vi-undo"; 1724c80476e4SDavid E. O'Brien f->func = V_UNDO; 1725c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 111, "Vi undo last change"); 1726c80476e4SDavid E. O'Brien 1727c80476e4SDavid E. O'Brien f++; 1728c80476e4SDavid E. O'Brien f->name = "vi-zero"; 1729c80476e4SDavid E. O'Brien f->func = V_ZERO; 1730c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 112, "Vi goto the beginning of line"); 1731c80476e4SDavid E. O'Brien 1732c80476e4SDavid E. O'Brien f++; 1733c80476e4SDavid E. O'Brien f->name = "which-command"; 1734c80476e4SDavid E. O'Brien f->func = F_WHICH; 1735c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 113, "Perform which of current command"); 1736c80476e4SDavid E. O'Brien 1737c80476e4SDavid E. O'Brien f++; 1738c80476e4SDavid E. O'Brien f->name = "yank"; 1739c80476e4SDavid E. O'Brien f->func = F_YANK_KILL; 1740c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 114, "Paste cut buffer at cursor position"); 1741c80476e4SDavid E. O'Brien 1742c80476e4SDavid E. O'Brien f++; 17436767bd61SMark Peek f->name = "yank-pop"; 17446767bd61SMark Peek f->func = F_YANK_POP; 17456767bd61SMark Peek f->desc = CSAVS(3, 115, 17466767bd61SMark Peek "Replace just-yanked text with yank from earlier kill"); 17476767bd61SMark Peek 17486767bd61SMark Peek f++; 1749c80476e4SDavid E. O'Brien f->name = "e_dosify_next"; 1750c80476e4SDavid E. O'Brien f->func = F_DOSIFY_NEXT; 17516767bd61SMark Peek f->desc = CSAVS(3, 118, 17526767bd61SMark Peek "(WIN32 only) Convert each '/' in next word to '\\\\'"); 17536767bd61SMark Peek 1754c80476e4SDavid E. O'Brien f++; 1755c80476e4SDavid E. O'Brien f->name = "e_dosify_prev"; 1756c80476e4SDavid E. O'Brien f->func = F_DOSIFY_PREV; 17576767bd61SMark Peek f->desc = CSAVS(3, 119, 17586767bd61SMark Peek "(WIN32 only) Convert each '/' in previous word to '\\\\'"); 17596767bd61SMark Peek 17603b6eaa7bSAndrey A. Chernov f++; 17613b6eaa7bSAndrey A. Chernov f->name = "e_page_up"; 17623b6eaa7bSAndrey A. Chernov f->func = F_PAGE_UP; 17636767bd61SMark Peek f->desc = CSAVS(3, 120, "(WIN32 only) Page visible console window up"); 17646767bd61SMark Peek 17653b6eaa7bSAndrey A. Chernov f++; 17663b6eaa7bSAndrey A. Chernov f->name = "e_page_down"; 17673b6eaa7bSAndrey A. Chernov f->func = F_PAGE_DOWN; 17686767bd61SMark Peek f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down"); 1769c80476e4SDavid E. O'Brien 1770c80476e4SDavid E. O'Brien f++; 1771c80476e4SDavid E. O'Brien f->name = NULL; 1772c80476e4SDavid E. O'Brien f->func = 0; 1773c80476e4SDavid E. O'Brien f->desc = NULL; 1774c80476e4SDavid E. O'Brien 1775c80476e4SDavid E. O'Brien f++; 1776c80476e4SDavid E. O'Brien if (f - FuncNames != F_NUM_FUNCNAMES) 1777c80476e4SDavid E. O'Brien abort(); 1778c80476e4SDavid E. O'Brien } 1779c80476e4SDavid E. O'Brien 1780c80476e4SDavid E. O'Brien #ifdef DEBUG_EDIT 1781c80476e4SDavid E. O'Brien void 178245e5710bSMark Peek CheckMaps(void) 1783c80476e4SDavid E. O'Brien { /* check the size of the key maps */ 178419d2e3deSDmitry Chagin size_t c1 = NT_NUM_KEYS * sizeof(KEYCMD); 1785c80476e4SDavid E. O'Brien 178619d2e3deSDmitry Chagin if (sizeof(CcKeyMap) != c1) 178719d2e3deSDmitry Chagin xprintf("CcKeyMap should be %u entries, but is %zu.\r\n", 178819d2e3deSDmitry Chagin NT_NUM_KEYS, sizeof(CcKeyMap) / sizeof(KEYCMD)); 1789c80476e4SDavid E. O'Brien 179019d2e3deSDmitry Chagin if (sizeof(CcAltMap) != c1) 179119d2e3deSDmitry Chagin xprintf("CcAltMap should be %u entries, but is %zu.\r\n", 179219d2e3deSDmitry Chagin NT_NUM_KEYS, sizeof(CcAltMap) / sizeof(KEYCMD)); 1793c80476e4SDavid E. O'Brien 179419d2e3deSDmitry Chagin if (sizeof(CcEmacsMap) != c1) 179519d2e3deSDmitry Chagin xprintf("CcEmacsMap should be %u entries, but is %zu.\r\n", 179619d2e3deSDmitry Chagin NT_NUM_KEYS, sizeof(CcEmacsMap) / sizeof(KEYCMD)); 1797c80476e4SDavid E. O'Brien 179819d2e3deSDmitry Chagin if (sizeof(CcViMap) != c1) 179919d2e3deSDmitry Chagin xprintf("CcViMap should be %u entries, but is %zu.\r\n", 180019d2e3deSDmitry Chagin NT_NUM_KEYS, sizeof(CcViMap) / sizeof(KEYCMD)); 1801c80476e4SDavid E. O'Brien 180219d2e3deSDmitry Chagin if (sizeof(CcViCmdMap) != c1) 180319d2e3deSDmitry Chagin xprintf("CcViCmdMap should be %u entries, but is %zu.\r\n", 180419d2e3deSDmitry Chagin NT_NUM_KEYS, sizeof(CcViCmdMap) / sizeof(KEYCMD)); 1805c80476e4SDavid E. O'Brien } 1806c80476e4SDavid E. O'Brien 1807c80476e4SDavid E. O'Brien #endif 1808c80476e4SDavid E. O'Brien 180923338178SMark Peek int MapsAreInited = 0; 181023338178SMark Peek int NLSMapsAreInited = 0; 181123338178SMark Peek int NoNLSRebind; 1812c80476e4SDavid E. O'Brien 1813c80476e4SDavid E. O'Brien void 181445e5710bSMark Peek ed_InitNLSMaps(void) 1815c80476e4SDavid E. O'Brien { 181623338178SMark Peek int i; 1817c80476e4SDavid E. O'Brien 1818c80476e4SDavid E. O'Brien if (AsciiOnly) 1819c80476e4SDavid E. O'Brien return; 1820c80476e4SDavid E. O'Brien if (NoNLSRebind) 1821c80476e4SDavid E. O'Brien return; 1822c80476e4SDavid E. O'Brien for (i = 0200; i <= 0377; i++) { 182323338178SMark Peek if (Isprint(CTL_ESC(i))) { 182423338178SMark Peek CcKeyMap[CTL_ESC(i)] = F_INSERT; 1825c80476e4SDavid E. O'Brien } 1826c80476e4SDavid E. O'Brien } 1827c80476e4SDavid E. O'Brien NLSMapsAreInited = 1; 1828c80476e4SDavid E. O'Brien } 1829c80476e4SDavid E. O'Brien 1830c80476e4SDavid E. O'Brien static void 183145e5710bSMark Peek ed_InitMetaBindings(void) 1832c80476e4SDavid E. O'Brien { 1833c80476e4SDavid E. O'Brien Char buf[3]; 1834c80476e4SDavid E. O'Brien int i; 1835c80476e4SDavid E. O'Brien CStr cstr; 1836c80476e4SDavid E. O'Brien KEYCMD *map; 1837c80476e4SDavid E. O'Brien 1838c80476e4SDavid E. O'Brien map = CcKeyMap; 183923338178SMark Peek for (i = 0; i <= 0377 && CcKeyMap[CTL_ESC(i)] != F_METANEXT; i++) 1840c80476e4SDavid E. O'Brien continue; 1841c80476e4SDavid E. O'Brien if (i > 0377) { 184223338178SMark Peek for (i = 0; i <= 0377 && CcAltMap[CTL_ESC(i)] != F_METANEXT; i++) 1843c80476e4SDavid E. O'Brien continue; 1844c80476e4SDavid E. O'Brien if (i > 0377) { 184523338178SMark Peek i = '\033'; 1846c80476e4SDavid E. O'Brien if (VImode) 1847c80476e4SDavid E. O'Brien map = CcAltMap; 1848c80476e4SDavid E. O'Brien } 1849c80476e4SDavid E. O'Brien else { 1850c80476e4SDavid E. O'Brien map = CcAltMap; 1851c80476e4SDavid E. O'Brien } 1852c80476e4SDavid E. O'Brien } 185323338178SMark Peek buf[0] = (Char)CTL_ESC(i); 1854c80476e4SDavid E. O'Brien buf[2] = 0; 1855c80476e4SDavid E. O'Brien cstr.buf = buf; 1856c80476e4SDavid E. O'Brien cstr.len = 2; 1857c80476e4SDavid E. O'Brien for (i = 0200; i <= 0377; i++) { 185823338178SMark Peek if (map[CTL_ESC(i)] != F_INSERT && map[CTL_ESC(i)] != F_UNASSIGNED && map[CTL_ESC(i)] != F_XKEY) { 185923338178SMark Peek buf[1] = CTL_ESC(i & ASCII); 186023338178SMark Peek AddXkey(&cstr, XmapCmd((int) map[CTL_ESC(i)]), XK_CMD); 1861c80476e4SDavid E. O'Brien } 1862c80476e4SDavid E. O'Brien } 1863c80476e4SDavid E. O'Brien map[buf[0]] = F_XKEY; 1864c80476e4SDavid E. O'Brien } 1865c80476e4SDavid E. O'Brien 1866c80476e4SDavid E. O'Brien void 186745e5710bSMark Peek ed_InitVIMaps(void) 1868c80476e4SDavid E. O'Brien { 186923338178SMark Peek int i; 1870c80476e4SDavid E. O'Brien 1871c80476e4SDavid E. O'Brien VImode = 1; 187219d2e3deSDmitry Chagin setNS(STRvimode); 187319d2e3deSDmitry Chagin update_wordchars(); 187419d2e3deSDmitry Chagin 1875c80476e4SDavid E. O'Brien ResetXmap(); 1876c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1877c80476e4SDavid E. O'Brien CcKeyMap[i] = CcViMap[i]; 1878c80476e4SDavid E. O'Brien CcAltMap[i] = CcViCmdMap[i]; 1879c80476e4SDavid E. O'Brien } 1880c80476e4SDavid E. O'Brien ed_InitMetaBindings(); 1881c80476e4SDavid E. O'Brien ed_InitNLSMaps(); 1882c80476e4SDavid E. O'Brien ResetArrowKeys(); 1883c80476e4SDavid E. O'Brien BindArrowKeys(); 1884c80476e4SDavid E. O'Brien } 1885c80476e4SDavid E. O'Brien 1886c80476e4SDavid E. O'Brien void 188745e5710bSMark Peek ed_InitEmacsMaps(void) 1888c80476e4SDavid E. O'Brien { 1889c80476e4SDavid E. O'Brien int i; 1890c80476e4SDavid E. O'Brien Char buf[3]; 1891c80476e4SDavid E. O'Brien CStr cstr; 1892c80476e4SDavid E. O'Brien cstr.buf = buf; 1893c80476e4SDavid E. O'Brien cstr.len = 2; 1894c80476e4SDavid E. O'Brien 1895c80476e4SDavid E. O'Brien VImode = 0; 189619d2e3deSDmitry Chagin if (adrof(STRvimode)) 189719d2e3deSDmitry Chagin unsetv(STRvimode); 189819d2e3deSDmitry Chagin update_wordchars(); 189919d2e3deSDmitry Chagin 1900c80476e4SDavid E. O'Brien ResetXmap(); 1901c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1902c80476e4SDavid E. O'Brien CcKeyMap[i] = CcEmacsMap[i]; 1903c80476e4SDavid E. O'Brien CcAltMap[i] = F_UNASSIGNED; 1904c80476e4SDavid E. O'Brien } 1905c80476e4SDavid E. O'Brien ed_InitMetaBindings(); 1906c80476e4SDavid E. O'Brien ed_InitNLSMaps(); 1907c80476e4SDavid E. O'Brien buf[0] = CTL_ESC('\030'); 1908c80476e4SDavid E. O'Brien buf[2] = 0; 1909c80476e4SDavid E. O'Brien buf[1] = CTL_ESC('\030'); 1910c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXCHANGE_MARK), XK_CMD); 1911c80476e4SDavid E. O'Brien buf[1] = '*'; 1912c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXPAND_GLOB), XK_CMD); 1913c80476e4SDavid E. O'Brien buf[1] = '$'; 1914c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXPAND_VARS), XK_CMD); 1915c80476e4SDavid E. O'Brien buf[1] = 'G'; 1916c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 1917c80476e4SDavid E. O'Brien buf[1] = 'g'; 1918c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 1919c80476e4SDavid E. O'Brien buf[1] = 'n'; 1920c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 1921c80476e4SDavid E. O'Brien buf[1] = 'N'; 1922c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 1923c80476e4SDavid E. O'Brien buf[1] = '?'; 1924c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_COMMAND_NORM), XK_CMD); 1925c80476e4SDavid E. O'Brien buf[1] = '\t'; 1926c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_COMPLETE_ALL), XK_CMD); 1927c80476e4SDavid E. O'Brien buf[1] = CTL_ESC('\004'); /* ^D */ 1928c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_ALL), XK_CMD); 1929c80476e4SDavid E. O'Brien ResetArrowKeys(); 1930c80476e4SDavid E. O'Brien BindArrowKeys(); 1931c80476e4SDavid E. O'Brien } 1932c80476e4SDavid E. O'Brien 1933c80476e4SDavid E. O'Brien void 193445e5710bSMark Peek ed_InitMaps(void) 1935c80476e4SDavid E. O'Brien { 1936c80476e4SDavid E. O'Brien if (MapsAreInited) 1937c80476e4SDavid E. O'Brien return; 19383b6eaa7bSAndrey A. Chernov #ifndef IS_ASCII 1939c80476e4SDavid E. O'Brien /* This machine has an EBCDIC charset. The assumptions made for the 1940c80476e4SDavid E. O'Brien * initialized keymaps therefore don't hold, since they are based on 1941c80476e4SDavid E. O'Brien * ASCII (or ISO8859-1). 1942c80476e4SDavid E. O'Brien * Here, we do a one-time transformation to EBCDIC environment 1943c80476e4SDavid E. O'Brien * for the key initializations. 1944c80476e4SDavid E. O'Brien */ 1945c80476e4SDavid E. O'Brien { 1946c80476e4SDavid E. O'Brien KEYCMD temp[NT_NUM_KEYS]; 1947c80476e4SDavid E. O'Brien static KEYCMD *const list[3] = { CcEmacsMap, CcViMap, CcViCmdMap }; 194823338178SMark Peek int i, table; 1949c80476e4SDavid E. O'Brien 1950c80476e4SDavid E. O'Brien for (table=0; table<3; ++table) 1951c80476e4SDavid E. O'Brien { 1952c80476e4SDavid E. O'Brien /* copy ASCII ordered map to temp table */ 1953c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1954c80476e4SDavid E. O'Brien temp[i] = list[table][i]; 1955c80476e4SDavid E. O'Brien } 1956c80476e4SDavid E. O'Brien /* write back as EBCDIC ordered map */ 1957c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1958c80476e4SDavid E. O'Brien list[table][_toebcdic[i]] = temp[i]; 1959c80476e4SDavid E. O'Brien } 1960c80476e4SDavid E. O'Brien } 1961c80476e4SDavid E. O'Brien } 19623b6eaa7bSAndrey A. Chernov #endif /* !IS_ASCII */ 1963c80476e4SDavid E. O'Brien 1964c80476e4SDavid E. O'Brien #ifdef VIDEFAULT 1965c80476e4SDavid E. O'Brien ed_InitVIMaps(); 1966c80476e4SDavid E. O'Brien #else 1967c80476e4SDavid E. O'Brien ed_InitEmacsMaps(); 1968c80476e4SDavid E. O'Brien #endif 1969c80476e4SDavid E. O'Brien 1970c80476e4SDavid E. O'Brien MapsAreInited = 1; 1971c80476e4SDavid E. O'Brien } 1972