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