129301572SMark Peek /* $Header: /src/pub/tcsh/ed.defns.c,v 3.39 2002/03/08 17:36:45 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 3529301572SMark Peek RCSID("$Id: ed.defns.c,v 3.39 2002/03/08 17:36:45 christos Exp $") 36c80476e4SDavid E. O'Brien 37c80476e4SDavid E. O'Brien #include "ed.h" 38c80476e4SDavid E. O'Brien 39c80476e4SDavid E. O'Brien static void ed_InitMetaBindings __P((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 282c80476e4SDavid E. O'Brien 0 /* DUMMY VALUE */ 2836767bd61SMark Peek #define F_NUM_FNS 120 284c80476e4SDavid E. O'Brien 285c80476e4SDavid E. O'Brien }; 286c80476e4SDavid E. O'Brien 287c80476e4SDavid E. O'Brien KEYCMD NumFuns = F_NUM_FNS; 288c80476e4SDavid E. O'Brien 289c80476e4SDavid E. O'Brien KEYCMD CcKeyMap[NT_NUM_KEYS]; /* the real key map */ 290c80476e4SDavid E. O'Brien KEYCMD CcAltMap[NT_NUM_KEYS]; /* the alternative key map */ 291c80476e4SDavid E. O'Brien #define F_NUM_FUNCNAMES (F_NUM_FNS + 2) 292c80476e4SDavid E. O'Brien struct KeyFuncs FuncNames[F_NUM_FUNCNAMES]; 293c80476e4SDavid E. O'Brien 2943b6eaa7bSAndrey A. Chernov #ifdef WINNT_NATIVE 295c80476e4SDavid E. O'Brien extern KEYCMD CcEmacsMap[]; 296c80476e4SDavid E. O'Brien extern KEYCMD CcViMap[]; 297c80476e4SDavid E. O'Brien extern KEYCMD CcViCmdMap[]; 2983b6eaa7bSAndrey A. Chernov #else /* !WINNT_NATIVE*/ 299c80476e4SDavid E. O'Brien KEYCMD CcEmacsMap[] = { 300c80476e4SDavid E. O'Brien /* keymap table, each index into above tbl; should be 256*sizeof(KEYCMD) 301c80476e4SDavid E. O'Brien bytes long */ 302c80476e4SDavid E. O'Brien 303c80476e4SDavid E. O'Brien F_SET_MARK, /* ^@ */ 304c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ 305c80476e4SDavid E. O'Brien F_CHARBACK, /* ^B */ 306c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ 307c80476e4SDavid E. O'Brien F_DELNEXT_LIST_EOF, /* ^D */ 308c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ 309c80476e4SDavid E. O'Brien F_CHARFWD, /* ^F */ 310c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^G */ 311c80476e4SDavid E. O'Brien F_DELPREV, /* ^H */ 312c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ 313c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 314c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 315c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 316c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 317c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 318c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 319c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 320c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 321c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 322c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 323c80476e4SDavid E. O'Brien F_CHARSWITCH, /* ^T */ 324c80476e4SDavid E. O'Brien F_KILLALL, /* ^U */ 325c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 326c80476e4SDavid E. O'Brien F_KILLREGION, /* ^W */ 327c80476e4SDavid E. O'Brien F_XKEY, /* ^X */ 328c80476e4SDavid E. O'Brien F_YANK_KILL, /* ^Y */ 329c80476e4SDavid E. O'Brien F_TTY_TSUSP, /* ^Z */ 330c80476e4SDavid E. O'Brien F_METANEXT, /* ^[ */ 331c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 332c80476e4SDavid E. O'Brien F_TTY_DSUSP, /* ^] */ 333c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 334c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 335c80476e4SDavid E. O'Brien F_INSERT, /* SPACE */ 336c80476e4SDavid E. O'Brien F_INSERT, /* ! */ 337c80476e4SDavid E. O'Brien F_INSERT, /* " */ 338c80476e4SDavid E. O'Brien F_INSERT, /* # */ 339c80476e4SDavid E. O'Brien F_INSERT, /* $ */ 340c80476e4SDavid E. O'Brien F_INSERT, /* % */ 341c80476e4SDavid E. O'Brien F_INSERT, /* & */ 342c80476e4SDavid E. O'Brien F_INSERT, /* ' */ 343c80476e4SDavid E. O'Brien F_INSERT, /* ( */ 344c80476e4SDavid E. O'Brien F_INSERT, /* ) */ 345c80476e4SDavid E. O'Brien F_INSERT, /* * */ 346c80476e4SDavid E. O'Brien F_INSERT, /* + */ 347c80476e4SDavid E. O'Brien F_INSERT, /* , */ 348c80476e4SDavid E. O'Brien F_INSERT, /* - */ 349c80476e4SDavid E. O'Brien F_INSERT, /* . */ 350c80476e4SDavid E. O'Brien F_INSERT, /* / */ 351c80476e4SDavid E. O'Brien F_DIGIT, /* 0 */ 352c80476e4SDavid E. O'Brien F_DIGIT, /* 1 */ 353c80476e4SDavid E. O'Brien F_DIGIT, /* 2 */ 354c80476e4SDavid E. O'Brien F_DIGIT, /* 3 */ 355c80476e4SDavid E. O'Brien F_DIGIT, /* 4 */ 356c80476e4SDavid E. O'Brien F_DIGIT, /* 5 */ 357c80476e4SDavid E. O'Brien F_DIGIT, /* 6 */ 358c80476e4SDavid E. O'Brien F_DIGIT, /* 7 */ 359c80476e4SDavid E. O'Brien F_DIGIT, /* 8 */ 360c80476e4SDavid E. O'Brien F_DIGIT, /* 9 */ 361c80476e4SDavid E. O'Brien F_INSERT, /* : */ 362c80476e4SDavid E. O'Brien F_INSERT, /* ; */ 363c80476e4SDavid E. O'Brien F_INSERT, /* < */ 364c80476e4SDavid E. O'Brien F_INSERT, /* = */ 365c80476e4SDavid E. O'Brien F_INSERT, /* > */ 366c80476e4SDavid E. O'Brien F_INSERT, /* ? */ 367c80476e4SDavid E. O'Brien F_INSERT, /* @ */ 368c80476e4SDavid E. O'Brien F_INSERT, /* A */ 369c80476e4SDavid E. O'Brien F_INSERT, /* B */ 370c80476e4SDavid E. O'Brien F_INSERT, /* C */ 371c80476e4SDavid E. O'Brien F_INSERT, /* D */ 372c80476e4SDavid E. O'Brien F_INSERT, /* E */ 373c80476e4SDavid E. O'Brien F_INSERT, /* F */ 374c80476e4SDavid E. O'Brien F_INSERT, /* G */ 375c80476e4SDavid E. O'Brien F_INSERT, /* H */ 376c80476e4SDavid E. O'Brien F_INSERT, /* I */ 377c80476e4SDavid E. O'Brien F_INSERT, /* J */ 378c80476e4SDavid E. O'Brien F_INSERT, /* K */ 379c80476e4SDavid E. O'Brien F_INSERT, /* L */ 380c80476e4SDavid E. O'Brien F_INSERT, /* M */ 381c80476e4SDavid E. O'Brien F_INSERT, /* N */ 382c80476e4SDavid E. O'Brien F_INSERT, /* O */ 383c80476e4SDavid E. O'Brien F_INSERT, /* P */ 384c80476e4SDavid E. O'Brien F_INSERT, /* Q */ 385c80476e4SDavid E. O'Brien F_INSERT, /* R */ 386c80476e4SDavid E. O'Brien F_INSERT, /* S */ 387c80476e4SDavid E. O'Brien F_INSERT, /* T */ 388c80476e4SDavid E. O'Brien F_INSERT, /* U */ 389c80476e4SDavid E. O'Brien F_INSERT, /* V */ 390c80476e4SDavid E. O'Brien F_INSERT, /* W */ 391c80476e4SDavid E. O'Brien F_INSERT, /* X */ 392c80476e4SDavid E. O'Brien F_INSERT, /* Y */ 393c80476e4SDavid E. O'Brien F_INSERT, /* Z */ 394c80476e4SDavid E. O'Brien F_INSERT, /* [ */ 395c80476e4SDavid E. O'Brien F_INSERT, /* \ */ 396c80476e4SDavid E. O'Brien F_INSERT, /* ] */ 397c80476e4SDavid E. O'Brien F_INSERT, /* ^ */ 398c80476e4SDavid E. O'Brien F_INSERT, /* _ */ 399c80476e4SDavid E. O'Brien F_INSERT, /* ` */ 400c80476e4SDavid E. O'Brien F_INSERT, /* a */ 401c80476e4SDavid E. O'Brien F_INSERT, /* b */ 402c80476e4SDavid E. O'Brien F_INSERT, /* c */ 403c80476e4SDavid E. O'Brien F_INSERT, /* d */ 404c80476e4SDavid E. O'Brien F_INSERT, /* e */ 405c80476e4SDavid E. O'Brien F_INSERT, /* f */ 406c80476e4SDavid E. O'Brien F_INSERT, /* g */ 407c80476e4SDavid E. O'Brien F_INSERT, /* h */ 408c80476e4SDavid E. O'Brien F_INSERT, /* i */ 409c80476e4SDavid E. O'Brien F_INSERT, /* j */ 410c80476e4SDavid E. O'Brien F_INSERT, /* k */ 411c80476e4SDavid E. O'Brien F_INSERT, /* l */ 412c80476e4SDavid E. O'Brien F_INSERT, /* m */ 413c80476e4SDavid E. O'Brien F_INSERT, /* n */ 414c80476e4SDavid E. O'Brien F_INSERT, /* o */ 415c80476e4SDavid E. O'Brien F_INSERT, /* p */ 416c80476e4SDavid E. O'Brien F_INSERT, /* q */ 417c80476e4SDavid E. O'Brien F_INSERT, /* r */ 418c80476e4SDavid E. O'Brien F_INSERT, /* s */ 419c80476e4SDavid E. O'Brien F_INSERT, /* t */ 420c80476e4SDavid E. O'Brien F_INSERT, /* u */ 421c80476e4SDavid E. O'Brien F_INSERT, /* v */ 422c80476e4SDavid E. O'Brien F_INSERT, /* w */ 423c80476e4SDavid E. O'Brien F_INSERT, /* x */ 424c80476e4SDavid E. O'Brien F_INSERT, /* y */ 425c80476e4SDavid E. O'Brien F_INSERT, /* z */ 426c80476e4SDavid E. O'Brien F_INSERT, /* { */ 427c80476e4SDavid E. O'Brien F_INSERT, /* | */ 428c80476e4SDavid E. O'Brien F_INSERT, /* } */ 429c80476e4SDavid E. O'Brien F_INSERT, /* ~ */ 430c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 431c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 432c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 433c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 434c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 435c80476e4SDavid E. O'Brien F_LIST_CHOICES, /* M-^D */ 436c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 437c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 438c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 439c80476e4SDavid E. O'Brien F_DELWORDPREV, /* M-^H */ 440c80476e4SDavid E. O'Brien F_COMPLETE, /* M-^I */ 441c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 442c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 443c80476e4SDavid E. O'Brien F_CLEARDISP, /* M-^L */ 444c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 445c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 446c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 447c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 448c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 449c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 450c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 451c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 452c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 453c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 454c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 455c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 456c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 457c80476e4SDavid E. O'Brien F_RUN_FG_EDITOR, /* M-^Z */ 458c80476e4SDavid E. O'Brien F_COMPLETE, /* M-^[ */ 459c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 460c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 461c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 462c80476e4SDavid E. O'Brien F_COPYPREV, /* M-^_ */ 463c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* M-SPACE */ 464c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* M-! */ 465c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 466c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 467c80476e4SDavid E. O'Brien F_CORRECT_L, /* M-$ */ 468c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 469c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 470c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 471c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 472c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 473c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 474c80476e4SDavid E. O'Brien F_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_DABBREV_EXPAND, /* M-/ */ 479c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-0 */ 480c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-1 */ 481c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-2 */ 482c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-3 */ 483c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-4 */ 484c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-5 */ 485c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-6 */ 486c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-7 */ 487c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-8 */ 488c80476e4SDavid E. O'Brien F_ARGDIGIT, /* M-9 */ 489c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 490c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 491c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 492c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 493c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-> */ 494c80476e4SDavid E. O'Brien F_WHICH, /* M-? */ 495c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-@ */ 496c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-A */ 497c80476e4SDavid E. O'Brien F_WORDBACK, /* M-B */ 498c80476e4SDavid E. O'Brien F_CASECAPITAL, /* M-C */ 499c80476e4SDavid E. O'Brien F_DELWORDNEXT, /* M-D */ 500c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 501c80476e4SDavid E. O'Brien F_WORDFWD, /* M-F */ 502c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 503c80476e4SDavid E. O'Brien F_HELPME, /* M-H */ 504c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 505c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 506c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 507c80476e4SDavid E. O'Brien F_CASELOWER, /* M-L */ 508c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 509c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* M-N */ 510c80476e4SDavid E. O'Brien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 511c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* M-P */ 512c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 513c80476e4SDavid E. O'Brien F_TOGGLE_HIST, /* M-R */ 514c80476e4SDavid E. O'Brien F_CORRECT, /* M-S */ 515c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 516c80476e4SDavid E. O'Brien F_CASEUPPER, /* M-U */ 517c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 518c80476e4SDavid E. O'Brien F_COPYREGION, /* M-W */ 519c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 5206767bd61SMark Peek F_YANK_POP, /* M-Y */ 521c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 522c80476e4SDavid E. O'Brien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 523c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 524c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 525c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 526c80476e4SDavid E. O'Brien F_LAST_ITEM, /* M-_ */ 527c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 528c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-a */ 529c80476e4SDavid E. O'Brien F_WORDBACK, /* M-b */ 530c80476e4SDavid E. O'Brien F_CASECAPITAL, /* M-c */ 531c80476e4SDavid E. O'Brien F_DELWORDNEXT, /* M-d */ 532c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 533c80476e4SDavid E. O'Brien F_WORDFWD, /* M-f */ 534c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 535c80476e4SDavid E. O'Brien F_HELPME, /* M-h */ 536c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 537c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 538c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 539c80476e4SDavid E. O'Brien F_CASELOWER, /* M-l */ 540c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 541c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* M-n */ 542c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 543c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* M-p */ 544c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 545c80476e4SDavid E. O'Brien F_TOGGLE_HIST, /* M-r */ 546c80476e4SDavid E. O'Brien F_CORRECT, /* M-s */ 547c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 548c80476e4SDavid E. O'Brien F_CASEUPPER, /* M-u */ 549c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 550c80476e4SDavid E. O'Brien F_COPYREGION, /* M-w */ 551c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 5526767bd61SMark Peek F_YANK_POP, /* M-y */ 553c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 554c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 555c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 556c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 557c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 558c80476e4SDavid E. O'Brien F_DELWORDPREV /* M-^? */ 559c80476e4SDavid E. O'Brien }; 560c80476e4SDavid E. O'Brien 561c80476e4SDavid E. O'Brien /* 562c80476e4SDavid E. O'Brien * keymap table for vi. Each index into above tbl; should be 563c80476e4SDavid E. O'Brien * 256 entries long. Vi mode uses a sticky-extend to do command mode: 564c80476e4SDavid E. O'Brien * insert mode characters are in the normal keymap, and command mode 565c80476e4SDavid E. O'Brien * in the extended keymap. 566c80476e4SDavid E. O'Brien */ 567c80476e4SDavid E. O'Brien static KEYCMD CcViMap[] = { 568c80476e4SDavid E. O'Brien #ifdef KSHVI 569c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ 570c80476e4SDavid E. O'Brien F_INSERT, /* ^A */ 571c80476e4SDavid E. O'Brien F_INSERT, /* ^B */ 572c80476e4SDavid E. O'Brien F_INSERT, /* ^C */ 573c80476e4SDavid E. O'Brien F_INSERT, /* ^D */ 574c80476e4SDavid E. O'Brien F_INSERT, /* ^E */ 575c80476e4SDavid E. O'Brien F_INSERT, /* ^F */ 576c80476e4SDavid E. O'Brien F_INSERT, /* ^G */ 577c80476e4SDavid E. O'Brien V_DELPREV, /* ^H */ /* BackSpace key */ 578c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ /* Tab Key */ 579c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 580c80476e4SDavid E. O'Brien F_INSERT, /* ^K */ 581c80476e4SDavid E. O'Brien F_INSERT, /* ^L */ 582c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 583c80476e4SDavid E. O'Brien F_INSERT, /* ^N */ 584c80476e4SDavid E. O'Brien F_INSERT, /* ^O */ 585c80476e4SDavid E. O'Brien F_INSERT, /* ^P */ 586c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 587c80476e4SDavid E. O'Brien F_INSERT, /* ^R */ 588c80476e4SDavid E. O'Brien F_INSERT, /* ^S */ 589c80476e4SDavid E. O'Brien F_INSERT, /* ^T */ 590c80476e4SDavid E. O'Brien F_INSERT, /* ^U */ 591c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 592c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ /* Only until start edit pos */ 593c80476e4SDavid E. O'Brien F_INSERT, /* ^X */ 594c80476e4SDavid E. O'Brien F_INSERT, /* ^Y */ 595c80476e4SDavid E. O'Brien F_INSERT, /* ^Z */ 596c80476e4SDavid E. O'Brien V_CMD_MODE, /* ^[ */ /* [ Esc ] key */ 597c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 598c80476e4SDavid E. O'Brien F_INSERT, /* ^] */ 599c80476e4SDavid E. O'Brien F_INSERT, /* ^^ */ 600c80476e4SDavid E. O'Brien F_INSERT, /* ^_ */ 601c80476e4SDavid E. O'Brien #else /* !KSHVI */ 602c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ /* NOTE: These mapping do NOT */ 603c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ /* Correspond well to the KSH */ 604c80476e4SDavid E. O'Brien F_CHARBACK, /* ^B */ /* VI editting assignments */ 605c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ /* On the other hand they are */ 606c80476e4SDavid E. O'Brien F_LIST_EOF, /* ^D */ /* convenient any many people */ 607c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ /* have gotten used to them */ 608c80476e4SDavid E. O'Brien F_CHARFWD, /* ^F */ 609c80476e4SDavid E. O'Brien F_LIST_GLOB, /* ^G */ 610c80476e4SDavid E. O'Brien F_DELPREV, /* ^H */ /* BackSpace key */ 611c80476e4SDavid E. O'Brien F_COMPLETE, /* ^I */ /* Tab Key */ 612c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 613c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 614c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 615c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 616c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 617c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 618c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 619c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 620c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 621c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 622c80476e4SDavid E. O'Brien F_CHARSWITCH, /* ^T */ 623c80476e4SDavid E. O'Brien F_KILLBEG, /* ^U */ 624c80476e4SDavid E. O'Brien F_QUOTE, /* ^V */ 625c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ 626c80476e4SDavid E. O'Brien F_EXPAND, /* ^X */ 627c80476e4SDavid E. O'Brien F_TTY_DSUSP, /* ^Y */ 628c80476e4SDavid E. O'Brien F_TTY_TSUSP, /* ^Z */ 629c80476e4SDavid E. O'Brien V_CMD_MODE, /* ^[ */ 630c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 631c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^] */ 632c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 633c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 634c80476e4SDavid E. O'Brien #endif /* KSHVI */ 635c80476e4SDavid E. O'Brien F_INSERT, /* SPACE */ 636c80476e4SDavid E. O'Brien F_INSERT, /* ! */ 637c80476e4SDavid E. O'Brien F_INSERT, /* " */ 638c80476e4SDavid E. O'Brien F_INSERT, /* # */ 639c80476e4SDavid E. O'Brien F_INSERT, /* $ */ 640c80476e4SDavid E. O'Brien F_INSERT, /* % */ 641c80476e4SDavid E. O'Brien F_INSERT, /* & */ 642c80476e4SDavid E. O'Brien F_INSERT, /* ' */ 643c80476e4SDavid E. O'Brien F_INSERT, /* ( */ 644c80476e4SDavid E. O'Brien F_INSERT, /* ) */ 645c80476e4SDavid E. O'Brien F_INSERT, /* * */ 646c80476e4SDavid E. O'Brien F_INSERT, /* + */ 647c80476e4SDavid E. O'Brien F_INSERT, /* , */ 648c80476e4SDavid E. O'Brien F_INSERT, /* - */ 649c80476e4SDavid E. O'Brien F_INSERT, /* . */ 650c80476e4SDavid E. O'Brien F_INSERT, /* / */ 651c80476e4SDavid E. O'Brien F_INSERT, /* 0 */ 652c80476e4SDavid E. O'Brien F_INSERT, /* 1 */ 653c80476e4SDavid E. O'Brien F_INSERT, /* 2 */ 654c80476e4SDavid E. O'Brien F_INSERT, /* 3 */ 655c80476e4SDavid E. O'Brien F_INSERT, /* 4 */ 656c80476e4SDavid E. O'Brien F_INSERT, /* 5 */ 657c80476e4SDavid E. O'Brien F_INSERT, /* 6 */ 658c80476e4SDavid E. O'Brien F_INSERT, /* 7 */ 659c80476e4SDavid E. O'Brien F_INSERT, /* 8 */ 660c80476e4SDavid E. O'Brien F_INSERT, /* 9 */ 661c80476e4SDavid E. O'Brien F_INSERT, /* : */ 662c80476e4SDavid E. O'Brien F_INSERT, /* ; */ 663c80476e4SDavid E. O'Brien F_INSERT, /* < */ 664c80476e4SDavid E. O'Brien F_INSERT, /* = */ 665c80476e4SDavid E. O'Brien F_INSERT, /* > */ 666c80476e4SDavid E. O'Brien F_INSERT, /* ? */ 667c80476e4SDavid E. O'Brien F_INSERT, /* @ */ 668c80476e4SDavid E. O'Brien F_INSERT, /* A */ 669c80476e4SDavid E. O'Brien F_INSERT, /* B */ 670c80476e4SDavid E. O'Brien F_INSERT, /* C */ 671c80476e4SDavid E. O'Brien F_INSERT, /* D */ 672c80476e4SDavid E. O'Brien F_INSERT, /* E */ 673c80476e4SDavid E. O'Brien F_INSERT, /* F */ 674c80476e4SDavid E. O'Brien F_INSERT, /* G */ 675c80476e4SDavid E. O'Brien F_INSERT, /* H */ 676c80476e4SDavid E. O'Brien F_INSERT, /* I */ 677c80476e4SDavid E. O'Brien F_INSERT, /* J */ 678c80476e4SDavid E. O'Brien F_INSERT, /* K */ 679c80476e4SDavid E. O'Brien F_INSERT, /* L */ 680c80476e4SDavid E. O'Brien F_INSERT, /* M */ 681c80476e4SDavid E. O'Brien F_INSERT, /* N */ 682c80476e4SDavid E. O'Brien F_INSERT, /* O */ 683c80476e4SDavid E. O'Brien F_INSERT, /* P */ 684c80476e4SDavid E. O'Brien F_INSERT, /* Q */ 685c80476e4SDavid E. O'Brien F_INSERT, /* R */ 686c80476e4SDavid E. O'Brien F_INSERT, /* S */ 687c80476e4SDavid E. O'Brien F_INSERT, /* T */ 688c80476e4SDavid E. O'Brien F_INSERT, /* U */ 689c80476e4SDavid E. O'Brien F_INSERT, /* V */ 690c80476e4SDavid E. O'Brien F_INSERT, /* W */ 691c80476e4SDavid E. O'Brien F_INSERT, /* X */ 692c80476e4SDavid E. O'Brien F_INSERT, /* Y */ 693c80476e4SDavid E. O'Brien F_INSERT, /* Z */ 694c80476e4SDavid E. O'Brien F_INSERT, /* [ */ 695c80476e4SDavid E. O'Brien F_INSERT, /* \ */ 696c80476e4SDavid E. O'Brien F_INSERT, /* ] */ 697c80476e4SDavid E. O'Brien F_INSERT, /* ^ */ 698c80476e4SDavid E. O'Brien F_INSERT, /* _ */ 699c80476e4SDavid E. O'Brien F_INSERT, /* ` */ 700c80476e4SDavid E. O'Brien F_INSERT, /* a */ 701c80476e4SDavid E. O'Brien F_INSERT, /* b */ 702c80476e4SDavid E. O'Brien F_INSERT, /* c */ 703c80476e4SDavid E. O'Brien F_INSERT, /* d */ 704c80476e4SDavid E. O'Brien F_INSERT, /* e */ 705c80476e4SDavid E. O'Brien F_INSERT, /* f */ 706c80476e4SDavid E. O'Brien F_INSERT, /* g */ 707c80476e4SDavid E. O'Brien F_INSERT, /* h */ 708c80476e4SDavid E. O'Brien F_INSERT, /* i */ 709c80476e4SDavid E. O'Brien F_INSERT, /* j */ 710c80476e4SDavid E. O'Brien F_INSERT, /* k */ 711c80476e4SDavid E. O'Brien F_INSERT, /* l */ 712c80476e4SDavid E. O'Brien F_INSERT, /* m */ 713c80476e4SDavid E. O'Brien F_INSERT, /* n */ 714c80476e4SDavid E. O'Brien F_INSERT, /* o */ 715c80476e4SDavid E. O'Brien F_INSERT, /* p */ 716c80476e4SDavid E. O'Brien F_INSERT, /* q */ 717c80476e4SDavid E. O'Brien F_INSERT, /* r */ 718c80476e4SDavid E. O'Brien F_INSERT, /* s */ 719c80476e4SDavid E. O'Brien F_INSERT, /* t */ 720c80476e4SDavid E. O'Brien F_INSERT, /* u */ 721c80476e4SDavid E. O'Brien F_INSERT, /* v */ 722c80476e4SDavid E. O'Brien F_INSERT, /* w */ 723c80476e4SDavid E. O'Brien F_INSERT, /* x */ 724c80476e4SDavid E. O'Brien F_INSERT, /* y */ 725c80476e4SDavid E. O'Brien F_INSERT, /* z */ 726c80476e4SDavid E. O'Brien F_INSERT, /* { */ 727c80476e4SDavid E. O'Brien F_INSERT, /* | */ 728c80476e4SDavid E. O'Brien F_INSERT, /* } */ 729c80476e4SDavid E. O'Brien F_INSERT, /* ~ */ 730c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 731c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 732c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 733c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 734c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 735c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^D */ 736c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 737c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 738c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 739c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^H */ 740c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^I */ 741c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 742c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 743c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^L */ 744c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 745c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 746c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 747c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 748c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 749c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 750c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 751c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 752c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 753c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 754c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 755c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 756c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 757c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Z */ 758c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^[ */ 759c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 760c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 761c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 762c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^_ */ 763c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-SPACE */ 764c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-! */ 765c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 766c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 767c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-$ */ 768c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 769c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 770c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 771c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 772c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 773c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 774c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-+ */ 775c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-, */ 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-0 */ 780c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-1 */ 781c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-2 */ 782c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-3 */ 783c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-4 */ 784c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-5 */ 785c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-6 */ 786c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-7 */ 787c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-8 */ 788c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-9 */ 789c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 790c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 791c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 792c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 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-A */ 797c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-B */ 798c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-C */ 799c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-D */ 800c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 801c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-F */ 802c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 803c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-H */ 804c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 805c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 806c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 807c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-L */ 808c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 809c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-N */ 810c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-O */ 811c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-P */ 812c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 813c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-R */ 814c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-S */ 815c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 816c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-U */ 817c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 818c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-W */ 819c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 820c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Y */ 821c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 822c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-[ */ 823c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 824c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 825c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 826c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-_ */ 827c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 828c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-a */ 829c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-b */ 830c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-c */ 831c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-d */ 832c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 833c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-f */ 834c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 835c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-h */ 836c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 837c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 838c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 839c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-l */ 840c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 841c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-n */ 842c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 843c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-p */ 844c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 845c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-r */ 846c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-s */ 847c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 848c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-u */ 849c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 850c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-w */ 851c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 852c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-y */ 853c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 854c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 855c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 856c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 857c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 858c80476e4SDavid E. O'Brien F_UNASSIGNED /* M-^? */ 859c80476e4SDavid E. O'Brien }; 860c80476e4SDavid E. O'Brien 861c80476e4SDavid E. O'Brien KEYCMD CcViCmdMap[] = { 862c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^@ */ 863c80476e4SDavid E. O'Brien F_TOBEG, /* ^A */ 864c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^B */ 865c80476e4SDavid E. O'Brien F_TTY_INT, /* ^C */ 866c80476e4SDavid E. O'Brien F_LIST_CHOICES, /* ^D */ 867c80476e4SDavid E. O'Brien F_TOEND, /* ^E */ 868c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^F */ 869c80476e4SDavid E. O'Brien F_LIST_GLOB, /* ^G */ 870c80476e4SDavid E. O'Brien F_CHARBACK, /* ^H */ 871c80476e4SDavid E. O'Brien V_CM_COMPLETE, /* ^I */ 872c80476e4SDavid E. O'Brien F_NEWLINE, /* ^J */ 873c80476e4SDavid E. O'Brien F_KILLEND, /* ^K */ 874c80476e4SDavid E. O'Brien F_CLEARDISP, /* ^L */ 875c80476e4SDavid E. O'Brien F_NEWLINE, /* ^M */ 876c80476e4SDavid E. O'Brien F_DOWN_HIST, /* ^N */ 877c80476e4SDavid E. O'Brien F_TTY_FLUSHO, /* ^O */ 878c80476e4SDavid E. O'Brien F_UP_HIST, /* ^P */ 879c80476e4SDavid E. O'Brien F_TTY_STARTO, /* ^Q */ 880c80476e4SDavid E. O'Brien F_REDISP, /* ^R */ 881c80476e4SDavid E. O'Brien F_TTY_STOPO, /* ^S */ 882c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^T */ 883c80476e4SDavid E. O'Brien F_KILLBEG, /* ^U */ 884c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^V */ 885c80476e4SDavid E. O'Brien F_DELWORDPREV, /* ^W */ 886c80476e4SDavid E. O'Brien F_EXPAND, /* ^X */ 887c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^Y */ 888c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^Z */ 889c80476e4SDavid E. O'Brien F_METANEXT, /* ^[ */ 890c80476e4SDavid E. O'Brien F_TTY_QUIT, /* ^\ */ 891c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^] */ 892c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^^ */ 893c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ^_ */ 894c80476e4SDavid E. O'Brien F_CHARFWD, /* SPACE */ 895c80476e4SDavid E. O'Brien F_EXPAND_HISTORY, /* ! */ 896c80476e4SDavid E. O'Brien F_UNASSIGNED, /* " */ 897c80476e4SDavid E. O'Brien F_UNASSIGNED, /* # */ 898c80476e4SDavid E. O'Brien F_TOEND, /* $ */ 899c80476e4SDavid E. O'Brien F_UNASSIGNED, /* % */ 900c80476e4SDavid E. O'Brien F_UNASSIGNED, /* & */ 901c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ' */ 902c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ( */ 903c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ) */ 904c80476e4SDavid E. O'Brien F_EXPAND_GLOB, /* * */ 905c80476e4SDavid E. O'Brien F_DOWN_HIST, /* + */ 906c80476e4SDavid E. O'Brien V_RCHAR_BACK, /* , */ 907c80476e4SDavid E. O'Brien F_UP_HIST, /* - */ 908c80476e4SDavid E. O'Brien F_UNASSIGNED, /* . */ 909c80476e4SDavid E. O'Brien V_DSH_META, /* / */ 910c80476e4SDavid E. O'Brien V_ZERO, /* 0 */ 911c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 1 */ 912c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 2 */ 913c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 3 */ 914c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 4 */ 915c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 5 */ 916c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 6 */ 917c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 7 */ 918c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 8 */ 919c80476e4SDavid E. O'Brien F_ARGDIGIT, /* 9 */ 920c80476e4SDavid E. O'Brien F_UNASSIGNED, /* : */ 921c80476e4SDavid E. O'Brien V_RCHAR_FWD, /* ; */ 922c80476e4SDavid E. O'Brien F_UNASSIGNED, /* < */ 923c80476e4SDavid E. O'Brien F_UNASSIGNED, /* = */ 924c80476e4SDavid E. O'Brien F_UNASSIGNED, /* > */ 925c80476e4SDavid E. O'Brien V_USH_META, /* ? */ 926c80476e4SDavid E. O'Brien F_UNASSIGNED, /* @ */ 927c80476e4SDavid E. O'Brien V_ADDEND, /* A */ 928c80476e4SDavid E. O'Brien V_WORDBACK, /* B */ 929c80476e4SDavid E. O'Brien V_CHGTOEND, /* C */ 930c80476e4SDavid E. O'Brien F_KILLEND, /* D */ 931c80476e4SDavid E. O'Brien V_ENDWORD, /* E */ 932c80476e4SDavid E. O'Brien V_CHAR_BACK, /* F */ 933c80476e4SDavid E. O'Brien F_UNASSIGNED, /* G */ 934c80476e4SDavid E. O'Brien F_UNASSIGNED, /* H */ 935c80476e4SDavid E. O'Brien V_INSBEG, /* I */ 936c80476e4SDavid E. O'Brien F_DOWN_SEARCH_HIST, /* J */ 937c80476e4SDavid E. O'Brien F_UP_SEARCH_HIST, /* K */ 938c80476e4SDavid E. O'Brien F_UNASSIGNED, /* L */ 939c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M */ 940c80476e4SDavid E. O'Brien V_RSRCH_BACK, /* N */ 941c80476e4SDavid E. O'Brien F_XKEY, /* O */ 942c80476e4SDavid E. O'Brien F_UNASSIGNED, /* P */ 943c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Q */ 944c80476e4SDavid E. O'Brien V_REPLMODE, /* R */ 945c80476e4SDavid E. O'Brien V_SUBSTLINE, /* S */ 946c80476e4SDavid E. O'Brien V_CHARTO_BACK, /* T */ 947c80476e4SDavid E. O'Brien F_UNASSIGNED, /* U */ 948c80476e4SDavid E. O'Brien F_EXPAND_VARS, /* V */ 949c80476e4SDavid E. O'Brien V_WORDFWD, /* W */ 950c80476e4SDavid E. O'Brien F_DELPREV, /* X */ 951c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Y */ 952c80476e4SDavid E. O'Brien F_UNASSIGNED, /* Z */ 953c80476e4SDavid E. O'Brien F_XKEY, /* [ */ 954c80476e4SDavid E. O'Brien F_UNASSIGNED, /* \ */ 955c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ] */ 956c80476e4SDavid E. O'Brien F_TOBEG, /* ^ */ 957c80476e4SDavid E. O'Brien F_UNASSIGNED, /* _ */ 958c80476e4SDavid E. O'Brien F_UNASSIGNED, /* ` */ 959c80476e4SDavid E. O'Brien V_ADD, /* a */ 960c80476e4SDavid E. O'Brien F_WORDBACK, /* b */ 961c80476e4SDavid E. O'Brien V_CHGMETA, /* c */ 962c80476e4SDavid E. O'Brien V_DELMETA, /* d */ 963c80476e4SDavid E. O'Brien V_EWORD, /* e */ 964c80476e4SDavid E. O'Brien V_CHAR_FWD, /* f */ 965c80476e4SDavid E. O'Brien F_UNASSIGNED, /* g */ 966c80476e4SDavid E. O'Brien F_CHARBACK, /* h */ 967c80476e4SDavid E. O'Brien V_INSERT, /* i */ 968c80476e4SDavid E. O'Brien F_DOWN_HIST, /* j */ 969c80476e4SDavid E. O'Brien F_UP_HIST, /* k */ 970c80476e4SDavid E. O'Brien F_CHARFWD, /* l */ 971c80476e4SDavid E. O'Brien F_UNASSIGNED, /* m */ 972c80476e4SDavid E. O'Brien V_RSRCH_FWD, /* n */ 973c80476e4SDavid E. O'Brien F_UNASSIGNED, /* o */ 974c80476e4SDavid E. O'Brien F_UNASSIGNED, /* p */ 975c80476e4SDavid E. O'Brien F_UNASSIGNED, /* q */ 976c80476e4SDavid E. O'Brien V_REPLONE, /* r */ 977c80476e4SDavid E. O'Brien V_SUBSTCHAR, /* s */ 978c80476e4SDavid E. O'Brien V_CHARTO_FWD, /* t */ 979c80476e4SDavid E. O'Brien V_UNDO, /* u */ 980c80476e4SDavid E. O'Brien F_EXPAND_VARS, /* v */ 981c80476e4SDavid E. O'Brien V_WORDBEGNEXT, /* w */ 982c80476e4SDavid E. O'Brien F_DELNEXT_EOF, /* x */ 983c80476e4SDavid E. O'Brien F_UNASSIGNED, /* y */ 984c80476e4SDavid E. O'Brien F_UNASSIGNED, /* z */ 985c80476e4SDavid E. O'Brien F_UNASSIGNED, /* { */ 986c80476e4SDavid E. O'Brien F_UNASSIGNED, /* | */ 987c80476e4SDavid E. O'Brien F_UNASSIGNED, /* } */ 988c80476e4SDavid E. O'Brien V_CHGCASE, /* ~ */ 989c80476e4SDavid E. O'Brien F_DELPREV, /* ^? */ 990c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^@ */ 991c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^A */ 992c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^B */ 993c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^C */ 994c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^D */ 995c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^E */ 996c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^F */ 997c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^G */ 998c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^H */ 999c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^I */ 1000c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^J */ 1001c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^K */ 1002c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^L */ 1003c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^M */ 1004c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^N */ 1005c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^O */ 1006c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^P */ 1007c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Q */ 1008c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^R */ 1009c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^S */ 1010c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^T */ 1011c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^U */ 1012c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^V */ 1013c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^W */ 1014c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^X */ 1015c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Y */ 1016c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^Z */ 1017c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^[ */ 1018c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^\ */ 1019c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^] */ 1020c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^^ */ 1021c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^_ */ 1022c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-SPACE */ 1023c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-! */ 1024c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-" */ 1025c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-# */ 1026c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-$ */ 1027c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-% */ 1028c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-& */ 1029c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-' */ 1030c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-( */ 1031c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-) */ 1032c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-* */ 1033c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-+ */ 1034c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-, */ 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-0 */ 1039c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-1 */ 1040c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-2 */ 1041c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-3 */ 1042c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-4 */ 1043c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-5 */ 1044c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-6 */ 1045c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-7 */ 1046c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-8 */ 1047c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-9 */ 1048c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-: */ 1049c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-; */ 1050c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-< */ 1051c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-= */ 1052c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-> */ 1053c80476e4SDavid E. O'Brien F_HELPME, /* M-? */ 1054c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-@ */ 1055c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-A */ 1056c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-B */ 1057c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-C */ 1058c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-D */ 1059c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-E */ 1060c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-F */ 1061c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-G */ 1062c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-H */ 1063c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-I */ 1064c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-J */ 1065c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-K */ 1066c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-L */ 1067c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-M */ 1068c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-N */ 1069c80476e4SDavid E. O'Brien F_XKEY, /* M-O *//* extended key esc PWP Mar 88 */ 1070c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-P */ 1071c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Q */ 1072c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-R */ 1073c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-S */ 1074c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-T */ 1075c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-U */ 1076c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-V */ 1077c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-W */ 1078c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-X */ 1079c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Y */ 1080c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-Z */ 1081c80476e4SDavid E. O'Brien F_XKEY, /* M-[ *//* extended key esc -mf Oct 87 */ 1082c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-\ */ 1083c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-] */ 1084c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-^ */ 1085c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-_ */ 1086c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-` */ 1087c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-a */ 1088c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-b */ 1089c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-c */ 1090c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-d */ 1091c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-e */ 1092c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-f */ 1093c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-g */ 1094c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-h */ 1095c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-i */ 1096c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-j */ 1097c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-k */ 1098c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-l */ 1099c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-m */ 1100c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-n */ 1101c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-o */ 1102c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-p */ 1103c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-q */ 1104c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-r */ 1105c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-s */ 1106c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-t */ 1107c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-u */ 1108c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-v */ 1109c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-w */ 1110c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-x */ 1111c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-y */ 1112c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-z */ 1113c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-{ */ 1114c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-| */ 1115c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-} */ 1116c80476e4SDavid E. O'Brien F_UNASSIGNED, /* M-~ */ 1117c80476e4SDavid E. O'Brien F_UNASSIGNED /* M-^? */ 1118c80476e4SDavid E. O'Brien }; 11193b6eaa7bSAndrey A. Chernov #endif /* WINNT_NATIVE */ 1120c80476e4SDavid E. O'Brien 1121c80476e4SDavid E. O'Brien 1122c80476e4SDavid E. O'Brien void 1123c80476e4SDavid E. O'Brien editinit() 1124c80476e4SDavid E. O'Brien { 1125c80476e4SDavid E. O'Brien struct KeyFuncs *f; 1126c80476e4SDavid E. O'Brien 11273b6eaa7bSAndrey A. Chernov #if defined(NLS_CATALOGS) || defined(WINNT_NATIVE) 1128c80476e4SDavid E. O'Brien int i; 1129c80476e4SDavid E. O'Brien 1130c80476e4SDavid E. O'Brien for (i = 0; i < F_NUM_FUNCNAMES; i++) 1131c80476e4SDavid E. O'Brien xfree((ptr_t) FuncNames[i].desc); 1132c80476e4SDavid E. O'Brien #endif 1133c80476e4SDavid E. O'Brien 1134c80476e4SDavid E. O'Brien f = FuncNames; 1135c80476e4SDavid E. O'Brien f->name = "backward-char"; 1136c80476e4SDavid E. O'Brien f->func = F_CHARBACK; 1137c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 1, "Move back a character"); 1138c80476e4SDavid E. O'Brien 1139c80476e4SDavid E. O'Brien f++; 1140c80476e4SDavid E. O'Brien f->name = "backward-delete-char"; 1141c80476e4SDavid E. O'Brien f->func = F_DELPREV; 1142c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 2, "Delete the character behind cursor"); 1143c80476e4SDavid E. O'Brien 1144c80476e4SDavid E. O'Brien f++; 1145c80476e4SDavid E. O'Brien f->name = "backward-delete-word"; 1146c80476e4SDavid E. O'Brien f->func = F_DELWORDPREV; 1147c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 3, 1148c80476e4SDavid E. O'Brien "Cut from beginning of current word to cursor - saved in cut buffer"); 1149c80476e4SDavid E. O'Brien 1150c80476e4SDavid E. O'Brien f++; 1151c80476e4SDavid E. O'Brien f->name = "backward-kill-line"; 1152c80476e4SDavid E. O'Brien f->func = F_KILLBEG; 1153c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 4, 1154c80476e4SDavid E. O'Brien "Cut from beginning of line to cursor - save in cut buffer"); 1155c80476e4SDavid E. O'Brien 1156c80476e4SDavid E. O'Brien f++; 1157c80476e4SDavid E. O'Brien f->name = "backward-word"; 1158c80476e4SDavid E. O'Brien f->func = F_WORDBACK; 1159c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 5, "Move to beginning of current word"); 1160c80476e4SDavid E. O'Brien 1161c80476e4SDavid E. O'Brien f++; 1162c80476e4SDavid E. O'Brien f->name = "beginning-of-line"; 1163c80476e4SDavid E. O'Brien f->func = F_TOBEG; 1164c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 6, "Move to beginning of line"); 1165c80476e4SDavid E. O'Brien 1166c80476e4SDavid E. O'Brien f++; 1167c80476e4SDavid E. O'Brien f->name = "capitalize-word"; 1168c80476e4SDavid E. O'Brien f->func = F_CASECAPITAL; 1169c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 7, 1170c80476e4SDavid E. O'Brien "Capitalize the characters from cursor to end of current word"); 1171c80476e4SDavid E. O'Brien 1172c80476e4SDavid E. O'Brien f++; 1173c80476e4SDavid E. O'Brien f->name = "change-case"; 1174c80476e4SDavid E. O'Brien f->func = V_CHGCASE; 1175c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 8, 1176c80476e4SDavid E. O'Brien "Vi change case of character under cursor and advance one character"); 1177c80476e4SDavid E. O'Brien 1178c80476e4SDavid E. O'Brien f++; 1179c80476e4SDavid E. O'Brien f->name = "change-till-end-of-line"; 1180c80476e4SDavid E. O'Brien f->func = V_CHGTOEND; /* backward compat. */ 1181c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 9, "Vi change to end of line"); 1182c80476e4SDavid E. O'Brien 1183c80476e4SDavid E. O'Brien f++; 1184c80476e4SDavid E. O'Brien f->name = "clear-screen"; 1185c80476e4SDavid E. O'Brien f->func = F_CLEARDISP; 1186c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 10, "Clear screen leaving current line on top"); 1187c80476e4SDavid E. O'Brien 1188c80476e4SDavid E. O'Brien f++; 1189c80476e4SDavid E. O'Brien f->name = "complete-word"; 1190c80476e4SDavid E. O'Brien f->func = F_COMPLETE; 1191c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 11, "Complete current word"); 1192c80476e4SDavid E. O'Brien 1193c80476e4SDavid E. O'Brien f++; 1194c80476e4SDavid E. O'Brien f->name = "complete-word-fwd"; 1195c80476e4SDavid E. O'Brien f->func = F_COMPLETE_FWD; 1196c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 12, "Tab forward through files"); 1197c80476e4SDavid E. O'Brien 1198c80476e4SDavid E. O'Brien f++; 1199c80476e4SDavid E. O'Brien f->name = "complete-word-back"; 1200c80476e4SDavid E. O'Brien f->func = F_COMPLETE_BACK; 1201c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 13, "Tab backward through files"); 1202c80476e4SDavid E. O'Brien 1203c80476e4SDavid E. O'Brien f++; 1204c80476e4SDavid E. O'Brien f->name = "complete-word-raw"; 1205c80476e4SDavid E. O'Brien f->func = F_COMPLETE_ALL; 1206c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 14, 1207c80476e4SDavid E. O'Brien "Complete current word ignoring programmable completions"); 1208c80476e4SDavid E. O'Brien 1209c80476e4SDavid E. O'Brien f++; 1210c80476e4SDavid E. O'Brien f->name = "copy-prev-word"; 1211c80476e4SDavid E. O'Brien f->func = F_COPYPREV; 1212c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 15, "Copy current word to cursor"); 1213c80476e4SDavid E. O'Brien 1214c80476e4SDavid E. O'Brien f++; 1215c80476e4SDavid E. O'Brien f->name = "copy-region-as-kill"; 1216c80476e4SDavid E. O'Brien f->func = F_COPYREGION; 1217c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 16, "Copy area between mark and cursor to cut buffer"); 1218c80476e4SDavid E. O'Brien 1219c80476e4SDavid E. O'Brien f++; 1220c80476e4SDavid E. O'Brien f->name = "dabbrev-expand"; 1221c80476e4SDavid E. O'Brien f->func = F_DABBREV_EXPAND; 1222c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 17, 1223c80476e4SDavid E. O'Brien "Expand to preceding word for which this is a prefix"); 1224c80476e4SDavid E. O'Brien 1225c80476e4SDavid E. O'Brien f++; 1226c80476e4SDavid E. O'Brien f->name = "delete-char"; 1227c80476e4SDavid E. O'Brien f->func = F_DELNEXT; 1228c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 18, "Delete character under cursor"); 1229c80476e4SDavid E. O'Brien 1230c80476e4SDavid E. O'Brien f++; 1231c80476e4SDavid E. O'Brien f->name = "delete-char-or-eof"; 1232c80476e4SDavid E. O'Brien f->func = F_DELNEXT_EOF; 1233c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 19, 1234c80476e4SDavid E. O'Brien "Delete character under cursor or signal end of file on an empty line"); 1235c80476e4SDavid E. O'Brien 1236c80476e4SDavid E. O'Brien f++; 1237c80476e4SDavid E. O'Brien f->name = "delete-char-or-list"; 1238c80476e4SDavid E. O'Brien f->func = F_DELNEXT_LIST; 1239c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 20, 1240c80476e4SDavid E. O'Brien "Delete character under cursor or list completions if at end of line"); 1241c80476e4SDavid E. O'Brien 1242c80476e4SDavid E. O'Brien f++; 1243c80476e4SDavid E. O'Brien f->name = "delete-char-or-list-or-eof"; 1244c80476e4SDavid E. O'Brien f->func = F_DELNEXT_LIST_EOF; 1245c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 21, 1246c80476e4SDavid E. O'Brien "Delete character under cursor, list completions or signal end of file"); 1247c80476e4SDavid E. O'Brien 1248c80476e4SDavid E. O'Brien f++; 1249c80476e4SDavid E. O'Brien f->name = "delete-word"; 1250c80476e4SDavid E. O'Brien f->func = F_DELWORDNEXT; 1251c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 22, 1252c80476e4SDavid E. O'Brien "Cut from cursor to end of current word - save in cut buffer"); 1253c80476e4SDavid E. O'Brien 1254c80476e4SDavid E. O'Brien f++; 1255c80476e4SDavid E. O'Brien f->name = "digit"; 1256c80476e4SDavid E. O'Brien f->func = F_DIGIT; 1257c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 23, "Adds to argument if started or enters digit"); 1258c80476e4SDavid E. O'Brien 1259c80476e4SDavid E. O'Brien f++; 1260c80476e4SDavid E. O'Brien f->name = "digit-argument"; 1261c80476e4SDavid E. O'Brien f->func = F_ARGDIGIT; 1262c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 24, "Digit that starts argument"); 1263c80476e4SDavid E. O'Brien 1264c80476e4SDavid E. O'Brien f++; 1265c80476e4SDavid E. O'Brien f->name = "down-history"; 1266c80476e4SDavid E. O'Brien f->func = F_DOWN_HIST; 1267c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 25, "Move to next history line"); 1268c80476e4SDavid E. O'Brien 1269c80476e4SDavid E. O'Brien f++; 1270c80476e4SDavid E. O'Brien f->name = "downcase-word"; 1271c80476e4SDavid E. O'Brien f->func = F_CASELOWER; 1272c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 26, 1273c80476e4SDavid E. O'Brien "Lowercase the characters from cursor to end of current word"); 1274c80476e4SDavid E. O'Brien 1275c80476e4SDavid E. O'Brien f++; 1276c80476e4SDavid E. O'Brien f->name = "end-of-file"; 1277c80476e4SDavid E. O'Brien f->func = F_SEND_EOF; 1278c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 27, "Indicate end of file"); 1279c80476e4SDavid E. O'Brien 1280c80476e4SDavid E. O'Brien f++; 1281c80476e4SDavid E. O'Brien f->name = "end-of-line"; 1282c80476e4SDavid E. O'Brien f->func = F_TOEND; 1283c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 28, "Move cursor to end of line"); 1284c80476e4SDavid E. O'Brien 1285c80476e4SDavid E. O'Brien f++; 1286c80476e4SDavid E. O'Brien f->name = "exchange-point-and-mark"; 1287c80476e4SDavid E. O'Brien f->func = F_EXCHANGE_MARK; 1288c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 29, "Exchange the cursor and mark"); 1289c80476e4SDavid E. O'Brien 1290c80476e4SDavid E. O'Brien f++; 1291c80476e4SDavid E. O'Brien f->name = "expand-glob"; 1292c80476e4SDavid E. O'Brien f->func = F_EXPAND_GLOB; 1293c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 30, "Expand file name wildcards"); 1294c80476e4SDavid E. O'Brien 1295c80476e4SDavid E. O'Brien f++; 1296c80476e4SDavid E. O'Brien f->name = "expand-history"; 1297c80476e4SDavid E. O'Brien f->func = F_EXPAND_HISTORY; 1298c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 31, "Expand history escapes"); 1299c80476e4SDavid E. O'Brien 1300c80476e4SDavid E. O'Brien f++; 1301c80476e4SDavid E. O'Brien f->name = "expand-line"; 1302c80476e4SDavid E. O'Brien f->func = F_EXPAND; 1303c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 32, "Expand the history escapes in a line"); 1304c80476e4SDavid E. O'Brien 1305c80476e4SDavid E. O'Brien f++; 1306c80476e4SDavid E. O'Brien f->name = "expand-variables"; 1307c80476e4SDavid E. O'Brien f->func = F_EXPAND_VARS; 1308c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 33, "Expand variables"); 1309c80476e4SDavid E. O'Brien 1310c80476e4SDavid E. O'Brien f++; 1311c80476e4SDavid E. O'Brien f->name = "forward-char"; 1312c80476e4SDavid E. O'Brien f->func = F_CHARFWD; 1313c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 34, "Move forward one character"); 1314c80476e4SDavid E. O'Brien 1315c80476e4SDavid E. O'Brien f++; 1316c80476e4SDavid E. O'Brien f->name = "forward-word"; 1317c80476e4SDavid E. O'Brien f->func = F_WORDFWD; 1318c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 35, "Move forward to end of current word"); 1319c80476e4SDavid E. O'Brien 1320c80476e4SDavid E. O'Brien f++; 1321c80476e4SDavid E. O'Brien f->name = "gosmacs-transpose-chars"; 1322c80476e4SDavid E. O'Brien f->func = F_GCHARSWITCH; 1323c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 36, "Exchange the two characters before the cursor"); 1324c80476e4SDavid E. O'Brien 1325c80476e4SDavid E. O'Brien f++; 1326c80476e4SDavid E. O'Brien f->name = "history-search-backward"; 1327c80476e4SDavid E. O'Brien f->func = F_UP_SEARCH_HIST; 1328c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 37, 1329c80476e4SDavid E. O'Brien "Search in history backward for line beginning as current"); 1330c80476e4SDavid E. O'Brien 1331c80476e4SDavid E. O'Brien f++; 1332c80476e4SDavid E. O'Brien f->name = "history-search-forward"; 1333c80476e4SDavid E. O'Brien f->func = F_DOWN_SEARCH_HIST; 1334c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 38, 1335c80476e4SDavid E. O'Brien "Search in history forward for line beginning as current"); 1336c80476e4SDavid E. O'Brien 1337c80476e4SDavid E. O'Brien f++; 1338c80476e4SDavid E. O'Brien f->name = "insert-last-word"; 1339c80476e4SDavid E. O'Brien f->func = F_LAST_ITEM; 1340c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 39, "Insert last item of previous command"); 1341c80476e4SDavid E. O'Brien 1342c80476e4SDavid E. O'Brien f++; 1343c80476e4SDavid E. O'Brien f->name = "i-search-fwd"; 1344c80476e4SDavid E. O'Brien f->func = F_INC_FWD; 1345c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 40, "Incremental search forward"); 1346c80476e4SDavid E. O'Brien 1347c80476e4SDavid E. O'Brien f++; 1348c80476e4SDavid E. O'Brien f->name = "i-search-back"; 1349c80476e4SDavid E. O'Brien f->func = F_INC_BACK; 1350c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 41, "Incremental search backward"); 1351c80476e4SDavid E. O'Brien 1352c80476e4SDavid E. O'Brien f++; 1353c80476e4SDavid E. O'Brien f->name = "keyboard-quit"; 1354c80476e4SDavid E. O'Brien f->func = F_STARTOVER; 1355c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 42, "Clear line"); 1356c80476e4SDavid E. O'Brien 1357c80476e4SDavid E. O'Brien f++; 1358c80476e4SDavid E. O'Brien f->name = "kill-line"; 1359c80476e4SDavid E. O'Brien f->func = F_KILLEND; 1360c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 43, "Cut to end of line and save in cut buffer"); 1361c80476e4SDavid E. O'Brien 1362c80476e4SDavid E. O'Brien f++; 1363c80476e4SDavid E. O'Brien f->name = "kill-region"; 1364c80476e4SDavid E. O'Brien f->func = F_KILLREGION; 1365c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 44, 1366c80476e4SDavid E. O'Brien "Cut area between mark and cursor and save in cut buffer"); 1367c80476e4SDavid E. O'Brien 1368c80476e4SDavid E. O'Brien f++; 1369c80476e4SDavid E. O'Brien f->name = "kill-whole-line"; 1370c80476e4SDavid E. O'Brien f->func = F_KILLALL; 1371c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 45, "Cut the entire line and save in cut buffer"); 1372c80476e4SDavid E. O'Brien 1373c80476e4SDavid E. O'Brien f++; 1374c80476e4SDavid E. O'Brien f->name = "list-choices"; 1375c80476e4SDavid E. O'Brien f->func = F_LIST_CHOICES; 1376c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 46, "List choices for completion"); 1377c80476e4SDavid E. O'Brien 1378c80476e4SDavid E. O'Brien f++; 1379c80476e4SDavid E. O'Brien f->name = "list-choices-raw"; 1380c80476e4SDavid E. O'Brien f->func = F_LIST_ALL; 1381c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 47, 1382c80476e4SDavid E. O'Brien "List choices for completion overriding programmable completion"); 1383c80476e4SDavid E. O'Brien 1384c80476e4SDavid E. O'Brien f++; 1385c80476e4SDavid E. O'Brien f->name = "list-glob"; 1386c80476e4SDavid E. O'Brien f->func = F_LIST_GLOB; 1387c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 48, "List file name wildcard matches"); 1388c80476e4SDavid E. O'Brien 1389c80476e4SDavid E. O'Brien f++; 1390c80476e4SDavid E. O'Brien f->name = "list-or-eof"; 1391c80476e4SDavid E. O'Brien f->func = F_LIST_EOF; 1392c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 49, 1393c80476e4SDavid E. O'Brien "List choices for completion or indicate end of file if empty line"); 1394c80476e4SDavid E. O'Brien 1395c80476e4SDavid E. O'Brien f++; 1396c80476e4SDavid E. O'Brien f->name = "load-average"; 1397c80476e4SDavid E. O'Brien f->func = F_LOAD_AVERAGE; 1398c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 50, "Display load average and current process status"); 1399c80476e4SDavid E. O'Brien 1400c80476e4SDavid E. O'Brien f++; 1401c80476e4SDavid E. O'Brien f->name = "magic-space"; 1402c80476e4SDavid E. O'Brien f->func = F_MAGIC_SPACE; 1403c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 51, "Expand history escapes and insert a space"); 1404c80476e4SDavid E. O'Brien 1405c80476e4SDavid E. O'Brien f++; 1406c80476e4SDavid E. O'Brien f->name = "newline"; 1407c80476e4SDavid E. O'Brien f->func = F_NEWLINE; 1408c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 52, "Execute command"); 1409c80476e4SDavid E. O'Brien 1410c80476e4SDavid E. O'Brien f++; 1411c80476e4SDavid E. O'Brien f->name = "normalize-path"; 1412c80476e4SDavid E. O'Brien f->func = F_PATH_NORM; 1413c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 53, 1414c80476e4SDavid E. O'Brien "Expand pathnames, eliminating leading .'s and ..'s"); 1415c80476e4SDavid E. O'Brien 1416c80476e4SDavid E. O'Brien f++; 1417c80476e4SDavid E. O'Brien f->name = "normalize-command"; 1418c80476e4SDavid E. O'Brien f->func = F_COMMAND_NORM; 1419c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 54, 1420c80476e4SDavid E. O'Brien "Expand commands to the resulting pathname or alias"); 1421c80476e4SDavid E. O'Brien 1422c80476e4SDavid E. O'Brien f++; 1423c80476e4SDavid E. O'Brien f->name = "overwrite-mode"; 1424c80476e4SDavid E. O'Brien f->func = F_INSOVR; 1425c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 55, 1426c80476e4SDavid E. O'Brien "Switch from insert to overwrite mode or vice versa"); 1427c80476e4SDavid E. O'Brien 1428c80476e4SDavid E. O'Brien f++; 1429c80476e4SDavid E. O'Brien f->name = "prefix-meta"; 1430c80476e4SDavid E. O'Brien f->func = F_METANEXT; 1431c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 56, "Add 8th bit to next character typed"); 1432c80476e4SDavid E. O'Brien 1433c80476e4SDavid E. O'Brien f++; 1434c80476e4SDavid E. O'Brien f->name = "quoted-insert"; 1435c80476e4SDavid E. O'Brien f->func = F_QUOTE; 1436c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 57, "Add the next character typed to the line verbatim"); 1437c80476e4SDavid E. O'Brien 1438c80476e4SDavid E. O'Brien f++; 1439c80476e4SDavid E. O'Brien f->name = "redisplay"; 1440c80476e4SDavid E. O'Brien f->func = F_REDISP; 1441c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 58, "Redisplay everything"); 1442c80476e4SDavid E. O'Brien 1443c80476e4SDavid E. O'Brien f++; 1444c80476e4SDavid E. O'Brien f->name = "run-fg-editor"; 1445c80476e4SDavid E. O'Brien f->func = F_RUN_FG_EDITOR; 1446c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 59, "Restart stopped editor"); 1447c80476e4SDavid E. O'Brien 1448c80476e4SDavid E. O'Brien f++; 1449c80476e4SDavid E. O'Brien f->name = "run-help"; 1450c80476e4SDavid E. O'Brien f->func = F_HELPME; 1451c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 60, "Look for help on current command"); 1452c80476e4SDavid E. O'Brien 1453c80476e4SDavid E. O'Brien f++; 1454c80476e4SDavid E. O'Brien f->name = "self-insert-command"; 1455c80476e4SDavid E. O'Brien f->func = F_INSERT; 1456c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 61, "This character is added to the line"); 1457c80476e4SDavid E. O'Brien 1458c80476e4SDavid E. O'Brien f++; 1459c80476e4SDavid E. O'Brien f->name = "sequence-lead-in"; 1460c80476e4SDavid E. O'Brien f->func = F_XKEY; 1461c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 62, 1462c80476e4SDavid E. O'Brien "This character is the first in a character sequence"); 1463c80476e4SDavid E. O'Brien 1464c80476e4SDavid E. O'Brien f++; 1465c80476e4SDavid E. O'Brien f->name = "set-mark-command"; 1466c80476e4SDavid E. O'Brien f->func = F_SET_MARK; 1467c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 63, "Set the mark at cursor"); 1468c80476e4SDavid E. O'Brien 1469c80476e4SDavid E. O'Brien f++; 1470c80476e4SDavid E. O'Brien f->name = "spell-word"; 1471c80476e4SDavid E. O'Brien f->func = F_CORRECT; 1472c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 64, "Correct the spelling of current word"); 1473c80476e4SDavid E. O'Brien 1474c80476e4SDavid E. O'Brien f++; 1475c80476e4SDavid E. O'Brien f->name = "spell-line"; 1476c80476e4SDavid E. O'Brien f->func = F_CORRECT_L; 1477c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 65, "Correct the spelling of entire line"); 1478c80476e4SDavid E. O'Brien 1479c80476e4SDavid E. O'Brien f++; 1480c80476e4SDavid E. O'Brien f->name = "stuff-char"; 1481c80476e4SDavid E. O'Brien f->func = F_STUFF_CHAR; 1482c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 66, "Send character to tty in cooked mode"); 1483c80476e4SDavid E. O'Brien 1484c80476e4SDavid E. O'Brien f++; 1485c80476e4SDavid E. O'Brien f->name = "toggle-literal-history"; 1486c80476e4SDavid E. O'Brien f->func = F_TOGGLE_HIST; 1487c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 67, 1488c80476e4SDavid E. O'Brien "Toggle between literal and lexical current history line"); 1489c80476e4SDavid E. O'Brien 1490c80476e4SDavid E. O'Brien f++; 1491c80476e4SDavid E. O'Brien f->name = "transpose-chars"; 1492c80476e4SDavid E. O'Brien f->func = F_CHARSWITCH; 1493c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 68, 1494c80476e4SDavid E. O'Brien "Exchange the character to the left of the cursor with the one under"); 1495c80476e4SDavid E. O'Brien 1496c80476e4SDavid E. O'Brien f++; 1497c80476e4SDavid E. O'Brien f->name = "transpose-gosling"; 1498c80476e4SDavid E. O'Brien f->func = F_GCHARSWITCH; 1499c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 69, "Exchange the two characters before the cursor"); 1500c80476e4SDavid E. O'Brien 1501c80476e4SDavid E. O'Brien f++; 1502c80476e4SDavid E. O'Brien f->name = "tty-dsusp"; 1503c80476e4SDavid E. O'Brien f->func = F_TTY_DSUSP; 1504c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 70, "Tty delayed suspend character"); 1505c80476e4SDavid E. O'Brien 1506c80476e4SDavid E. O'Brien f++; 1507c80476e4SDavid E. O'Brien f->name = "tty-flush-output"; 1508c80476e4SDavid E. O'Brien f->func = F_TTY_FLUSHO; 1509c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 71, "Tty flush output character"); 1510c80476e4SDavid E. O'Brien 1511c80476e4SDavid E. O'Brien f++; 1512c80476e4SDavid E. O'Brien f->name = "tty-sigintr"; 1513c80476e4SDavid E. O'Brien f->func = F_TTY_INT; 1514c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 72, "Tty interrupt character"); 1515c80476e4SDavid E. O'Brien 1516c80476e4SDavid E. O'Brien f++; 1517c80476e4SDavid E. O'Brien f->name = "tty-sigquit"; 1518c80476e4SDavid E. O'Brien f->func = F_TTY_QUIT; 1519c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 73, "Tty quit character"); 1520c80476e4SDavid E. O'Brien 1521c80476e4SDavid E. O'Brien f++; 1522c80476e4SDavid E. O'Brien f->name = "tty-sigtsusp"; 1523c80476e4SDavid E. O'Brien f->func = F_TTY_TSUSP; 1524c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 74, "Tty suspend character"); 1525c80476e4SDavid E. O'Brien 1526c80476e4SDavid E. O'Brien f++; 1527c80476e4SDavid E. O'Brien f->name = "tty-start-output"; 1528c80476e4SDavid E. O'Brien f->func = F_TTY_STARTO; 1529c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 75, "Tty allow output character"); 1530c80476e4SDavid E. O'Brien 1531c80476e4SDavid E. O'Brien f++; 1532c80476e4SDavid E. O'Brien f->name = "tty-stop-output"; 1533c80476e4SDavid E. O'Brien f->func = F_TTY_STOPO; 1534c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 76, "Tty disallow output character"); 1535c80476e4SDavid E. O'Brien 1536c80476e4SDavid E. O'Brien f++; 1537c80476e4SDavid E. O'Brien f->name = "undefined-key"; 1538c80476e4SDavid E. O'Brien f->func = F_UNASSIGNED; 1539c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 77, "Indicates unbound character"); 1540c80476e4SDavid E. O'Brien 1541c80476e4SDavid E. O'Brien f++; 1542c80476e4SDavid E. O'Brien f->name = "universal-argument"; 1543c80476e4SDavid E. O'Brien f->func = F_ARGFOUR; 1544c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 78, "Emacs universal argument (argument times 4)"); 1545c80476e4SDavid E. O'Brien 1546c80476e4SDavid E. O'Brien f++; 1547c80476e4SDavid E. O'Brien f->name = "up-history"; 1548c80476e4SDavid E. O'Brien f->func = F_UP_HIST; 1549c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 79, "Move to previous history line"); 1550c80476e4SDavid E. O'Brien 1551c80476e4SDavid E. O'Brien f++; 1552c80476e4SDavid E. O'Brien f->name = "upcase-word"; 1553c80476e4SDavid E. O'Brien f->func = F_CASEUPPER; 1554c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 80, 1555c80476e4SDavid E. O'Brien "Uppercase the characters from cursor to end of current word"); 1556c80476e4SDavid E. O'Brien 1557c80476e4SDavid E. O'Brien f++; 1558c80476e4SDavid E. O'Brien f->name = "vi-beginning-of-next-word"; 1559c80476e4SDavid E. O'Brien f->func = V_WORDBEGNEXT; 1560c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 81, "Vi goto the beginning of next word"); 1561c80476e4SDavid E. O'Brien 1562c80476e4SDavid E. O'Brien f++; 1563c80476e4SDavid E. O'Brien f->name = "vi-add"; 1564c80476e4SDavid E. O'Brien f->func = V_ADD; 1565c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 82, "Vi enter insert mode after the cursor"); 1566c80476e4SDavid E. O'Brien 1567c80476e4SDavid E. O'Brien f++; 1568c80476e4SDavid E. O'Brien f->name = "vi-add-at-eol"; 1569c80476e4SDavid E. O'Brien f->func = V_ADDEND; 1570c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 83, "Vi enter insert mode at end of line"); 1571c80476e4SDavid E. O'Brien 1572c80476e4SDavid E. O'Brien f++; 1573c80476e4SDavid E. O'Brien f->name = "vi-chg-case"; 1574c80476e4SDavid E. O'Brien f->func = V_CHGCASE; 1575c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 84, 1576c80476e4SDavid E. O'Brien "Vi change case of character under cursor and advance one character"); 1577c80476e4SDavid E. O'Brien 1578c80476e4SDavid E. O'Brien f++; 1579c80476e4SDavid E. O'Brien f->name = "vi-chg-meta"; 1580c80476e4SDavid E. O'Brien f->func = V_CHGMETA; 1581c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 85, "Vi change prefix command"); 1582c80476e4SDavid E. O'Brien 1583c80476e4SDavid E. O'Brien f++; 1584c80476e4SDavid E. O'Brien f->name = "vi-chg-to-eol"; 1585c80476e4SDavid E. O'Brien f->func = V_CHGTOEND; 1586c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 86, "Vi change to end of line"); 1587c80476e4SDavid E. O'Brien 1588c80476e4SDavid E. O'Brien f++; 1589c80476e4SDavid E. O'Brien f->name = "vi-cmd-mode"; 1590c80476e4SDavid E. O'Brien f->func = V_CMD_MODE; 1591c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 87, 1592c80476e4SDavid E. O'Brien "Enter vi command mode (use alternative key bindings)"); 1593c80476e4SDavid E. O'Brien 1594c80476e4SDavid E. O'Brien f++; 1595c80476e4SDavid E. O'Brien f->name = "vi-cmd-mode-complete"; 1596c80476e4SDavid E. O'Brien f->func = V_CM_COMPLETE; 1597c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 88, "Vi command mode complete current word"); 1598c80476e4SDavid E. O'Brien 1599c80476e4SDavid E. O'Brien f++; 1600c80476e4SDavid E. O'Brien f->name = "vi-delprev"; 1601c80476e4SDavid E. O'Brien f->func = V_DELPREV; 1602c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 89, "Vi move to previous character (backspace)"); 1603c80476e4SDavid E. O'Brien 1604c80476e4SDavid E. O'Brien f++; 1605c80476e4SDavid E. O'Brien f->name = "vi-delmeta"; 1606c80476e4SDavid E. O'Brien f->func = V_DELMETA; 1607c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 90, "Vi delete prefix command"); 1608c80476e4SDavid E. O'Brien 1609c80476e4SDavid E. O'Brien f++; 1610c80476e4SDavid E. O'Brien f->name = "vi-endword"; 1611c80476e4SDavid E. O'Brien f->func = V_ENDWORD; 1612c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 91, 1613c80476e4SDavid E. O'Brien "Vi move to the end of the current space delimited word"); 1614c80476e4SDavid E. O'Brien 1615c80476e4SDavid E. O'Brien f++; 1616c80476e4SDavid E. O'Brien f->name = "vi-eword"; 1617c80476e4SDavid E. O'Brien f->func = V_EWORD; 1618c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 92, "Vi move to the end of the current word"); 1619c80476e4SDavid E. O'Brien 1620c80476e4SDavid E. O'Brien f++; 1621c80476e4SDavid E. O'Brien f->name = "vi-char-back"; 1622c80476e4SDavid E. O'Brien f->func = V_CHAR_BACK; 1623c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 93, "Vi move to the character specified backward"); 1624c80476e4SDavid E. O'Brien 1625c80476e4SDavid E. O'Brien f++; 1626c80476e4SDavid E. O'Brien f->name = "vi-char-fwd"; 1627c80476e4SDavid E. O'Brien f->func = V_CHAR_FWD; 1628c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 94, "Vi move to the character specified forward"); 1629c80476e4SDavid E. O'Brien 1630c80476e4SDavid E. O'Brien f++; 1631c80476e4SDavid E. O'Brien f->name = "vi-charto-back"; 1632c80476e4SDavid E. O'Brien f->func = V_CHARTO_BACK; 1633c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 95, "Vi move up to the character specified backward"); 1634c80476e4SDavid E. O'Brien 1635c80476e4SDavid E. O'Brien f++; 1636c80476e4SDavid E. O'Brien f->name = "vi-charto-fwd"; 1637c80476e4SDavid E. O'Brien f->func = V_CHARTO_FWD; 1638c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 96, "Vi move up to the character specified forward"); 1639c80476e4SDavid E. O'Brien 1640c80476e4SDavid E. O'Brien f++; 1641c80476e4SDavid E. O'Brien f->name = "vi-insert"; 1642c80476e4SDavid E. O'Brien f->func = V_INSERT; 1643c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 97, "Enter vi insert mode"); 1644c80476e4SDavid E. O'Brien 1645c80476e4SDavid E. O'Brien f++; 1646c80476e4SDavid E. O'Brien f->name = "vi-insert-at-bol"; 1647c80476e4SDavid E. O'Brien f->func = V_INSBEG; 1648c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 98, "Enter vi insert mode at beginning of line"); 1649c80476e4SDavid E. O'Brien 1650c80476e4SDavid E. O'Brien f++; 1651c80476e4SDavid E. O'Brien f->name = "vi-repeat-char-fwd"; 1652c80476e4SDavid E. O'Brien f->func = V_RCHAR_FWD; 1653c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 99, 1654c80476e4SDavid E. O'Brien "Vi repeat current character search in the same search direction"); 1655c80476e4SDavid E. O'Brien 1656c80476e4SDavid E. O'Brien f++; 1657c80476e4SDavid E. O'Brien f->name = "vi-repeat-char-back"; 1658c80476e4SDavid E. O'Brien f->func = V_RCHAR_BACK; 1659c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 100, 1660c80476e4SDavid E. O'Brien "Vi repeat current character search in the opposite search direction"); 1661c80476e4SDavid E. O'Brien 1662c80476e4SDavid E. O'Brien f++; 1663c80476e4SDavid E. O'Brien f->name = "vi-repeat-search-fwd"; 1664c80476e4SDavid E. O'Brien f->func = V_RSRCH_FWD; 1665c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 101, 1666c80476e4SDavid E. O'Brien "Vi repeat current search in the same search direction"); 1667c80476e4SDavid E. O'Brien 1668c80476e4SDavid E. O'Brien f++; 1669c80476e4SDavid E. O'Brien f->name = "vi-repeat-search-back"; 1670c80476e4SDavid E. O'Brien f->func = V_RSRCH_BACK; 1671c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 102, 1672c80476e4SDavid E. O'Brien "Vi repeat current search in the opposite search direction"); 1673c80476e4SDavid E. O'Brien 1674c80476e4SDavid E. O'Brien f++; 1675c80476e4SDavid E. O'Brien f->name = "vi-replace-char"; 1676c80476e4SDavid E. O'Brien f->func = V_REPLONE; 1677c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 103, 1678c80476e4SDavid E. O'Brien "Vi replace character under the cursor with the next character typed"); 1679c80476e4SDavid E. O'Brien 1680c80476e4SDavid E. O'Brien f++; 1681c80476e4SDavid E. O'Brien f->name = "vi-replace-mode"; 1682c80476e4SDavid E. O'Brien f->func = V_REPLMODE; 1683c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 104, "Vi replace mode"); 1684c80476e4SDavid E. O'Brien 1685c80476e4SDavid E. O'Brien f++; 1686c80476e4SDavid E. O'Brien f->name = "vi-search-back"; 1687c80476e4SDavid E. O'Brien f->func = V_USH_META; 1688c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 105, "Vi search history backward"); 1689c80476e4SDavid E. O'Brien 1690c80476e4SDavid E. O'Brien f++; 1691c80476e4SDavid E. O'Brien f->name = "vi-search-fwd"; 1692c80476e4SDavid E. O'Brien f->func = V_DSH_META; 1693c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 106, "Vi search history forward"); 1694c80476e4SDavid E. O'Brien 1695c80476e4SDavid E. O'Brien f++; 1696c80476e4SDavid E. O'Brien f->name = "vi-substitute-char"; 1697c80476e4SDavid E. O'Brien f->func = V_SUBSTCHAR; 1698c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 107, 1699c80476e4SDavid E. O'Brien "Vi replace character under the cursor and enter insert mode"); 1700c80476e4SDavid E. O'Brien 1701c80476e4SDavid E. O'Brien f++; 1702c80476e4SDavid E. O'Brien f->name = "vi-substitute-line"; 1703c80476e4SDavid E. O'Brien f->func = V_SUBSTLINE; 1704c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 108, "Vi replace entire line"); 1705c80476e4SDavid E. O'Brien 1706c80476e4SDavid E. O'Brien f++; 1707c80476e4SDavid E. O'Brien f->name = "vi-word-back"; 1708c80476e4SDavid E. O'Brien f->func = V_WORDBACK; 1709c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 109, "Vi move to the previous word"); 1710c80476e4SDavid E. O'Brien 1711c80476e4SDavid E. O'Brien f++; 1712c80476e4SDavid E. O'Brien f->name = "vi-word-fwd"; 1713c80476e4SDavid E. O'Brien f->func = V_WORDFWD; 1714c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 110, "Vi move to the next word"); 1715c80476e4SDavid E. O'Brien 1716c80476e4SDavid E. O'Brien f++; 1717c80476e4SDavid E. O'Brien f->name = "vi-undo"; 1718c80476e4SDavid E. O'Brien f->func = V_UNDO; 1719c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 111, "Vi undo last change"); 1720c80476e4SDavid E. O'Brien 1721c80476e4SDavid E. O'Brien f++; 1722c80476e4SDavid E. O'Brien f->name = "vi-zero"; 1723c80476e4SDavid E. O'Brien f->func = V_ZERO; 1724c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 112, "Vi goto the beginning of line"); 1725c80476e4SDavid E. O'Brien 1726c80476e4SDavid E. O'Brien f++; 1727c80476e4SDavid E. O'Brien f->name = "which-command"; 1728c80476e4SDavid E. O'Brien f->func = F_WHICH; 1729c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 113, "Perform which of current command"); 1730c80476e4SDavid E. O'Brien 1731c80476e4SDavid E. O'Brien f++; 1732c80476e4SDavid E. O'Brien f->name = "yank"; 1733c80476e4SDavid E. O'Brien f->func = F_YANK_KILL; 1734c80476e4SDavid E. O'Brien f->desc = CSAVS(3, 114, "Paste cut buffer at cursor position"); 1735c80476e4SDavid E. O'Brien 1736c80476e4SDavid E. O'Brien f++; 17376767bd61SMark Peek f->name = "yank-pop"; 17386767bd61SMark Peek f->func = F_YANK_POP; 17396767bd61SMark Peek f->desc = CSAVS(3, 115, 17406767bd61SMark Peek "Replace just-yanked text with yank from earlier kill"); 17416767bd61SMark Peek 17426767bd61SMark Peek f++; 1743c80476e4SDavid E. O'Brien f->name = "e_copy_to_clipboard"; 1744c80476e4SDavid E. O'Brien f->func = F_COPY_CLIP; 17456767bd61SMark Peek f->desc = CSAVS(3, 116, 17466767bd61SMark Peek "(WIN32 only) Copy cut buffer to system clipboard"); 17476767bd61SMark Peek 1748c80476e4SDavid E. O'Brien f++; 1749c80476e4SDavid E. O'Brien f->name = "e_paste_from_clipboard"; 1750c80476e4SDavid E. O'Brien f->func = F_PASTE_CLIP; 17516767bd61SMark Peek f->desc = CSAVS(3, 117, 17526767bd61SMark Peek "(WIN32 only) Paste clipboard buffer at cursor position"); 17536767bd61SMark Peek 1754c80476e4SDavid E. O'Brien f++; 1755c80476e4SDavid E. O'Brien f->name = "e_dosify_next"; 1756c80476e4SDavid E. O'Brien f->func = F_DOSIFY_NEXT; 17576767bd61SMark Peek f->desc = CSAVS(3, 118, 17586767bd61SMark Peek "(WIN32 only) Convert each '/' in next word to '\\\\'"); 17596767bd61SMark Peek 1760c80476e4SDavid E. O'Brien f++; 1761c80476e4SDavid E. O'Brien f->name = "e_dosify_prev"; 1762c80476e4SDavid E. O'Brien f->func = F_DOSIFY_PREV; 17636767bd61SMark Peek f->desc = CSAVS(3, 119, 17646767bd61SMark Peek "(WIN32 only) Convert each '/' in previous word to '\\\\'"); 17656767bd61SMark Peek 17663b6eaa7bSAndrey A. Chernov f++; 17673b6eaa7bSAndrey A. Chernov f->name = "e_page_up"; 17683b6eaa7bSAndrey A. Chernov f->func = F_PAGE_UP; 17696767bd61SMark Peek f->desc = CSAVS(3, 120, "(WIN32 only) Page visible console window up"); 17706767bd61SMark Peek 17713b6eaa7bSAndrey A. Chernov f++; 17723b6eaa7bSAndrey A. Chernov f->name = "e_page_down"; 17733b6eaa7bSAndrey A. Chernov f->func = F_PAGE_DOWN; 17746767bd61SMark Peek f->desc = CSAVS(3, 121, "(WIN32 only) Page visible console window down"); 1775c80476e4SDavid E. O'Brien 1776c80476e4SDavid E. O'Brien f++; 1777c80476e4SDavid E. O'Brien f->name = NULL; 1778c80476e4SDavid E. O'Brien f->func = 0; 1779c80476e4SDavid E. O'Brien f->desc = NULL; 1780c80476e4SDavid E. O'Brien 1781c80476e4SDavid E. O'Brien f++; 1782c80476e4SDavid E. O'Brien if (f - FuncNames != F_NUM_FUNCNAMES) 1783c80476e4SDavid E. O'Brien abort(); 1784c80476e4SDavid E. O'Brien } 1785c80476e4SDavid E. O'Brien 1786c80476e4SDavid E. O'Brien #ifdef DEBUG_EDIT 1787c80476e4SDavid E. O'Brien void 1788c80476e4SDavid E. O'Brien CheckMaps() 1789c80476e4SDavid E. O'Brien { /* check the size of the key maps */ 1790c80476e4SDavid E. O'Brien int c1 = (NT_NUM_KEYS * sizeof(KEYCMD)); 1791c80476e4SDavid E. O'Brien 1792c80476e4SDavid E. O'Brien if ((sizeof(CcKeyMap)) != c1) 1793c80476e4SDavid E. O'Brien xprintf("CcKeyMap should be %d entries, but is %d.\r\n", 1794c80476e4SDavid E. O'Brien NT_NUM_KEYS, sizeof(CcKeyMap) / sizeof(KEYCMD))); 1795c80476e4SDavid E. O'Brien 1796c80476e4SDavid E. O'Brien if ((sizeof(CcAltMap)) != c1) 1797c80476e4SDavid E. O'Brien xprintf("CcAltMap should be %d entries, but is %d.\r\n", 1798c80476e4SDavid E. O'Brien NT_NUM_KEYS, (sizeof(CcAltMap) / sizeof(KEYCMD))); 1799c80476e4SDavid E. O'Brien 1800c80476e4SDavid E. O'Brien if ((sizeof(CcEmacsMap)) != c1) 1801c80476e4SDavid E. O'Brien xprintf("CcEmacsMap should be %d entries, but is %d.\r\n", 1802c80476e4SDavid E. O'Brien NT_NUM_KEYS, (sizeof(CcEmacsMap) / sizeof(KEYCMD))); 1803c80476e4SDavid E. O'Brien 1804c80476e4SDavid E. O'Brien if ((sizeof(CcViMap)) != c1) 1805c80476e4SDavid E. O'Brien xprintf("CcViMap should be %d entries, but is %d.\r\n", 1806c80476e4SDavid E. O'Brien NT_NUM_KEYS, (sizeof(CcViMap) / sizeof(KEYCMD))); 1807c80476e4SDavid E. O'Brien 1808c80476e4SDavid E. O'Brien if ((sizeof(CcViCmdMap)) != c1) 1809c80476e4SDavid E. O'Brien xprintf("CcViCmdMap should be %d entries, but is %d.\r\n", 1810c80476e4SDavid E. O'Brien NT_NUM_KEYS, (sizeof(CcViCmdMap) / sizeof(KEYCMD))); 1811c80476e4SDavid E. O'Brien } 1812c80476e4SDavid E. O'Brien 1813c80476e4SDavid E. O'Brien #endif 1814c80476e4SDavid E. O'Brien 1815c80476e4SDavid E. O'Brien bool MapsAreInited = 0; 1816c80476e4SDavid E. O'Brien bool NLSMapsAreInited = 0; 1817c80476e4SDavid E. O'Brien bool NoNLSRebind; 1818c80476e4SDavid E. O'Brien 1819c80476e4SDavid E. O'Brien void 1820c80476e4SDavid E. O'Brien ed_InitNLSMaps() 1821c80476e4SDavid E. O'Brien { 1822c80476e4SDavid E. O'Brien register int i; 1823c80476e4SDavid E. O'Brien 1824c80476e4SDavid E. O'Brien if (AsciiOnly) 1825c80476e4SDavid E. O'Brien return; 1826c80476e4SDavid E. O'Brien if (NoNLSRebind) 1827c80476e4SDavid E. O'Brien return; 1828c80476e4SDavid E. O'Brien for (i = 0200; i <= 0377; i++) { 1829c80476e4SDavid E. O'Brien if (Isprint(i)) { 1830c80476e4SDavid E. O'Brien CcKeyMap[i] = F_INSERT; 1831c80476e4SDavid E. O'Brien } 1832c80476e4SDavid E. O'Brien } 1833c80476e4SDavid E. O'Brien NLSMapsAreInited = 1; 1834c80476e4SDavid E. O'Brien } 1835c80476e4SDavid E. O'Brien 1836c80476e4SDavid E. O'Brien static void 1837c80476e4SDavid E. O'Brien ed_InitMetaBindings() 1838c80476e4SDavid E. O'Brien { 1839c80476e4SDavid E. O'Brien Char buf[3]; 1840c80476e4SDavid E. O'Brien int i; 1841c80476e4SDavid E. O'Brien CStr cstr; 1842c80476e4SDavid E. O'Brien KEYCMD *map; 1843c80476e4SDavid E. O'Brien 1844c80476e4SDavid E. O'Brien map = CcKeyMap; 1845c80476e4SDavid E. O'Brien for (i = 0; i <= 0377 && CcKeyMap[i] != F_METANEXT; i++) 1846c80476e4SDavid E. O'Brien continue; 1847c80476e4SDavid E. O'Brien if (i > 0377) { 1848c80476e4SDavid E. O'Brien for (i = 0; i <= 0377 && CcAltMap[i] != F_METANEXT; i++) 1849c80476e4SDavid E. O'Brien continue; 1850c80476e4SDavid E. O'Brien if (i > 0377) { 1851c80476e4SDavid E. O'Brien i = CTL_ESC('\033'); 1852c80476e4SDavid E. O'Brien if (VImode) 1853c80476e4SDavid E. O'Brien map = CcAltMap; 1854c80476e4SDavid E. O'Brien } 1855c80476e4SDavid E. O'Brien else { 1856c80476e4SDavid E. O'Brien map = CcAltMap; 1857c80476e4SDavid E. O'Brien } 1858c80476e4SDavid E. O'Brien } 1859c80476e4SDavid E. O'Brien buf[0] = (Char) i; 1860c80476e4SDavid E. O'Brien buf[2] = 0; 1861c80476e4SDavid E. O'Brien cstr.buf = buf; 1862c80476e4SDavid E. O'Brien cstr.len = 2; 1863c80476e4SDavid E. O'Brien for (i = 0200; i <= 0377; i++) { 1864c80476e4SDavid E. O'Brien if (map[i] != F_INSERT && map[i] != F_UNASSIGNED && map[i] != F_XKEY) { 18653b6eaa7bSAndrey A. Chernov #ifdef IS_ASCII 1866c80476e4SDavid E. O'Brien buf[1] = i & ASCII; 1867c80476e4SDavid E. O'Brien #else 1868c80476e4SDavid E. O'Brien buf[1] = _toebcdic[_toascii[i] & ASCII]; 1869c80476e4SDavid E. O'Brien #endif 1870c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd((int) map[i]), XK_CMD); 1871c80476e4SDavid E. O'Brien } 1872c80476e4SDavid E. O'Brien } 1873c80476e4SDavid E. O'Brien map[buf[0]] = F_XKEY; 1874c80476e4SDavid E. O'Brien } 1875c80476e4SDavid E. O'Brien 1876c80476e4SDavid E. O'Brien void 1877c80476e4SDavid E. O'Brien ed_InitVIMaps() 1878c80476e4SDavid E. O'Brien { 1879c80476e4SDavid E. O'Brien register int i; 1880c80476e4SDavid E. O'Brien 1881c80476e4SDavid E. O'Brien VImode = 1; 1882c80476e4SDavid E. O'Brien ResetXmap(); 1883c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1884c80476e4SDavid E. O'Brien CcKeyMap[i] = CcViMap[i]; 1885c80476e4SDavid E. O'Brien CcAltMap[i] = CcViCmdMap[i]; 1886c80476e4SDavid E. O'Brien } 1887c80476e4SDavid E. O'Brien ed_InitMetaBindings(); 1888c80476e4SDavid E. O'Brien ed_InitNLSMaps(); 1889c80476e4SDavid E. O'Brien ResetArrowKeys(); 1890c80476e4SDavid E. O'Brien BindArrowKeys(); 1891c80476e4SDavid E. O'Brien } 1892c80476e4SDavid E. O'Brien 1893c80476e4SDavid E. O'Brien void 1894c80476e4SDavid E. O'Brien ed_InitEmacsMaps() 1895c80476e4SDavid E. O'Brien { 1896c80476e4SDavid E. O'Brien int i; 1897c80476e4SDavid E. O'Brien Char buf[3]; 1898c80476e4SDavid E. O'Brien CStr cstr; 1899c80476e4SDavid E. O'Brien cstr.buf = buf; 1900c80476e4SDavid E. O'Brien cstr.len = 2; 1901c80476e4SDavid E. O'Brien 1902c80476e4SDavid E. O'Brien VImode = 0; 1903c80476e4SDavid E. O'Brien ResetXmap(); 1904c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1905c80476e4SDavid E. O'Brien CcKeyMap[i] = CcEmacsMap[i]; 1906c80476e4SDavid E. O'Brien CcAltMap[i] = F_UNASSIGNED; 1907c80476e4SDavid E. O'Brien } 1908c80476e4SDavid E. O'Brien ed_InitMetaBindings(); 1909c80476e4SDavid E. O'Brien ed_InitNLSMaps(); 1910c80476e4SDavid E. O'Brien buf[0] = CTL_ESC('\030'); 1911c80476e4SDavid E. O'Brien buf[2] = 0; 1912c80476e4SDavid E. O'Brien buf[1] = CTL_ESC('\030'); 1913c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXCHANGE_MARK), XK_CMD); 1914c80476e4SDavid E. O'Brien buf[1] = '*'; 1915c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXPAND_GLOB), XK_CMD); 1916c80476e4SDavid E. O'Brien buf[1] = '$'; 1917c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_EXPAND_VARS), XK_CMD); 1918c80476e4SDavid E. O'Brien buf[1] = 'G'; 1919c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 1920c80476e4SDavid E. O'Brien buf[1] = 'g'; 1921c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_GLOB), XK_CMD); 1922c80476e4SDavid E. O'Brien buf[1] = 'n'; 1923c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 1924c80476e4SDavid E. O'Brien buf[1] = 'N'; 1925c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_PATH_NORM), XK_CMD); 1926c80476e4SDavid E. O'Brien buf[1] = '?'; 1927c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_COMMAND_NORM), XK_CMD); 1928c80476e4SDavid E. O'Brien buf[1] = '\t'; 1929c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_COMPLETE_ALL), XK_CMD); 1930c80476e4SDavid E. O'Brien buf[1] = CTL_ESC('\004'); /* ^D */ 1931c80476e4SDavid E. O'Brien AddXkey(&cstr, XmapCmd(F_LIST_ALL), XK_CMD); 1932c80476e4SDavid E. O'Brien ResetArrowKeys(); 1933c80476e4SDavid E. O'Brien BindArrowKeys(); 1934c80476e4SDavid E. O'Brien } 1935c80476e4SDavid E. O'Brien 1936c80476e4SDavid E. O'Brien void 1937c80476e4SDavid E. O'Brien ed_InitMaps() 1938c80476e4SDavid E. O'Brien { 1939c80476e4SDavid E. O'Brien if (MapsAreInited) 1940c80476e4SDavid E. O'Brien return; 19413b6eaa7bSAndrey A. Chernov #ifndef IS_ASCII 1942c80476e4SDavid E. O'Brien /* This machine has an EBCDIC charset. The assumptions made for the 1943c80476e4SDavid E. O'Brien * initialized keymaps therefore don't hold, since they are based on 1944c80476e4SDavid E. O'Brien * ASCII (or ISO8859-1). 1945c80476e4SDavid E. O'Brien * Here, we do a one-time transformation to EBCDIC environment 1946c80476e4SDavid E. O'Brien * for the key initializations. 1947c80476e4SDavid E. O'Brien */ 1948c80476e4SDavid E. O'Brien { 1949c80476e4SDavid E. O'Brien KEYCMD temp[NT_NUM_KEYS]; 1950c80476e4SDavid E. O'Brien static KEYCMD *const list[3] = { CcEmacsMap, CcViMap, CcViCmdMap }; 1951c80476e4SDavid E. O'Brien register int i, table; 1952c80476e4SDavid E. O'Brien 1953c80476e4SDavid E. O'Brien for (table=0; table<3; ++table) 1954c80476e4SDavid E. O'Brien { 1955c80476e4SDavid E. O'Brien /* copy ASCII ordered map to temp table */ 1956c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1957c80476e4SDavid E. O'Brien temp[i] = list[table][i]; 1958c80476e4SDavid E. O'Brien } 1959c80476e4SDavid E. O'Brien /* write back as EBCDIC ordered map */ 1960c80476e4SDavid E. O'Brien for (i = 0; i < NT_NUM_KEYS; i++) { 1961c80476e4SDavid E. O'Brien list[table][_toebcdic[i]] = temp[i]; 1962c80476e4SDavid E. O'Brien } 1963c80476e4SDavid E. O'Brien } 1964c80476e4SDavid E. O'Brien } 19653b6eaa7bSAndrey A. Chernov #endif /* !IS_ASCII */ 1966c80476e4SDavid E. O'Brien 1967c80476e4SDavid E. O'Brien #ifdef VIDEFAULT 1968c80476e4SDavid E. O'Brien ed_InitVIMaps(); 1969c80476e4SDavid E. O'Brien #else 1970c80476e4SDavid E. O'Brien ed_InitEmacsMaps(); 1971c80476e4SDavid E. O'Brien #endif 1972c80476e4SDavid E. O'Brien 1973c80476e4SDavid E. O'Brien MapsAreInited = 1; 1974c80476e4SDavid E. O'Brien } 1975