1/* vi_keymap.c -- the keymap for vi_mode in readline (). */
2
3/* Copyright (C) 1987-2017 Free Software Foundation, Inc.
4
5   This file is part of the GNU Readline Library (Readline), a library
6   for reading lines of text with interactive input and history editing.
7
8   Readline is free software: you can redistribute it and/or modify
9   it under the terms of the GNU General Public License as published by
10   the Free Software Foundation, either version 3 of the License, or
11   (at your option) any later version.
12
13   Readline is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with Readline.  If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#if !defined (BUFSIZ)
23#include <stdio.h>
24#endif /* !BUFSIZ */
25
26#include "readline.h"
27
28#if 0
29extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
30#endif
31
32/* The keymap arrays for handling vi mode. */
33KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
34  /* The regular control keys come first. */
35  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-@ */
36  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-a */
37  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-b */
38  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-c */
39  { ISFUNC, rl_vi_eof_maybe },			/* Control-d */
40  { ISFUNC, rl_emacs_editing_mode },		/* Control-e */
41  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-f */
42  { ISFUNC, rl_abort },				/* Control-g */
43  { ISFUNC, rl_backward_char },			/* Control-h */
44  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-i */
45  { ISFUNC, rl_newline },			/* Control-j */
46  { ISFUNC, rl_kill_line },			/* Control-k */
47  { ISFUNC, rl_clear_screen },			/* Control-l */
48  { ISFUNC, rl_newline },			/* Control-m */
49  { ISFUNC, rl_get_next_history },		/* Control-n */
50  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-o */
51  { ISFUNC, rl_get_previous_history },		/* Control-p */
52  { ISFUNC, rl_quoted_insert },			/* Control-q */
53  { ISFUNC, rl_reverse_search_history },	/* Control-r */
54  { ISFUNC, rl_forward_search_history },	/* Control-s */
55  { ISFUNC, rl_transpose_chars },		/* Control-t */
56  { ISFUNC, rl_unix_line_discard },		/* Control-u */
57  { ISFUNC, rl_quoted_insert },			/* Control-v */
58  { ISFUNC, rl_vi_unix_word_rubout },		/* Control-w */
59  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-x */
60  { ISFUNC, rl_yank },				/* Control-y */
61  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-z */
62
63  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-[ */	/* vi_escape_keymap */
64  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-\ */
65  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-] */
66  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-^ */
67  { ISFUNC, rl_vi_undo },			/* Control-_ */
68
69  /* The start of printing characters. */
70  { ISFUNC, rl_forward_char },			/* SPACE */
71  { ISFUNC, (rl_command_func_t *)0x0 },		/* ! */
72  { ISFUNC, (rl_command_func_t *)0x0 },		/* " */
73  { ISFUNC, rl_insert_comment },		/* # */
74  { ISFUNC, rl_end_of_line },			/* $ */
75  { ISFUNC, rl_vi_match },			/* % */
76  { ISFUNC, rl_vi_tilde_expand },		/* & */
77  { ISFUNC, (rl_command_func_t *)0x0 },		/* ' */
78  { ISFUNC, (rl_command_func_t *)0x0 },		/* ( */
79  { ISFUNC, (rl_command_func_t *)0x0 },		/* ) */
80  { ISFUNC, rl_vi_complete },			/* * */
81  { ISFUNC, rl_get_next_history},		/* + */
82  { ISFUNC, rl_vi_char_search },		/* , */
83  { ISFUNC, rl_get_previous_history },		/* - */
84  { ISFUNC, rl_vi_redo },			/* . */
85  { ISFUNC, rl_vi_search },			/* / */
86
87  /* Regular digits. */
88  { ISFUNC, rl_beg_of_line },			/* 0 */
89  { ISFUNC, rl_vi_arg_digit },			/* 1 */
90  { ISFUNC, rl_vi_arg_digit },			/* 2 */
91  { ISFUNC, rl_vi_arg_digit },			/* 3 */
92  { ISFUNC, rl_vi_arg_digit },			/* 4 */
93  { ISFUNC, rl_vi_arg_digit },			/* 5 */
94  { ISFUNC, rl_vi_arg_digit },			/* 6 */
95  { ISFUNC, rl_vi_arg_digit },			/* 7 */
96  { ISFUNC, rl_vi_arg_digit },			/* 8 */
97  { ISFUNC, rl_vi_arg_digit },			/* 9 */
98
99  /* A little more punctuation. */
100  { ISFUNC, (rl_command_func_t *)0x0 },		/* : */
101  { ISFUNC, rl_vi_char_search },		/* ; */
102  { ISFUNC, (rl_command_func_t *)0x0 },		/* < */
103  { ISFUNC, rl_vi_complete },			/* = */
104  { ISFUNC, (rl_command_func_t *)0x0 },		/* > */
105  { ISFUNC, rl_vi_search },			/* ? */
106  { ISFUNC, (rl_command_func_t *)0x0 },		/* @ */
107
108  /* Uppercase alphabet. */
109  { ISFUNC, rl_vi_append_eol },			/* A */
110  { ISFUNC, rl_vi_prev_word},			/* B */
111  { ISFUNC, rl_vi_change_to },			/* C */
112  { ISFUNC, rl_vi_delete_to },			/* D */
113  { ISFUNC, rl_vi_end_word },			/* E */
114  { ISFUNC, rl_vi_char_search },		/* F */
115  { ISFUNC, rl_vi_fetch_history },		/* G */
116  { ISFUNC, (rl_command_func_t *)0x0 },		/* H */
117  { ISFUNC, rl_vi_insert_beg },			/* I */
118  { ISFUNC, (rl_command_func_t *)0x0 },		/* J */
119  { ISFUNC, (rl_command_func_t *)0x0 },		/* K */
120  { ISFUNC, (rl_command_func_t *)0x0 },		/* L */
121  { ISFUNC, (rl_command_func_t *)0x0 },		/* M */
122  { ISFUNC, rl_vi_search_again },		/* N */
123  { ISFUNC, (rl_command_func_t *)0x0 },		/* O */
124  { ISFUNC, rl_vi_put },			/* P */
125  { ISFUNC, (rl_command_func_t *)0x0 },		/* Q */
126  { ISFUNC, rl_vi_replace },			/* R */
127  { ISFUNC, rl_vi_subst },			/* S */
128  { ISFUNC, rl_vi_char_search },		/* T */
129  { ISFUNC, rl_revert_line },			/* U */
130  { ISFUNC, (rl_command_func_t *)0x0 },		/* V */
131  { ISFUNC, rl_vi_next_word },			/* W */
132  { ISFUNC, rl_vi_rubout },			/* X */
133  { ISFUNC, rl_vi_yank_to },			/* Y */
134  { ISFUNC, (rl_command_func_t *)0x0 },		/* Z */
135
136  /* Some more punctuation. */
137  { ISFUNC, (rl_command_func_t *)0x0 },		/* [ */
138  { ISFUNC, rl_vi_complete },			/* \ */
139  { ISFUNC, (rl_command_func_t *)0x0 },		/* ] */
140  { ISFUNC, rl_vi_first_print },		/* ^ */
141  { ISFUNC, rl_vi_yank_arg },			/* _ */
142  { ISFUNC, rl_vi_goto_mark },			/* ` */
143
144  /* Lowercase alphabet. */
145  { ISFUNC, rl_vi_append_mode },		/* a */
146  { ISFUNC, rl_vi_prev_word },			/* b */
147  { ISFUNC, rl_vi_change_to },			/* c */
148  { ISFUNC, rl_vi_delete_to },			/* d */
149  { ISFUNC, rl_vi_end_word },			/* e */
150  { ISFUNC, rl_vi_char_search },		/* f */
151  { ISFUNC, (rl_command_func_t *)0x0 },		/* g */
152  { ISFUNC, rl_backward_char },			/* h */
153  { ISFUNC, rl_vi_insert_mode },		/* i */
154  { ISFUNC, rl_get_next_history },		/* j */
155  { ISFUNC, rl_get_previous_history },		/* k */
156  { ISFUNC, rl_forward_char },			/* l */
157  { ISFUNC, rl_vi_set_mark },			/* m */
158  { ISFUNC, rl_vi_search_again },		/* n */
159  { ISFUNC, (rl_command_func_t *)0x0 },		/* o */
160  { ISFUNC, rl_vi_put },			/* p */
161  { ISFUNC, (rl_command_func_t *)0x0 },		/* q */
162  { ISFUNC, rl_vi_change_char },		/* r */
163  { ISFUNC, rl_vi_subst },			/* s */
164  { ISFUNC, rl_vi_char_search },		/* t */
165  { ISFUNC, rl_vi_undo },			/* u */
166  { ISFUNC, (rl_command_func_t *)0x0 },		/* v */
167  { ISFUNC, rl_vi_next_word },			/* w */
168  { ISFUNC, rl_vi_delete },			/* x */
169  { ISFUNC, rl_vi_yank_to },			/* y */
170  { ISFUNC, (rl_command_func_t *)0x0 },		/* z */
171
172  /* Final punctuation. */
173  { ISFUNC, (rl_command_func_t *)0x0 },		/* { */
174  { ISFUNC, rl_vi_column },			/* | */
175  { ISFUNC, (rl_command_func_t *)0x0 },		/* } */
176  { ISFUNC, rl_vi_change_case },		/* ~ */
177  { ISFUNC, (rl_command_func_t *)0x0 },		/* RUBOUT */
178
179#if KEYMAP_SIZE > 128
180  /* Undefined keys. */
181  { ISFUNC, (rl_command_func_t *)0x0 },
182  { ISFUNC, (rl_command_func_t *)0x0 },
183  { ISFUNC, (rl_command_func_t *)0x0 },
184  { ISFUNC, (rl_command_func_t *)0x0 },
185  { ISFUNC, (rl_command_func_t *)0x0 },
186  { ISFUNC, (rl_command_func_t *)0x0 },
187  { ISFUNC, (rl_command_func_t *)0x0 },
188  { ISFUNC, (rl_command_func_t *)0x0 },
189  { ISFUNC, (rl_command_func_t *)0x0 },
190  { ISFUNC, (rl_command_func_t *)0x0 },
191  { ISFUNC, (rl_command_func_t *)0x0 },
192  { ISFUNC, (rl_command_func_t *)0x0 },
193  { ISFUNC, (rl_command_func_t *)0x0 },
194  { ISFUNC, (rl_command_func_t *)0x0 },
195  { ISFUNC, (rl_command_func_t *)0x0 },
196  { ISFUNC, (rl_command_func_t *)0x0 },
197  { ISFUNC, (rl_command_func_t *)0x0 },
198  { ISFUNC, (rl_command_func_t *)0x0 },
199  { ISFUNC, (rl_command_func_t *)0x0 },
200  { ISFUNC, (rl_command_func_t *)0x0 },
201  { ISFUNC, (rl_command_func_t *)0x0 },
202  { ISFUNC, (rl_command_func_t *)0x0 },
203  { ISFUNC, (rl_command_func_t *)0x0 },
204  { ISFUNC, (rl_command_func_t *)0x0 },
205  { ISFUNC, (rl_command_func_t *)0x0 },
206  { ISFUNC, (rl_command_func_t *)0x0 },
207  { ISFUNC, (rl_command_func_t *)0x0 },
208  { ISFUNC, (rl_command_func_t *)0x0 },
209  { ISFUNC, (rl_command_func_t *)0x0 },
210  { ISFUNC, (rl_command_func_t *)0x0 },
211  { ISFUNC, (rl_command_func_t *)0x0 },
212  { ISFUNC, (rl_command_func_t *)0x0 },
213  { ISFUNC, (rl_command_func_t *)0x0 },
214  { ISFUNC, (rl_command_func_t *)0x0 },
215  { ISFUNC, (rl_command_func_t *)0x0 },
216  { ISFUNC, (rl_command_func_t *)0x0 },
217  { ISFUNC, (rl_command_func_t *)0x0 },
218  { ISFUNC, (rl_command_func_t *)0x0 },
219  { ISFUNC, (rl_command_func_t *)0x0 },
220  { ISFUNC, (rl_command_func_t *)0x0 },
221  { ISFUNC, (rl_command_func_t *)0x0 },
222  { ISFUNC, (rl_command_func_t *)0x0 },
223  { ISFUNC, (rl_command_func_t *)0x0 },
224  { ISFUNC, (rl_command_func_t *)0x0 },
225  { ISFUNC, (rl_command_func_t *)0x0 },
226  { ISFUNC, (rl_command_func_t *)0x0 },
227  { ISFUNC, (rl_command_func_t *)0x0 },
228  { ISFUNC, (rl_command_func_t *)0x0 },
229  { ISFUNC, (rl_command_func_t *)0x0 },
230  { ISFUNC, (rl_command_func_t *)0x0 },
231  { ISFUNC, (rl_command_func_t *)0x0 },
232  { ISFUNC, (rl_command_func_t *)0x0 },
233  { ISFUNC, (rl_command_func_t *)0x0 },
234  { ISFUNC, (rl_command_func_t *)0x0 },
235  { ISFUNC, (rl_command_func_t *)0x0 },
236  { ISFUNC, (rl_command_func_t *)0x0 },
237  { ISFUNC, (rl_command_func_t *)0x0 },
238  { ISFUNC, (rl_command_func_t *)0x0 },
239  { ISFUNC, (rl_command_func_t *)0x0 },
240  { ISFUNC, (rl_command_func_t *)0x0 },
241  { ISFUNC, (rl_command_func_t *)0x0 },
242  { ISFUNC, (rl_command_func_t *)0x0 },
243  { ISFUNC, (rl_command_func_t *)0x0 },
244  { ISFUNC, (rl_command_func_t *)0x0 },
245  { ISFUNC, (rl_command_func_t *)0x0 },
246  { ISFUNC, (rl_command_func_t *)0x0 },
247  { ISFUNC, (rl_command_func_t *)0x0 },
248  { ISFUNC, (rl_command_func_t *)0x0 },
249  { ISFUNC, (rl_command_func_t *)0x0 },
250  { ISFUNC, (rl_command_func_t *)0x0 },
251  { ISFUNC, (rl_command_func_t *)0x0 },
252  { ISFUNC, (rl_command_func_t *)0x0 },
253  { ISFUNC, (rl_command_func_t *)0x0 },
254  { ISFUNC, (rl_command_func_t *)0x0 },
255  { ISFUNC, (rl_command_func_t *)0x0 },
256  { ISFUNC, (rl_command_func_t *)0x0 },
257  { ISFUNC, (rl_command_func_t *)0x0 },
258  { ISFUNC, (rl_command_func_t *)0x0 },
259  { ISFUNC, (rl_command_func_t *)0x0 },
260  { ISFUNC, (rl_command_func_t *)0x0 },
261  { ISFUNC, (rl_command_func_t *)0x0 },
262  { ISFUNC, (rl_command_func_t *)0x0 },
263  { ISFUNC, (rl_command_func_t *)0x0 },
264  { ISFUNC, (rl_command_func_t *)0x0 },
265  { ISFUNC, (rl_command_func_t *)0x0 },
266  { ISFUNC, (rl_command_func_t *)0x0 },
267  { ISFUNC, (rl_command_func_t *)0x0 },
268  { ISFUNC, (rl_command_func_t *)0x0 },
269  { ISFUNC, (rl_command_func_t *)0x0 },
270  { ISFUNC, (rl_command_func_t *)0x0 },
271  { ISFUNC, (rl_command_func_t *)0x0 },
272  { ISFUNC, (rl_command_func_t *)0x0 },
273  { ISFUNC, (rl_command_func_t *)0x0 },
274  { ISFUNC, (rl_command_func_t *)0x0 },
275  { ISFUNC, (rl_command_func_t *)0x0 },
276  { ISFUNC, (rl_command_func_t *)0x0 },
277  { ISFUNC, (rl_command_func_t *)0x0 },
278  { ISFUNC, (rl_command_func_t *)0x0 },
279  { ISFUNC, (rl_command_func_t *)0x0 },
280  { ISFUNC, (rl_command_func_t *)0x0 },
281  { ISFUNC, (rl_command_func_t *)0x0 },
282  { ISFUNC, (rl_command_func_t *)0x0 },
283  { ISFUNC, (rl_command_func_t *)0x0 },
284  { ISFUNC, (rl_command_func_t *)0x0 },
285  { ISFUNC, (rl_command_func_t *)0x0 },
286  { ISFUNC, (rl_command_func_t *)0x0 },
287  { ISFUNC, (rl_command_func_t *)0x0 },
288  { ISFUNC, (rl_command_func_t *)0x0 },
289  { ISFUNC, (rl_command_func_t *)0x0 },
290  { ISFUNC, (rl_command_func_t *)0x0 },
291  { ISFUNC, (rl_command_func_t *)0x0 },
292  { ISFUNC, (rl_command_func_t *)0x0 },
293  { ISFUNC, (rl_command_func_t *)0x0 },
294  { ISFUNC, (rl_command_func_t *)0x0 },
295  { ISFUNC, (rl_command_func_t *)0x0 },
296  { ISFUNC, (rl_command_func_t *)0x0 },
297  { ISFUNC, (rl_command_func_t *)0x0 },
298  { ISFUNC, (rl_command_func_t *)0x0 },
299  { ISFUNC, (rl_command_func_t *)0x0 },
300  { ISFUNC, (rl_command_func_t *)0x0 },
301  { ISFUNC, (rl_command_func_t *)0x0 },
302  { ISFUNC, (rl_command_func_t *)0x0 },
303  { ISFUNC, (rl_command_func_t *)0x0 },
304  { ISFUNC, (rl_command_func_t *)0x0 },
305  { ISFUNC, (rl_command_func_t *)0x0 },
306  { ISFUNC, (rl_command_func_t *)0x0 },
307  { ISFUNC, (rl_command_func_t *)0x0 },
308  { ISFUNC, (rl_command_func_t *)0x0 }
309#endif /* KEYMAP_SIZE > 128 */
310};
311
312KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
313  /* The regular control keys come first. */
314  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-@ */
315  { ISFUNC, rl_insert },			/* Control-a */
316  { ISFUNC, rl_insert },			/* Control-b */
317  { ISFUNC, rl_insert },			/* Control-c */
318  { ISFUNC, rl_vi_eof_maybe },			/* Control-d */
319  { ISFUNC, rl_insert },			/* Control-e */
320  { ISFUNC, rl_insert },			/* Control-f */
321  { ISFUNC, rl_insert },			/* Control-g */
322  { ISFUNC, rl_rubout },			/* Control-h */
323  { ISFUNC, rl_complete },			/* Control-i */
324  { ISFUNC, rl_newline },			/* Control-j */
325  { ISFUNC, rl_insert },			/* Control-k */
326  { ISFUNC, rl_insert },			/* Control-l */
327  { ISFUNC, rl_newline },			/* Control-m */
328  { ISFUNC, rl_menu_complete},			/* Control-n */
329  { ISFUNC, rl_insert },			/* Control-o */
330  { ISFUNC, rl_backward_menu_complete },	/* Control-p */
331  { ISFUNC, rl_insert },			/* Control-q */
332  { ISFUNC, rl_reverse_search_history },	/* Control-r */
333  { ISFUNC, rl_forward_search_history },	/* Control-s */
334  { ISFUNC, rl_transpose_chars },		/* Control-t */
335  { ISFUNC, rl_unix_line_discard },		/* Control-u */
336  { ISFUNC, rl_quoted_insert },			/* Control-v */
337  { ISFUNC, rl_vi_unix_word_rubout },		/* Control-w */
338  { ISFUNC, rl_insert },			/* Control-x */
339  { ISFUNC, rl_yank },				/* Control-y */
340  { ISFUNC, rl_insert },			/* Control-z */
341
342  { ISFUNC, rl_vi_movement_mode },		/* Control-[ */
343  { ISFUNC, rl_insert },			/* Control-\ */
344  { ISFUNC, rl_insert },			/* Control-] */
345  { ISFUNC, rl_insert },			/* Control-^ */
346  { ISFUNC, rl_vi_undo },			/* Control-_ */
347
348  /* The start of printing characters. */
349  { ISFUNC, rl_insert },			/* SPACE */
350  { ISFUNC, rl_insert },			/* ! */
351  { ISFUNC, rl_insert },			/* " */
352  { ISFUNC, rl_insert },			/* # */
353  { ISFUNC, rl_insert },			/* $ */
354  { ISFUNC, rl_insert },			/* % */
355  { ISFUNC, rl_insert },			/* & */
356  { ISFUNC, rl_insert },			/* ' */
357  { ISFUNC, rl_insert },			/* ( */
358  { ISFUNC, rl_insert },			/* ) */
359  { ISFUNC, rl_insert },			/* * */
360  { ISFUNC, rl_insert },			/* + */
361  { ISFUNC, rl_insert },			/* , */
362  { ISFUNC, rl_insert },			/* - */
363  { ISFUNC, rl_insert },			/* . */
364  { ISFUNC, rl_insert },			/* / */
365
366  /* Regular digits. */
367  { ISFUNC, rl_insert },			/* 0 */
368  { ISFUNC, rl_insert },			/* 1 */
369  { ISFUNC, rl_insert },			/* 2 */
370  { ISFUNC, rl_insert },			/* 3 */
371  { ISFUNC, rl_insert },			/* 4 */
372  { ISFUNC, rl_insert },			/* 5 */
373  { ISFUNC, rl_insert },			/* 6 */
374  { ISFUNC, rl_insert },			/* 7 */
375  { ISFUNC, rl_insert },			/* 8 */
376  { ISFUNC, rl_insert },			/* 9 */
377
378  /* A little more punctuation. */
379  { ISFUNC, rl_insert },			/* : */
380  { ISFUNC, rl_insert },			/* ; */
381  { ISFUNC, rl_insert },			/* < */
382  { ISFUNC, rl_insert },			/* = */
383  { ISFUNC, rl_insert },			/* > */
384  { ISFUNC, rl_insert },			/* ? */
385  { ISFUNC, rl_insert },			/* @ */
386
387  /* Uppercase alphabet. */
388  { ISFUNC, rl_insert },			/* A */
389  { ISFUNC, rl_insert },			/* B */
390  { ISFUNC, rl_insert },			/* C */
391  { ISFUNC, rl_insert },			/* D */
392  { ISFUNC, rl_insert },			/* E */
393  { ISFUNC, rl_insert },			/* F */
394  { ISFUNC, rl_insert },			/* G */
395  { ISFUNC, rl_insert },			/* H */
396  { ISFUNC, rl_insert },			/* I */
397  { ISFUNC, rl_insert },			/* J */
398  { ISFUNC, rl_insert },			/* K */
399  { ISFUNC, rl_insert },			/* L */
400  { ISFUNC, rl_insert },			/* M */
401  { ISFUNC, rl_insert },			/* N */
402  { ISFUNC, rl_insert },			/* O */
403  { ISFUNC, rl_insert },			/* P */
404  { ISFUNC, rl_insert },			/* Q */
405  { ISFUNC, rl_insert },			/* R */
406  { ISFUNC, rl_insert },			/* S */
407  { ISFUNC, rl_insert },			/* T */
408  { ISFUNC, rl_insert },			/* U */
409  { ISFUNC, rl_insert },			/* V */
410  { ISFUNC, rl_insert },			/* W */
411  { ISFUNC, rl_insert },			/* X */
412  { ISFUNC, rl_insert },			/* Y */
413  { ISFUNC, rl_insert },			/* Z */
414
415  /* Some more punctuation. */
416  { ISFUNC, rl_insert },			/* [ */
417  { ISFUNC, rl_insert },			/* \ */
418  { ISFUNC, rl_insert },			/* ] */
419  { ISFUNC, rl_insert },			/* ^ */
420  { ISFUNC, rl_insert },			/* _ */
421  { ISFUNC, rl_insert },			/* ` */
422
423  /* Lowercase alphabet. */
424  { ISFUNC, rl_insert },			/* a */
425  { ISFUNC, rl_insert },			/* b */
426  { ISFUNC, rl_insert },			/* c */
427  { ISFUNC, rl_insert },			/* d */
428  { ISFUNC, rl_insert },			/* e */
429  { ISFUNC, rl_insert },			/* f */
430  { ISFUNC, rl_insert },			/* g */
431  { ISFUNC, rl_insert },			/* h */
432  { ISFUNC, rl_insert },			/* i */
433  { ISFUNC, rl_insert },			/* j */
434  { ISFUNC, rl_insert },			/* k */
435  { ISFUNC, rl_insert },			/* l */
436  { ISFUNC, rl_insert },			/* m */
437  { ISFUNC, rl_insert },			/* n */
438  { ISFUNC, rl_insert },			/* o */
439  { ISFUNC, rl_insert },			/* p */
440  { ISFUNC, rl_insert },			/* q */
441  { ISFUNC, rl_insert },			/* r */
442  { ISFUNC, rl_insert },			/* s */
443  { ISFUNC, rl_insert },			/* t */
444  { ISFUNC, rl_insert },			/* u */
445  { ISFUNC, rl_insert },			/* v */
446  { ISFUNC, rl_insert },			/* w */
447  { ISFUNC, rl_insert },			/* x */
448  { ISFUNC, rl_insert },			/* y */
449  { ISFUNC, rl_insert },			/* z */
450
451  /* Final punctuation. */
452  { ISFUNC, rl_insert },			/* { */
453  { ISFUNC, rl_insert },			/* | */
454  { ISFUNC, rl_insert },			/* } */
455  { ISFUNC, rl_insert },			/* ~ */
456  { ISFUNC, rl_rubout },			/* RUBOUT */
457
458#if KEYMAP_SIZE > 128
459  /* Pure 8-bit characters (128 - 159).
460     These might be used in some
461     character sets. */
462  { ISFUNC, rl_insert },	/* ? */
463  { ISFUNC, rl_insert },	/* ? */
464  { ISFUNC, rl_insert },	/* ? */
465  { ISFUNC, rl_insert },	/* ? */
466  { ISFUNC, rl_insert },	/* ? */
467  { ISFUNC, rl_insert },	/* ? */
468  { ISFUNC, rl_insert },	/* ? */
469  { ISFUNC, rl_insert },	/* ? */
470  { ISFUNC, rl_insert },	/* ? */
471  { ISFUNC, rl_insert },	/* ? */
472  { ISFUNC, rl_insert },	/* ? */
473  { ISFUNC, rl_insert },	/* ? */
474  { ISFUNC, rl_insert },	/* ? */
475  { ISFUNC, rl_insert },	/* ? */
476  { ISFUNC, rl_insert },	/* ? */
477  { ISFUNC, rl_insert },	/* ? */
478  { ISFUNC, rl_insert },	/* ? */
479  { ISFUNC, rl_insert },	/* ? */
480  { ISFUNC, rl_insert },	/* ? */
481  { ISFUNC, rl_insert },	/* ? */
482  { ISFUNC, rl_insert },	/* ? */
483  { ISFUNC, rl_insert },	/* ? */
484  { ISFUNC, rl_insert },	/* ? */
485  { ISFUNC, rl_insert },	/* ? */
486  { ISFUNC, rl_insert },	/* ? */
487  { ISFUNC, rl_insert },	/* ? */
488  { ISFUNC, rl_insert },	/* ? */
489  { ISFUNC, rl_insert },	/* ? */
490  { ISFUNC, rl_insert },	/* ? */
491  { ISFUNC, rl_insert },	/* ? */
492  { ISFUNC, rl_insert },	/* ? */
493  { ISFUNC, rl_insert },	/* ? */
494
495  /* ISO Latin-1 characters (160 - 255) */
496  { ISFUNC, rl_insert },	/* No-break space */
497  { ISFUNC, rl_insert },	/* Inverted exclamation mark */
498  { ISFUNC, rl_insert },	/* Cent sign */
499  { ISFUNC, rl_insert },	/* Pound sign */
500  { ISFUNC, rl_insert },	/* Currency sign */
501  { ISFUNC, rl_insert },	/* Yen sign */
502  { ISFUNC, rl_insert },	/* Broken bar */
503  { ISFUNC, rl_insert },	/* Section sign */
504  { ISFUNC, rl_insert },	/* Diaeresis */
505  { ISFUNC, rl_insert },	/* Copyright sign */
506  { ISFUNC, rl_insert },	/* Feminine ordinal indicator */
507  { ISFUNC, rl_insert },	/* Left pointing double angle quotation mark */
508  { ISFUNC, rl_insert },	/* Not sign */
509  { ISFUNC, rl_insert },	/* Soft hyphen */
510  { ISFUNC, rl_insert },	/* Registered sign */
511  { ISFUNC, rl_insert },	/* Macron */
512  { ISFUNC, rl_insert },	/* Degree sign */
513  { ISFUNC, rl_insert },	/* Plus-minus sign */
514  { ISFUNC, rl_insert },	/* Superscript two */
515  { ISFUNC, rl_insert },	/* Superscript three */
516  { ISFUNC, rl_insert },	/* Acute accent */
517  { ISFUNC, rl_insert },	/* Micro sign */
518  { ISFUNC, rl_insert },	/* Pilcrow sign */
519  { ISFUNC, rl_insert },	/* Middle dot */
520  { ISFUNC, rl_insert },	/* Cedilla */
521  { ISFUNC, rl_insert },	/* Superscript one */
522  { ISFUNC, rl_insert },	/* Masculine ordinal indicator */
523  { ISFUNC, rl_insert },	/* Right pointing double angle quotation mark */
524  { ISFUNC, rl_insert },	/* Vulgar fraction one quarter */
525  { ISFUNC, rl_insert },	/* Vulgar fraction one half */
526  { ISFUNC, rl_insert },	/* Vulgar fraction three quarters */
527  { ISFUNC, rl_insert },	/* Inverted questionk mark */
528  { ISFUNC, rl_insert },	/* Latin capital letter a with grave */
529  { ISFUNC, rl_insert },	/* Latin capital letter a with acute */
530  { ISFUNC, rl_insert },	/* Latin capital letter a with circumflex */
531  { ISFUNC, rl_insert },	/* Latin capital letter a with tilde */
532  { ISFUNC, rl_insert },	/* Latin capital letter a with diaeresis */
533  { ISFUNC, rl_insert },	/* Latin capital letter a with ring above */
534  { ISFUNC, rl_insert },	/* Latin capital letter ae */
535  { ISFUNC, rl_insert },	/* Latin capital letter c with cedilla */
536  { ISFUNC, rl_insert },	/* Latin capital letter e with grave */
537  { ISFUNC, rl_insert },	/* Latin capital letter e with acute */
538  { ISFUNC, rl_insert },	/* Latin capital letter e with circumflex */
539  { ISFUNC, rl_insert },	/* Latin capital letter e with diaeresis */
540  { ISFUNC, rl_insert },	/* Latin capital letter i with grave */
541  { ISFUNC, rl_insert },	/* Latin capital letter i with acute */
542  { ISFUNC, rl_insert },	/* Latin capital letter i with circumflex */
543  { ISFUNC, rl_insert },	/* Latin capital letter i with diaeresis */
544  { ISFUNC, rl_insert },	/* Latin capital letter eth (Icelandic) */
545  { ISFUNC, rl_insert },	/* Latin capital letter n with tilde */
546  { ISFUNC, rl_insert },	/* Latin capital letter o with grave */
547  { ISFUNC, rl_insert },	/* Latin capital letter o with acute */
548  { ISFUNC, rl_insert },	/* Latin capital letter o with circumflex */
549  { ISFUNC, rl_insert },	/* Latin capital letter o with tilde */
550  { ISFUNC, rl_insert },	/* Latin capital letter o with diaeresis */
551  { ISFUNC, rl_insert },	/* Multiplication sign */
552  { ISFUNC, rl_insert },	/* Latin capital letter o with stroke */
553  { ISFUNC, rl_insert },	/* Latin capital letter u with grave */
554  { ISFUNC, rl_insert },	/* Latin capital letter u with acute */
555  { ISFUNC, rl_insert },	/* Latin capital letter u with circumflex */
556  { ISFUNC, rl_insert },	/* Latin capital letter u with diaeresis */
557  { ISFUNC, rl_insert },	/* Latin capital letter Y with acute */
558  { ISFUNC, rl_insert },	/* Latin capital letter thorn (Icelandic) */
559  { ISFUNC, rl_insert },	/* Latin small letter sharp s (German) */
560  { ISFUNC, rl_insert },	/* Latin small letter a with grave */
561  { ISFUNC, rl_insert },	/* Latin small letter a with acute */
562  { ISFUNC, rl_insert },	/* Latin small letter a with circumflex */
563  { ISFUNC, rl_insert },	/* Latin small letter a with tilde */
564  { ISFUNC, rl_insert },	/* Latin small letter a with diaeresis */
565  { ISFUNC, rl_insert },	/* Latin small letter a with ring above */
566  { ISFUNC, rl_insert },	/* Latin small letter ae */
567  { ISFUNC, rl_insert },	/* Latin small letter c with cedilla */
568  { ISFUNC, rl_insert },	/* Latin small letter e with grave */
569  { ISFUNC, rl_insert },	/* Latin small letter e with acute */
570  { ISFUNC, rl_insert },	/* Latin small letter e with circumflex */
571  { ISFUNC, rl_insert },	/* Latin small letter e with diaeresis */
572  { ISFUNC, rl_insert },	/* Latin small letter i with grave */
573  { ISFUNC, rl_insert },	/* Latin small letter i with acute */
574  { ISFUNC, rl_insert },	/* Latin small letter i with circumflex */
575  { ISFUNC, rl_insert },	/* Latin small letter i with diaeresis */
576  { ISFUNC, rl_insert },	/* Latin small letter eth (Icelandic) */
577  { ISFUNC, rl_insert },	/* Latin small letter n with tilde */
578  { ISFUNC, rl_insert },	/* Latin small letter o with grave */
579  { ISFUNC, rl_insert },	/* Latin small letter o with acute */
580  { ISFUNC, rl_insert },	/* Latin small letter o with circumflex */
581  { ISFUNC, rl_insert },	/* Latin small letter o with tilde */
582  { ISFUNC, rl_insert },	/* Latin small letter o with diaeresis */
583  { ISFUNC, rl_insert },	/* Division sign */
584  { ISFUNC, rl_insert },	/* Latin small letter o with stroke */
585  { ISFUNC, rl_insert },	/* Latin small letter u with grave */
586  { ISFUNC, rl_insert },	/* Latin small letter u with acute */
587  { ISFUNC, rl_insert },	/* Latin small letter u with circumflex */
588  { ISFUNC, rl_insert },	/* Latin small letter u with diaeresis */
589  { ISFUNC, rl_insert },	/* Latin small letter y with acute */
590  { ISFUNC, rl_insert },	/* Latin small letter thorn (Icelandic) */
591  { ISFUNC, rl_insert }		/* Latin small letter y with diaeresis */
592#endif /* KEYMAP_SIZE > 128 */
593};
594
595/* Unused for the time being. */
596#if 0
597KEYMAP_ENTRY_ARRAY vi_escape_keymap = {
598  /* The regular control keys come first. */
599  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-@ */
600  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-a */
601  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-b */
602  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-c */
603  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-d */
604  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-e */
605  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-f */
606  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-g */
607  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-h */
608  { ISFUNC, rl_tab_insert},			/* Control-i */
609  { ISFUNC, rl_emacs_editing_mode},		/* Control-j */
610  { ISFUNC, rl_kill_line },			/* Control-k */
611  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-l */
612  { ISFUNC, rl_emacs_editing_mode},		/* Control-m */
613  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-n */
614  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-o */
615  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-p */
616  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-q */
617  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-r */
618  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-s */
619  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-t */
620  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-u */
621  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-v */
622  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-w */
623  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-x */
624  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-y */
625  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-z */
626
627  { ISFUNC, rl_vi_movement_mode },		/* Control-[ */
628  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-\ */
629  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-] */
630  { ISFUNC, (rl_command_func_t *)0x0 },		/* Control-^ */
631  { ISFUNC, rl_vi_undo },			/* Control-_ */
632
633  /* The start of printing characters. */
634  { ISFUNC, (rl_command_func_t *)0x0 },		/* SPACE */
635  { ISFUNC, (rl_command_func_t *)0x0 },		/* ! */
636  { ISFUNC, (rl_command_func_t *)0x0 },		/* " */
637  { ISFUNC, (rl_command_func_t *)0x0 },		/* # */
638  { ISFUNC, (rl_command_func_t *)0x0 },		/* $ */
639  { ISFUNC, (rl_command_func_t *)0x0 },		/* % */
640  { ISFUNC, (rl_command_func_t *)0x0 },		/* & */
641  { ISFUNC, (rl_command_func_t *)0x0 },		/* ' */
642  { ISFUNC, (rl_command_func_t *)0x0 },		/* ( */
643  { ISFUNC, (rl_command_func_t *)0x0 },		/* ) */
644  { ISFUNC, (rl_command_func_t *)0x0 },		/* * */
645  { ISFUNC, (rl_command_func_t *)0x0 },		/* + */
646  { ISFUNC, (rl_command_func_t *)0x0 },		/* , */
647  { ISFUNC, (rl_command_func_t *)0x0 },		/* - */
648  { ISFUNC, (rl_command_func_t *)0x0 },		/* . */
649  { ISFUNC, (rl_command_func_t *)0x0 },		/* / */
650
651  /* Regular digits. */
652  { ISFUNC, rl_vi_arg_digit },			/* 0 */
653  { ISFUNC, rl_vi_arg_digit },			/* 1 */
654  { ISFUNC, rl_vi_arg_digit },			/* 2 */
655  { ISFUNC, rl_vi_arg_digit },			/* 3 */
656  { ISFUNC, rl_vi_arg_digit },			/* 4 */
657  { ISFUNC, rl_vi_arg_digit },			/* 5 */
658  { ISFUNC, rl_vi_arg_digit },			/* 6 */
659  { ISFUNC, rl_vi_arg_digit },			/* 7 */
660  { ISFUNC, rl_vi_arg_digit },			/* 8 */
661  { ISFUNC, rl_vi_arg_digit },			/* 9 */
662
663  /* A little more punctuation. */
664  { ISFUNC, (rl_command_func_t *)0x0 },		/* : */
665  { ISFUNC, (rl_command_func_t *)0x0 },		/* ; */
666  { ISFUNC, (rl_command_func_t *)0x0 },		/* < */
667  { ISFUNC, (rl_command_func_t *)0x0 },		/* = */
668  { ISFUNC, (rl_command_func_t *)0x0 },		/* > */
669  { ISFUNC, (rl_command_func_t *)0x0 },		/* ? */
670  { ISFUNC, (rl_command_func_t *)0x0 },		/* @ */
671
672  /* Uppercase alphabet. */
673  { ISFUNC, rl_do_lowercase_version },		/* A */
674  { ISFUNC, rl_do_lowercase_version },		/* B */
675  { ISFUNC, rl_do_lowercase_version },		/* C */
676  { ISFUNC, rl_do_lowercase_version },		/* D */
677  { ISFUNC, rl_do_lowercase_version },		/* E */
678  { ISFUNC, rl_do_lowercase_version },		/* F */
679  { ISFUNC, rl_do_lowercase_version },		/* G */
680  { ISFUNC, rl_do_lowercase_version },		/* H */
681  { ISFUNC, rl_do_lowercase_version },		/* I */
682  { ISFUNC, rl_do_lowercase_version },		/* J */
683  { ISFUNC, rl_do_lowercase_version },		/* K */
684  { ISFUNC, rl_do_lowercase_version },		/* L */
685  { ISFUNC, rl_do_lowercase_version },		/* M */
686  { ISFUNC, rl_do_lowercase_version },		/* N */
687  { ISFUNC, rl_do_lowercase_version },		/* O */
688  { ISFUNC, rl_do_lowercase_version },		/* P */
689  { ISFUNC, rl_do_lowercase_version },		/* Q */
690  { ISFUNC, rl_do_lowercase_version },		/* R */
691  { ISFUNC, rl_do_lowercase_version },		/* S */
692  { ISFUNC, rl_do_lowercase_version },		/* T */
693  { ISFUNC, rl_do_lowercase_version },		/* U */
694  { ISFUNC, rl_do_lowercase_version },		/* V */
695  { ISFUNC, rl_do_lowercase_version },		/* W */
696  { ISFUNC, rl_do_lowercase_version },		/* X */
697  { ISFUNC, rl_do_lowercase_version },		/* Y */
698  { ISFUNC, rl_do_lowercase_version },		/* Z */
699
700  /* Some more punctuation. */
701  { ISFUNC, rl_arrow_keys },			/* [ */
702  { ISFUNC, (rl_command_func_t *)0x0 },		/* \ */
703  { ISFUNC, (rl_command_func_t *)0x0 },		/* ] */
704  { ISFUNC, (rl_command_func_t *)0x0 },		/* ^ */
705  { ISFUNC, (rl_command_func_t *)0x0 },		/* _ */
706  { ISFUNC, (rl_command_func_t *)0x0 },		/* ` */
707
708  /* Lowercase alphabet. */
709  { ISFUNC, (rl_command_func_t *)0x0 },		/* a */
710  { ISFUNC, (rl_command_func_t *)0x0 },		/* b */
711  { ISFUNC, (rl_command_func_t *)0x0 },		/* c */
712  { ISFUNC, (rl_command_func_t *)0x0 },		/* d */
713  { ISFUNC, (rl_command_func_t *)0x0 },		/* e */
714  { ISFUNC, (rl_command_func_t *)0x0 },		/* f */
715  { ISFUNC, (rl_command_func_t *)0x0 },		/* g */
716  { ISFUNC, (rl_command_func_t *)0x0 },		/* h */
717  { ISFUNC, (rl_command_func_t *)0x0 },		/* i */
718  { ISFUNC, (rl_command_func_t *)0x0 },		/* j */
719  { ISFUNC, (rl_command_func_t *)0x0 },		/* k */
720  { ISFUNC, (rl_command_func_t *)0x0 },		/* l */
721  { ISFUNC, (rl_command_func_t *)0x0 },		/* m */
722  { ISFUNC, (rl_command_func_t *)0x0 },		/* n */
723  { ISFUNC, rl_arrow_keys },			/* o */
724  { ISFUNC, (rl_command_func_t *)0x0 },		/* p */
725  { ISFUNC, (rl_command_func_t *)0x0 },		/* q */
726  { ISFUNC, (rl_command_func_t *)0x0 },		/* r */
727  { ISFUNC, (rl_command_func_t *)0x0 },		/* s */
728  { ISFUNC, (rl_command_func_t *)0x0 },		/* t */
729  { ISFUNC, (rl_command_func_t *)0x0 },		/* u */
730  { ISFUNC, (rl_command_func_t *)0x0 },		/* v */
731  { ISFUNC, (rl_command_func_t *)0x0 },		/* w */
732  { ISFUNC, (rl_command_func_t *)0x0 },		/* x */
733  { ISFUNC, (rl_command_func_t *)0x0 },		/* y */
734  { ISFUNC, (rl_command_func_t *)0x0 },		/* z */
735
736  /* Final punctuation. */
737  { ISFUNC, (rl_command_func_t *)0x0 },		/* { */
738  { ISFUNC, (rl_command_func_t *)0x0 },		/* | */
739  { ISFUNC, (rl_command_func_t *)0x0 },		/* } */
740  { ISFUNC, (rl_command_func_t *)0x0 },		/* ~ */
741  { ISFUNC, rl_backward_kill_word },		/* RUBOUT */
742
743#if KEYMAP_SIZE > 128
744  /* Undefined keys. */
745  { ISFUNC, (rl_command_func_t *)0x0 },
746  { ISFUNC, (rl_command_func_t *)0x0 },
747  { ISFUNC, (rl_command_func_t *)0x0 },
748  { ISFUNC, (rl_command_func_t *)0x0 },
749  { ISFUNC, (rl_command_func_t *)0x0 },
750  { ISFUNC, (rl_command_func_t *)0x0 },
751  { ISFUNC, (rl_command_func_t *)0x0 },
752  { ISFUNC, (rl_command_func_t *)0x0 },
753  { ISFUNC, (rl_command_func_t *)0x0 },
754  { ISFUNC, (rl_command_func_t *)0x0 },
755  { ISFUNC, (rl_command_func_t *)0x0 },
756  { ISFUNC, (rl_command_func_t *)0x0 },
757  { ISFUNC, (rl_command_func_t *)0x0 },
758  { ISFUNC, (rl_command_func_t *)0x0 },
759  { ISFUNC, (rl_command_func_t *)0x0 },
760  { ISFUNC, (rl_command_func_t *)0x0 },
761  { ISFUNC, (rl_command_func_t *)0x0 },
762  { ISFUNC, (rl_command_func_t *)0x0 },
763  { ISFUNC, (rl_command_func_t *)0x0 },
764  { ISFUNC, (rl_command_func_t *)0x0 },
765  { ISFUNC, (rl_command_func_t *)0x0 },
766  { ISFUNC, (rl_command_func_t *)0x0 },
767  { ISFUNC, (rl_command_func_t *)0x0 },
768  { ISFUNC, (rl_command_func_t *)0x0 },
769  { ISFUNC, (rl_command_func_t *)0x0 },
770  { ISFUNC, (rl_command_func_t *)0x0 },
771  { ISFUNC, (rl_command_func_t *)0x0 },
772  { ISFUNC, (rl_command_func_t *)0x0 },
773  { ISFUNC, (rl_command_func_t *)0x0 },
774  { ISFUNC, (rl_command_func_t *)0x0 },
775  { ISFUNC, (rl_command_func_t *)0x0 },
776  { ISFUNC, (rl_command_func_t *)0x0 },
777  { ISFUNC, (rl_command_func_t *)0x0 },
778  { ISFUNC, (rl_command_func_t *)0x0 },
779  { ISFUNC, (rl_command_func_t *)0x0 },
780  { ISFUNC, (rl_command_func_t *)0x0 },
781  { ISFUNC, (rl_command_func_t *)0x0 },
782  { ISFUNC, (rl_command_func_t *)0x0 },
783  { ISFUNC, (rl_command_func_t *)0x0 },
784  { ISFUNC, (rl_command_func_t *)0x0 },
785  { ISFUNC, (rl_command_func_t *)0x0 },
786  { ISFUNC, (rl_command_func_t *)0x0 },
787  { ISFUNC, (rl_command_func_t *)0x0 },
788  { ISFUNC, (rl_command_func_t *)0x0 },
789  { ISFUNC, (rl_command_func_t *)0x0 },
790  { ISFUNC, (rl_command_func_t *)0x0 },
791  { ISFUNC, (rl_command_func_t *)0x0 },
792  { ISFUNC, (rl_command_func_t *)0x0 },
793  { ISFUNC, (rl_command_func_t *)0x0 },
794  { ISFUNC, (rl_command_func_t *)0x0 },
795  { ISFUNC, (rl_command_func_t *)0x0 },
796  { ISFUNC, (rl_command_func_t *)0x0 },
797  { ISFUNC, (rl_command_func_t *)0x0 },
798  { ISFUNC, (rl_command_func_t *)0x0 },
799  { ISFUNC, (rl_command_func_t *)0x0 },
800  { ISFUNC, (rl_command_func_t *)0x0 },
801  { ISFUNC, (rl_command_func_t *)0x0 },
802  { ISFUNC, (rl_command_func_t *)0x0 },
803  { ISFUNC, (rl_command_func_t *)0x0 },
804  { ISFUNC, (rl_command_func_t *)0x0 },
805  { ISFUNC, (rl_command_func_t *)0x0 },
806  { ISFUNC, (rl_command_func_t *)0x0 },
807  { ISFUNC, (rl_command_func_t *)0x0 },
808  { ISFUNC, (rl_command_func_t *)0x0 },
809  { ISFUNC, (rl_command_func_t *)0x0 },
810  { ISFUNC, (rl_command_func_t *)0x0 },
811  { ISFUNC, (rl_command_func_t *)0x0 },
812  { ISFUNC, (rl_command_func_t *)0x0 },
813  { ISFUNC, (rl_command_func_t *)0x0 },
814  { ISFUNC, (rl_command_func_t *)0x0 },
815  { ISFUNC, (rl_command_func_t *)0x0 },
816  { ISFUNC, (rl_command_func_t *)0x0 },
817  { ISFUNC, (rl_command_func_t *)0x0 },
818  { ISFUNC, (rl_command_func_t *)0x0 },
819  { ISFUNC, (rl_command_func_t *)0x0 },
820  { ISFUNC, (rl_command_func_t *)0x0 },
821  { ISFUNC, (rl_command_func_t *)0x0 },
822  { ISFUNC, (rl_command_func_t *)0x0 },
823  { ISFUNC, (rl_command_func_t *)0x0 },
824  { ISFUNC, (rl_command_func_t *)0x0 },
825  { ISFUNC, (rl_command_func_t *)0x0 },
826  { ISFUNC, (rl_command_func_t *)0x0 },
827  { ISFUNC, (rl_command_func_t *)0x0 },
828  { ISFUNC, (rl_command_func_t *)0x0 },
829  { ISFUNC, (rl_command_func_t *)0x0 },
830  { ISFUNC, (rl_command_func_t *)0x0 },
831  { ISFUNC, (rl_command_func_t *)0x0 },
832  { ISFUNC, (rl_command_func_t *)0x0 },
833  { ISFUNC, (rl_command_func_t *)0x0 },
834  { ISFUNC, (rl_command_func_t *)0x0 },
835  { ISFUNC, (rl_command_func_t *)0x0 },
836  { ISFUNC, (rl_command_func_t *)0x0 },
837  { ISFUNC, (rl_command_func_t *)0x0 },
838  { ISFUNC, (rl_command_func_t *)0x0 },
839  { ISFUNC, (rl_command_func_t *)0x0 },
840  { ISFUNC, (rl_command_func_t *)0x0 },
841  { ISFUNC, (rl_command_func_t *)0x0 },
842  { ISFUNC, (rl_command_func_t *)0x0 },
843  { ISFUNC, (rl_command_func_t *)0x0 },
844  { ISFUNC, (rl_command_func_t *)0x0 },
845  { ISFUNC, (rl_command_func_t *)0x0 },
846  { ISFUNC, (rl_command_func_t *)0x0 },
847  { ISFUNC, (rl_command_func_t *)0x0 },
848  { ISFUNC, (rl_command_func_t *)0x0 },
849  { ISFUNC, (rl_command_func_t *)0x0 },
850  { ISFUNC, (rl_command_func_t *)0x0 },
851  { ISFUNC, (rl_command_func_t *)0x0 },
852  { ISFUNC, (rl_command_func_t *)0x0 },
853  { ISFUNC, (rl_command_func_t *)0x0 },
854  { ISFUNC, (rl_command_func_t *)0x0 },
855  { ISFUNC, (rl_command_func_t *)0x0 },
856  { ISFUNC, (rl_command_func_t *)0x0 },
857  { ISFUNC, (rl_command_func_t *)0x0 },
858  { ISFUNC, (rl_command_func_t *)0x0 },
859  { ISFUNC, (rl_command_func_t *)0x0 },
860  { ISFUNC, (rl_command_func_t *)0x0 },
861  { ISFUNC, (rl_command_func_t *)0x0 },
862  { ISFUNC, (rl_command_func_t *)0x0 },
863  { ISFUNC, (rl_command_func_t *)0x0 },
864  { ISFUNC, (rl_command_func_t *)0x0 },
865  { ISFUNC, (rl_command_func_t *)0x0 },
866  { ISFUNC, (rl_command_func_t *)0x0 },
867  { ISFUNC, (rl_command_func_t *)0x0 },
868  { ISFUNC, (rl_command_func_t *)0x0 },
869  { ISFUNC, (rl_command_func_t *)0x0 },
870  { ISFUNC, (rl_command_func_t *)0x0 },
871  { ISFUNC, (rl_command_func_t *)0x0 },
872  { ISFUNC, (rl_command_func_t *)0x0 }
873#endif /* KEYMAP_SIZE > 128 */
874};
875#endif
876