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