Bash-4.3 distribution sources and documentation
[platform/upstream/bash.git] / lib / readline / vi_keymap.c
1 /* vi_keymap.c -- the keymap for vi_mode in readline (). */
2
3 /* Copyright (C) 1987-2009 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
29 extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
30 #endif
31
32 /* The keymap arrays for handling vi mode. */
33 KEYMAP_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_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
312 KEYMAP_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_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
597 KEYMAP_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