import of readlilne 5.1
[external/binutils.git] / readline / vi_keymap.c
1 /* vi_keymap.c -- the keymap for vi_mode in readline (). */
2
3 /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
4
5    This file is part of the GNU Readline Library, a library for
6    reading lines of text with interactive input and history editing.
7
8    The GNU Readline Library is free software; you can redistribute it
9    and/or modify it under the terms of the GNU General Public License
10    as published by the Free Software Foundation; either version 2, or
11    (at your option) any later version.
12
13    The GNU Readline Library is distributed in the hope that it will be
14    useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15    of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17
18    The GNU General Public License is often shipped with GNU software, and
19    is generally kept in a file called COPYING or LICENSE.  If you do not
20    have a copy of the license, write to the Free Software Foundation,
21    59 Temple Place, Suite 330, Boston, MA 02111 USA. */
22
23 #if !defined (BUFSIZ)
24 #include <stdio.h>
25 #endif /* !BUFSIZ */
26
27 #include "readline.h"
28
29 #if 0
30 extern KEYMAP_ENTRY_ARRAY vi_escape_keymap;
31 #endif
32
33 /* The keymap arrays for handling vi mode. */
34 KEYMAP_ENTRY_ARRAY vi_movement_keymap = {
35   /* The regular control keys come first. */
36   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-@ */
37   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-a */
38   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-b */
39   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-c */
40   { ISFUNC, rl_vi_eof_maybe },                  /* Control-d */
41   { ISFUNC, rl_emacs_editing_mode },            /* Control-e */
42   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-f */
43   { ISFUNC, rl_abort },                         /* Control-g */
44   { ISFUNC, rl_backward_char },                 /* Control-h */
45   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-i */
46   { ISFUNC, rl_newline },                       /* Control-j */
47   { ISFUNC, rl_kill_line },                     /* Control-k */
48   { ISFUNC, rl_clear_screen },                  /* Control-l */
49   { ISFUNC, rl_newline },                       /* Control-m */
50   { ISFUNC, rl_get_next_history },              /* Control-n */
51   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-o */
52   { ISFUNC, rl_get_previous_history },          /* Control-p */
53   { ISFUNC, rl_quoted_insert },                 /* Control-q */
54   { ISFUNC, rl_reverse_search_history },        /* Control-r */
55   { ISFUNC, rl_forward_search_history },        /* Control-s */
56   { ISFUNC, rl_transpose_chars },               /* Control-t */
57   { ISFUNC, rl_unix_line_discard },             /* Control-u */
58   { ISFUNC, rl_quoted_insert },                 /* Control-v */
59   { ISFUNC, rl_unix_word_rubout },              /* Control-w */
60   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-x */
61   { ISFUNC, rl_yank },                          /* Control-y */
62   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-z */
63
64   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-[ */ /* vi_escape_keymap */
65   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-\ */
66   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-] */
67   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-^ */
68   { ISFUNC, rl_vi_undo },                       /* Control-_ */
69
70   /* The start of printing characters. */
71   { ISFUNC, rl_forward_char },                  /* SPACE */
72   { ISFUNC, (rl_command_func_t *)0x0 },         /* ! */
73   { ISFUNC, (rl_command_func_t *)0x0 },         /* " */
74   { ISFUNC, rl_insert_comment },                /* # */
75   { ISFUNC, rl_end_of_line },                   /* $ */
76   { ISFUNC, rl_vi_match },                      /* % */
77   { ISFUNC, rl_vi_tilde_expand },               /* & */
78   { ISFUNC, (rl_command_func_t *)0x0 },         /* ' */
79   { ISFUNC, (rl_command_func_t *)0x0 },         /* ( */
80   { ISFUNC, (rl_command_func_t *)0x0 },         /* ) */
81   { ISFUNC, rl_vi_complete },                   /* * */
82   { ISFUNC, rl_get_next_history},               /* + */
83   { ISFUNC, rl_vi_char_search },                /* , */
84   { ISFUNC, rl_get_previous_history },          /* - */
85   { ISFUNC, rl_vi_redo },                       /* . */
86   { ISFUNC, rl_vi_search },                     /* / */
87
88   /* Regular digits. */
89   { ISFUNC, rl_beg_of_line },                   /* 0 */
90   { ISFUNC, rl_vi_arg_digit },                  /* 1 */
91   { ISFUNC, rl_vi_arg_digit },                  /* 2 */
92   { ISFUNC, rl_vi_arg_digit },                  /* 3 */
93   { ISFUNC, rl_vi_arg_digit },                  /* 4 */
94   { ISFUNC, rl_vi_arg_digit },                  /* 5 */
95   { ISFUNC, rl_vi_arg_digit },                  /* 6 */
96   { ISFUNC, rl_vi_arg_digit },                  /* 7 */
97   { ISFUNC, rl_vi_arg_digit },                  /* 8 */
98   { ISFUNC, rl_vi_arg_digit },                  /* 9 */
99
100   /* A little more punctuation. */
101   { ISFUNC, (rl_command_func_t *)0x0 },         /* : */
102   { ISFUNC, rl_vi_char_search },                /* ; */
103   { ISFUNC, (rl_command_func_t *)0x0 },         /* < */
104   { ISFUNC, rl_vi_complete },                   /* = */
105   { ISFUNC, (rl_command_func_t *)0x0 },         /* > */
106   { ISFUNC, rl_vi_search },                     /* ? */
107   { ISFUNC, (rl_command_func_t *)0x0 },         /* @ */
108
109   /* Uppercase alphabet. */
110   { ISFUNC, rl_vi_append_eol },                 /* A */
111   { ISFUNC, rl_vi_prev_word},                   /* B */
112   { ISFUNC, rl_vi_change_to },                  /* C */
113   { ISFUNC, rl_vi_delete_to },                  /* D */
114   { ISFUNC, rl_vi_end_word },                   /* E */
115   { ISFUNC, rl_vi_char_search },                /* F */
116   { ISFUNC, rl_vi_fetch_history },              /* G */
117   { ISFUNC, (rl_command_func_t *)0x0 },         /* H */
118   { ISFUNC, rl_vi_insert_beg },                 /* I */
119   { ISFUNC, (rl_command_func_t *)0x0 },         /* J */
120   { ISFUNC, (rl_command_func_t *)0x0 },         /* K */
121   { ISFUNC, (rl_command_func_t *)0x0 },         /* L */
122   { ISFUNC, (rl_command_func_t *)0x0 },         /* M */
123   { ISFUNC, rl_vi_search_again },               /* N */
124   { ISFUNC, (rl_command_func_t *)0x0 },         /* O */
125   { ISFUNC, rl_vi_put },                        /* P */
126   { ISFUNC, (rl_command_func_t *)0x0 },         /* Q */
127   { ISFUNC, rl_vi_replace },                    /* R */
128   { ISFUNC, rl_vi_subst },                      /* S */
129   { ISFUNC, rl_vi_char_search },                /* T */
130   { ISFUNC, rl_revert_line },                   /* U */
131   { ISFUNC, (rl_command_func_t *)0x0 },         /* V */
132   { ISFUNC, rl_vi_next_word },                  /* W */
133   { ISFUNC, rl_vi_rubout },                     /* X */
134   { ISFUNC, rl_vi_yank_to },                    /* Y */
135   { ISFUNC, (rl_command_func_t *)0x0 },         /* Z */
136
137   /* Some more punctuation. */
138   { ISFUNC, (rl_command_func_t *)0x0 },         /* [ */
139   { ISFUNC, rl_vi_complete },                   /* \ */
140   { ISFUNC, (rl_command_func_t *)0x0 },         /* ] */
141   { ISFUNC, rl_vi_first_print },                /* ^ */
142   { ISFUNC, rl_vi_yank_arg },                   /* _ */
143   { ISFUNC, rl_vi_goto_mark },                  /* ` */
144
145   /* Lowercase alphabet. */
146   { ISFUNC, rl_vi_append_mode },                /* a */
147   { ISFUNC, rl_vi_prev_word },                  /* b */
148   { ISFUNC, rl_vi_change_to },                  /* c */
149   { ISFUNC, rl_vi_delete_to },                  /* d */
150   { ISFUNC, rl_vi_end_word },                   /* e */
151   { ISFUNC, rl_vi_char_search },                /* f */
152   { ISFUNC, (rl_command_func_t *)0x0 },         /* g */
153   { ISFUNC, rl_backward_char },                 /* h */
154   { ISFUNC, rl_vi_insertion_mode },             /* i */
155   { ISFUNC, rl_get_next_history },              /* j */
156   { ISFUNC, rl_get_previous_history },          /* k */
157   { ISFUNC, rl_forward_char },                  /* l */
158   { ISFUNC, rl_vi_set_mark },                   /* m */
159   { ISFUNC, rl_vi_search_again },               /* n */
160   { ISFUNC, (rl_command_func_t *)0x0 },         /* o */
161   { ISFUNC, rl_vi_put },                        /* p */
162   { ISFUNC, (rl_command_func_t *)0x0 },         /* q */
163   { ISFUNC, rl_vi_change_char },                /* r */
164   { ISFUNC, rl_vi_subst },                      /* s */
165   { ISFUNC, rl_vi_char_search },                /* t */
166   { ISFUNC, rl_vi_undo },                       /* u */
167   { ISFUNC, (rl_command_func_t *)0x0 },         /* v */
168   { ISFUNC, rl_vi_next_word },                  /* w */
169   { ISFUNC, rl_vi_delete },                     /* x */
170   { ISFUNC, rl_vi_yank_to },                    /* y */
171   { ISFUNC, (rl_command_func_t *)0x0 },         /* z */
172
173   /* Final punctuation. */
174   { ISFUNC, (rl_command_func_t *)0x0 },         /* { */
175   { ISFUNC, rl_vi_column },                     /* | */
176   { ISFUNC, (rl_command_func_t *)0x0 },         /* } */
177   { ISFUNC, rl_vi_change_case },                /* ~ */
178   { ISFUNC, (rl_command_func_t *)0x0 },         /* RUBOUT */
179
180 #if KEYMAP_SIZE > 128
181   /* Undefined keys. */
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   { ISFUNC, (rl_command_func_t *)0x0 }
310 #endif /* KEYMAP_SIZE > 128 */
311 };
312
313
314 KEYMAP_ENTRY_ARRAY vi_insertion_keymap = {
315   /* The regular control keys come first. */
316   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-@ */
317   { ISFUNC, rl_insert },                        /* Control-a */
318   { ISFUNC, rl_insert },                        /* Control-b */
319   { ISFUNC, rl_insert },                        /* Control-c */
320   { ISFUNC, rl_vi_eof_maybe },                  /* Control-d */
321   { ISFUNC, rl_insert },                        /* Control-e */
322   { ISFUNC, rl_insert },                        /* Control-f */
323   { ISFUNC, rl_insert },                        /* Control-g */
324   { ISFUNC, rl_rubout },                        /* Control-h */
325   { ISFUNC, rl_complete },                      /* Control-i */
326   { ISFUNC, rl_newline },                       /* Control-j */
327   { ISFUNC, rl_insert },                        /* Control-k */
328   { ISFUNC, rl_insert },                        /* Control-l */
329   { ISFUNC, rl_newline },                       /* Control-m */
330   { ISFUNC, rl_insert },                        /* Control-n */
331   { ISFUNC, rl_insert },                        /* Control-o */
332   { ISFUNC, rl_insert },                        /* Control-p */
333   { ISFUNC, rl_insert },                        /* Control-q */
334   { ISFUNC, rl_reverse_search_history },        /* Control-r */
335   { ISFUNC, rl_forward_search_history },        /* Control-s */
336   { ISFUNC, rl_transpose_chars },               /* Control-t */
337   { ISFUNC, rl_unix_line_discard },             /* Control-u */
338   { ISFUNC, rl_quoted_insert },                 /* Control-v */
339   { ISFUNC, rl_unix_word_rubout },              /* Control-w */
340   { ISFUNC, rl_insert },                        /* Control-x */
341   { ISFUNC, rl_yank },                          /* Control-y */
342   { ISFUNC, rl_insert },                        /* Control-z */
343
344   { ISFUNC, rl_vi_movement_mode },              /* Control-[ */
345   { ISFUNC, rl_insert },                        /* Control-\ */
346   { ISFUNC, rl_insert },                        /* Control-] */
347   { ISFUNC, rl_insert },                        /* Control-^ */
348   { ISFUNC, rl_vi_undo },                       /* Control-_ */
349
350   /* The start of printing characters. */
351   { ISFUNC, rl_insert },                        /* SPACE */
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   { ISFUNC, rl_insert },                        /* . */
366   { ISFUNC, rl_insert },                        /* / */
367
368   /* Regular digits. */
369   { ISFUNC, rl_insert },                        /* 0 */
370   { ISFUNC, rl_insert },                        /* 1 */
371   { ISFUNC, rl_insert },                        /* 2 */
372   { ISFUNC, rl_insert },                        /* 3 */
373   { ISFUNC, rl_insert },                        /* 4 */
374   { ISFUNC, rl_insert },                        /* 5 */
375   { ISFUNC, rl_insert },                        /* 6 */
376   { ISFUNC, rl_insert },                        /* 7 */
377   { ISFUNC, rl_insert },                        /* 8 */
378   { ISFUNC, rl_insert },                        /* 9 */
379
380   /* A little more punctuation. */
381   { ISFUNC, rl_insert },                        /* : */
382   { ISFUNC, rl_insert },                        /* ; */
383   { ISFUNC, rl_insert },                        /* < */
384   { ISFUNC, rl_insert },                        /* = */
385   { ISFUNC, rl_insert },                        /* > */
386   { ISFUNC, rl_insert },                        /* ? */
387   { ISFUNC, rl_insert },                        /* @ */
388
389   /* Uppercase alphabet. */
390   { ISFUNC, rl_insert },                        /* A */
391   { ISFUNC, rl_insert },                        /* B */
392   { ISFUNC, rl_insert },                        /* C */
393   { ISFUNC, rl_insert },                        /* D */
394   { ISFUNC, rl_insert },                        /* E */
395   { ISFUNC, rl_insert },                        /* F */
396   { ISFUNC, rl_insert },                        /* G */
397   { ISFUNC, rl_insert },                        /* H */
398   { ISFUNC, rl_insert },                        /* I */
399   { ISFUNC, rl_insert },                        /* J */
400   { ISFUNC, rl_insert },                        /* K */
401   { ISFUNC, rl_insert },                        /* L */
402   { ISFUNC, rl_insert },                        /* M */
403   { ISFUNC, rl_insert },                        /* N */
404   { ISFUNC, rl_insert },                        /* O */
405   { ISFUNC, rl_insert },                        /* P */
406   { ISFUNC, rl_insert },                        /* Q */
407   { ISFUNC, rl_insert },                        /* R */
408   { ISFUNC, rl_insert },                        /* S */
409   { ISFUNC, rl_insert },                        /* T */
410   { ISFUNC, rl_insert },                        /* U */
411   { ISFUNC, rl_insert },                        /* V */
412   { ISFUNC, rl_insert },                        /* W */
413   { ISFUNC, rl_insert },                        /* X */
414   { ISFUNC, rl_insert },                        /* Y */
415   { ISFUNC, rl_insert },                        /* Z */
416
417   /* Some more punctuation. */
418   { ISFUNC, rl_insert },                        /* [ */
419   { ISFUNC, rl_insert },                        /* \ */
420   { ISFUNC, rl_insert },                        /* ] */
421   { ISFUNC, rl_insert },                        /* ^ */
422   { ISFUNC, rl_insert },                        /* _ */
423   { ISFUNC, rl_insert },                        /* ` */
424
425   /* Lowercase alphabet. */
426   { ISFUNC, rl_insert },                        /* a */
427   { ISFUNC, rl_insert },                        /* b */
428   { ISFUNC, rl_insert },                        /* c */
429   { ISFUNC, rl_insert },                        /* d */
430   { ISFUNC, rl_insert },                        /* e */
431   { ISFUNC, rl_insert },                        /* f */
432   { ISFUNC, rl_insert },                        /* g */
433   { ISFUNC, rl_insert },                        /* h */
434   { ISFUNC, rl_insert },                        /* i */
435   { ISFUNC, rl_insert },                        /* j */
436   { ISFUNC, rl_insert },                        /* k */
437   { ISFUNC, rl_insert },                        /* l */
438   { ISFUNC, rl_insert },                        /* m */
439   { ISFUNC, rl_insert },                        /* n */
440   { ISFUNC, rl_insert },                        /* o */
441   { ISFUNC, rl_insert },                        /* p */
442   { ISFUNC, rl_insert },                        /* q */
443   { ISFUNC, rl_insert },                        /* r */
444   { ISFUNC, rl_insert },                        /* s */
445   { ISFUNC, rl_insert },                        /* t */
446   { ISFUNC, rl_insert },                        /* u */
447   { ISFUNC, rl_insert },                        /* v */
448   { ISFUNC, rl_insert },                        /* w */
449   { ISFUNC, rl_insert },                        /* x */
450   { ISFUNC, rl_insert },                        /* y */
451   { ISFUNC, rl_insert },                        /* z */
452
453   /* Final punctuation. */
454   { ISFUNC, rl_insert },                        /* { */
455   { ISFUNC, rl_insert },                        /* | */
456   { ISFUNC, rl_insert },                        /* } */
457   { ISFUNC, rl_insert },                        /* ~ */
458   { ISFUNC, rl_rubout },                        /* RUBOUT */
459
460 #if KEYMAP_SIZE > 128
461   /* Pure 8-bit characters (128 - 159).
462      These might be used in some
463      character sets. */
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   { ISFUNC, rl_insert },        /* ? */
495   { ISFUNC, rl_insert },        /* ? */
496
497   /* ISO Latin-1 characters (160 - 255) */
498   { ISFUNC, rl_insert },        /* No-break space */
499   { ISFUNC, rl_insert },        /* Inverted exclamation mark */
500   { ISFUNC, rl_insert },        /* Cent sign */
501   { ISFUNC, rl_insert },        /* Pound sign */
502   { ISFUNC, rl_insert },        /* Currency sign */
503   { ISFUNC, rl_insert },        /* Yen sign */
504   { ISFUNC, rl_insert },        /* Broken bar */
505   { ISFUNC, rl_insert },        /* Section sign */
506   { ISFUNC, rl_insert },        /* Diaeresis */
507   { ISFUNC, rl_insert },        /* Copyright sign */
508   { ISFUNC, rl_insert },        /* Feminine ordinal indicator */
509   { ISFUNC, rl_insert },        /* Left pointing double angle quotation mark */
510   { ISFUNC, rl_insert },        /* Not sign */
511   { ISFUNC, rl_insert },        /* Soft hyphen */
512   { ISFUNC, rl_insert },        /* Registered sign */
513   { ISFUNC, rl_insert },        /* Macron */
514   { ISFUNC, rl_insert },        /* Degree sign */
515   { ISFUNC, rl_insert },        /* Plus-minus sign */
516   { ISFUNC, rl_insert },        /* Superscript two */
517   { ISFUNC, rl_insert },        /* Superscript three */
518   { ISFUNC, rl_insert },        /* Acute accent */
519   { ISFUNC, rl_insert },        /* Micro sign */
520   { ISFUNC, rl_insert },        /* Pilcrow sign */
521   { ISFUNC, rl_insert },        /* Middle dot */
522   { ISFUNC, rl_insert },        /* Cedilla */
523   { ISFUNC, rl_insert },        /* Superscript one */
524   { ISFUNC, rl_insert },        /* Masculine ordinal indicator */
525   { ISFUNC, rl_insert },        /* Right pointing double angle quotation mark */
526   { ISFUNC, rl_insert },        /* Vulgar fraction one quarter */
527   { ISFUNC, rl_insert },        /* Vulgar fraction one half */
528   { ISFUNC, rl_insert },        /* Vulgar fraction three quarters */
529   { ISFUNC, rl_insert },        /* Inverted questionk mark */
530   { ISFUNC, rl_insert },        /* Latin capital letter a with grave */
531   { ISFUNC, rl_insert },        /* Latin capital letter a with acute */
532   { ISFUNC, rl_insert },        /* Latin capital letter a with circumflex */
533   { ISFUNC, rl_insert },        /* Latin capital letter a with tilde */
534   { ISFUNC, rl_insert },        /* Latin capital letter a with diaeresis */
535   { ISFUNC, rl_insert },        /* Latin capital letter a with ring above */
536   { ISFUNC, rl_insert },        /* Latin capital letter ae */
537   { ISFUNC, rl_insert },        /* Latin capital letter c with cedilla */
538   { ISFUNC, rl_insert },        /* Latin capital letter e with grave */
539   { ISFUNC, rl_insert },        /* Latin capital letter e with acute */
540   { ISFUNC, rl_insert },        /* Latin capital letter e with circumflex */
541   { ISFUNC, rl_insert },        /* Latin capital letter e with diaeresis */
542   { ISFUNC, rl_insert },        /* Latin capital letter i with grave */
543   { ISFUNC, rl_insert },        /* Latin capital letter i with acute */
544   { ISFUNC, rl_insert },        /* Latin capital letter i with circumflex */
545   { ISFUNC, rl_insert },        /* Latin capital letter i with diaeresis */
546   { ISFUNC, rl_insert },        /* Latin capital letter eth (Icelandic) */
547   { ISFUNC, rl_insert },        /* Latin capital letter n with tilde */
548   { ISFUNC, rl_insert },        /* Latin capital letter o with grave */
549   { ISFUNC, rl_insert },        /* Latin capital letter o with acute */
550   { ISFUNC, rl_insert },        /* Latin capital letter o with circumflex */
551   { ISFUNC, rl_insert },        /* Latin capital letter o with tilde */
552   { ISFUNC, rl_insert },        /* Latin capital letter o with diaeresis */
553   { ISFUNC, rl_insert },        /* Multiplication sign */
554   { ISFUNC, rl_insert },        /* Latin capital letter o with stroke */
555   { ISFUNC, rl_insert },        /* Latin capital letter u with grave */
556   { ISFUNC, rl_insert },        /* Latin capital letter u with acute */
557   { ISFUNC, rl_insert },        /* Latin capital letter u with circumflex */
558   { ISFUNC, rl_insert },        /* Latin capital letter u with diaeresis */
559   { ISFUNC, rl_insert },        /* Latin capital letter Y with acute */
560   { ISFUNC, rl_insert },        /* Latin capital letter thorn (Icelandic) */
561   { ISFUNC, rl_insert },        /* Latin small letter sharp s (German) */
562   { ISFUNC, rl_insert },        /* Latin small letter a with grave */
563   { ISFUNC, rl_insert },        /* Latin small letter a with acute */
564   { ISFUNC, rl_insert },        /* Latin small letter a with circumflex */
565   { ISFUNC, rl_insert },        /* Latin small letter a with tilde */
566   { ISFUNC, rl_insert },        /* Latin small letter a with diaeresis */
567   { ISFUNC, rl_insert },        /* Latin small letter a with ring above */
568   { ISFUNC, rl_insert },        /* Latin small letter ae */
569   { ISFUNC, rl_insert },        /* Latin small letter c with cedilla */
570   { ISFUNC, rl_insert },        /* Latin small letter e with grave */
571   { ISFUNC, rl_insert },        /* Latin small letter e with acute */
572   { ISFUNC, rl_insert },        /* Latin small letter e with circumflex */
573   { ISFUNC, rl_insert },        /* Latin small letter e with diaeresis */
574   { ISFUNC, rl_insert },        /* Latin small letter i with grave */
575   { ISFUNC, rl_insert },        /* Latin small letter i with acute */
576   { ISFUNC, rl_insert },        /* Latin small letter i with circumflex */
577   { ISFUNC, rl_insert },        /* Latin small letter i with diaeresis */
578   { ISFUNC, rl_insert },        /* Latin small letter eth (Icelandic) */
579   { ISFUNC, rl_insert },        /* Latin small letter n with tilde */
580   { ISFUNC, rl_insert },        /* Latin small letter o with grave */
581   { ISFUNC, rl_insert },        /* Latin small letter o with acute */
582   { ISFUNC, rl_insert },        /* Latin small letter o with circumflex */
583   { ISFUNC, rl_insert },        /* Latin small letter o with tilde */
584   { ISFUNC, rl_insert },        /* Latin small letter o with diaeresis */
585   { ISFUNC, rl_insert },        /* Division sign */
586   { ISFUNC, rl_insert },        /* Latin small letter o with stroke */
587   { ISFUNC, rl_insert },        /* Latin small letter u with grave */
588   { ISFUNC, rl_insert },        /* Latin small letter u with acute */
589   { ISFUNC, rl_insert },        /* Latin small letter u with circumflex */
590   { ISFUNC, rl_insert },        /* Latin small letter u with diaeresis */
591   { ISFUNC, rl_insert },        /* Latin small letter y with acute */
592   { ISFUNC, rl_insert },        /* Latin small letter thorn (Icelandic) */
593   { ISFUNC, rl_insert }         /* Latin small letter y with diaeresis */
594 #endif /* KEYMAP_SIZE > 128 */
595 };
596
597 /* Unused for the time being. */
598 #if 0
599 KEYMAP_ENTRY_ARRAY vi_escape_keymap = {
600   /* The regular control keys come first. */
601   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-@ */
602   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-a */
603   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-b */
604   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-c */
605   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-d */
606   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-e */
607   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-f */
608   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-g */
609   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-h */
610   { ISFUNC, rl_tab_insert},                     /* Control-i */
611   { ISFUNC, rl_emacs_editing_mode},             /* Control-j */
612   { ISFUNC, rl_kill_line },                     /* Control-k */
613   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-l */
614   { ISFUNC, rl_emacs_editing_mode},             /* Control-m */
615   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-n */
616   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-o */
617   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-p */
618   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-q */
619   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-r */
620   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-s */
621   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-t */
622   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-u */
623   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-v */
624   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-w */
625   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-x */
626   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-y */
627   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-z */
628
629   { ISFUNC, rl_vi_movement_mode },              /* Control-[ */
630   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-\ */
631   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-] */
632   { ISFUNC, (rl_command_func_t *)0x0 },         /* Control-^ */
633   { ISFUNC, rl_vi_undo },                       /* Control-_ */
634
635   /* The start of printing characters. */
636   { ISFUNC, (rl_command_func_t *)0x0 },         /* SPACE */
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   { ISFUNC, (rl_command_func_t *)0x0 },         /* . */
651   { ISFUNC, (rl_command_func_t *)0x0 },         /* / */
652
653   /* Regular digits. */
654   { ISFUNC, rl_vi_arg_digit },                  /* 0 */
655   { ISFUNC, rl_vi_arg_digit },                  /* 1 */
656   { ISFUNC, rl_vi_arg_digit },                  /* 2 */
657   { ISFUNC, rl_vi_arg_digit },                  /* 3 */
658   { ISFUNC, rl_vi_arg_digit },                  /* 4 */
659   { ISFUNC, rl_vi_arg_digit },                  /* 5 */
660   { ISFUNC, rl_vi_arg_digit },                  /* 6 */
661   { ISFUNC, rl_vi_arg_digit },                  /* 7 */
662   { ISFUNC, rl_vi_arg_digit },                  /* 8 */
663   { ISFUNC, rl_vi_arg_digit },                  /* 9 */
664
665   /* A little more punctuation. */
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   { ISFUNC, (rl_command_func_t *)0x0 },         /* ? */
672   { ISFUNC, (rl_command_func_t *)0x0 },         /* @ */
673
674   /* Uppercase alphabet. */
675   { ISFUNC, rl_do_lowercase_version },          /* A */
676   { ISFUNC, rl_do_lowercase_version },          /* B */
677   { ISFUNC, rl_do_lowercase_version },          /* C */
678   { ISFUNC, rl_do_lowercase_version },          /* D */
679   { ISFUNC, rl_do_lowercase_version },          /* E */
680   { ISFUNC, rl_do_lowercase_version },          /* F */
681   { ISFUNC, rl_do_lowercase_version },          /* G */
682   { ISFUNC, rl_do_lowercase_version },          /* H */
683   { ISFUNC, rl_do_lowercase_version },          /* I */
684   { ISFUNC, rl_do_lowercase_version },          /* J */
685   { ISFUNC, rl_do_lowercase_version },          /* K */
686   { ISFUNC, rl_do_lowercase_version },          /* L */
687   { ISFUNC, rl_do_lowercase_version },          /* M */
688   { ISFUNC, rl_do_lowercase_version },          /* N */
689   { ISFUNC, rl_do_lowercase_version },          /* O */
690   { ISFUNC, rl_do_lowercase_version },          /* P */
691   { ISFUNC, rl_do_lowercase_version },          /* Q */
692   { ISFUNC, rl_do_lowercase_version },          /* R */
693   { ISFUNC, rl_do_lowercase_version },          /* S */
694   { ISFUNC, rl_do_lowercase_version },          /* T */
695   { ISFUNC, rl_do_lowercase_version },          /* U */
696   { ISFUNC, rl_do_lowercase_version },          /* V */
697   { ISFUNC, rl_do_lowercase_version },          /* W */
698   { ISFUNC, rl_do_lowercase_version },          /* X */
699   { ISFUNC, rl_do_lowercase_version },          /* Y */
700   { ISFUNC, rl_do_lowercase_version },          /* Z */
701
702   /* Some more punctuation. */
703   { ISFUNC, rl_arrow_keys },                    /* [ */
704   { ISFUNC, (rl_command_func_t *)0x0 },         /* \ */
705   { ISFUNC, (rl_command_func_t *)0x0 },         /* ] */
706   { ISFUNC, (rl_command_func_t *)0x0 },         /* ^ */
707   { ISFUNC, (rl_command_func_t *)0x0 },         /* _ */
708   { ISFUNC, (rl_command_func_t *)0x0 },         /* ` */
709
710   /* Lowercase alphabet. */
711   { ISFUNC, (rl_command_func_t *)0x0 },         /* a */
712   { ISFUNC, (rl_command_func_t *)0x0 },         /* b */
713   { ISFUNC, (rl_command_func_t *)0x0 },         /* c */
714   { ISFUNC, (rl_command_func_t *)0x0 },         /* d */
715   { ISFUNC, (rl_command_func_t *)0x0 },         /* e */
716   { ISFUNC, (rl_command_func_t *)0x0 },         /* f */
717   { ISFUNC, (rl_command_func_t *)0x0 },         /* g */
718   { ISFUNC, (rl_command_func_t *)0x0 },         /* h */
719   { ISFUNC, (rl_command_func_t *)0x0 },         /* i */
720   { ISFUNC, (rl_command_func_t *)0x0 },         /* j */
721   { ISFUNC, (rl_command_func_t *)0x0 },         /* k */
722   { ISFUNC, (rl_command_func_t *)0x0 },         /* l */
723   { ISFUNC, (rl_command_func_t *)0x0 },         /* m */
724   { ISFUNC, (rl_command_func_t *)0x0 },         /* n */
725   { ISFUNC, rl_arrow_keys },                    /* o */
726   { ISFUNC, (rl_command_func_t *)0x0 },         /* p */
727   { ISFUNC, (rl_command_func_t *)0x0 },         /* q */
728   { ISFUNC, (rl_command_func_t *)0x0 },         /* r */
729   { ISFUNC, (rl_command_func_t *)0x0 },         /* s */
730   { ISFUNC, (rl_command_func_t *)0x0 },         /* t */
731   { ISFUNC, (rl_command_func_t *)0x0 },         /* u */
732   { ISFUNC, (rl_command_func_t *)0x0 },         /* v */
733   { ISFUNC, (rl_command_func_t *)0x0 },         /* w */
734   { ISFUNC, (rl_command_func_t *)0x0 },         /* x */
735   { ISFUNC, (rl_command_func_t *)0x0 },         /* y */
736   { ISFUNC, (rl_command_func_t *)0x0 },         /* z */
737
738   /* Final punctuation. */
739   { ISFUNC, (rl_command_func_t *)0x0 },         /* { */
740   { ISFUNC, (rl_command_func_t *)0x0 },         /* | */
741   { ISFUNC, (rl_command_func_t *)0x0 },         /* } */
742   { ISFUNC, (rl_command_func_t *)0x0 },         /* ~ */
743   { ISFUNC, rl_backward_kill_word },            /* RUBOUT */
744
745 #if KEYMAP_SIZE > 128
746   /* Undefined keys. */
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   { ISFUNC, (rl_command_func_t *)0x0 },
874   { ISFUNC, (rl_command_func_t *)0x0 }
875 #endif /* KEYMAP_SIZE > 128 */
876 };
877 #endif