1 /* vi_keymap.c -- the keymap for vi_mode in readline (). */
3 /* Copyright (C) 1988,1989 Free Software Foundation, Inc.
5 This file is part of GNU Readline, a library for reading lines
6 of text with interactive input and history editing.
8 Readline is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
10 Free Software Foundation; either version 1, or (at your option) any
13 Readline is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with Readline; see the file COPYING. If not, write to the Free
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
28 extern KEYMAP_ENTRY_ARRAY vi_escape_keymap
;
30 /* The keymap arrays for handling vi mode. */
31 KEYMAP_ENTRY_ARRAY vi_movement_keymap
= {
33 /* The regular control keys come first. */
34 { ISFUNC
, (Function
*)0x0 }, /* Control-@ */
35 { ISFUNC
, (Function
*)0x0 }, /* Control-a */
36 { ISFUNC
, (Function
*)0x0 }, /* Control-b */
37 { ISFUNC
, (Function
*)0x0 }, /* Control-c */
38 { ISFUNC
, rl_vi_eof_maybe
}, /* Control-d */
39 { ISFUNC
, rl_emacs_editing_mode
}, /* Control-e */
40 { ISFUNC
, (Function
*)0x0 }, /* Control-f */
41 { ISFUNC
, rl_abort
}, /* Control-g */
42 { ISFUNC
, rl_rubout
}, /* Control-h */
43 { ISFUNC
, (Function
*)0x0 }, /* Control-i */
44 { ISFUNC
, rl_newline
}, /* Control-j */
45 { ISFUNC
, rl_kill_line
}, /* Control-k */
46 { ISFUNC
, rl_clear_screen
}, /* Control-l */
47 { ISFUNC
, rl_newline
}, /* Control-m */
48 { ISFUNC
, rl_get_next_history
}, /* Control-n */
49 { ISFUNC
, (Function
*)0x0 }, /* Control-o */
50 { ISFUNC
, rl_get_previous_history
}, /* Control-p */
51 { ISFUNC
, rl_quoted_insert
}, /* Control-q */
52 { ISFUNC
, rl_reverse_search_history
}, /* Control-r */
53 { ISFUNC
, rl_forward_search_history
}, /* Control-s */
54 { ISFUNC
, rl_transpose_chars
}, /* Control-t */
55 { ISFUNC
, rl_unix_line_discard
}, /* Control-u */
56 { ISFUNC
, rl_quoted_insert
}, /* Control-v */
57 { ISFUNC
, rl_unix_word_rubout
}, /* Control-w */
58 { ISFUNC
, (Function
*)0x0 }, /* Control-x */
59 { ISFUNC
, rl_yank
}, /* Control-y */
60 { ISFUNC
, (Function
*)0x0 }, /* Control-z */
62 { ISKMAP
, (Function
*)vi_escape_keymap
}, /* Control-[ */
63 { ISFUNC
, (Function
*)0x0 }, /* Control-\ */
64 { ISFUNC
, (Function
*)0x0 }, /* Control-] */
65 { ISFUNC
, (Function
*)0x0 }, /* Control-^ */
66 { ISFUNC
, rl_undo_command
}, /* Control-_ */
68 /* The start of printing characters. */
69 { ISFUNC
, rl_forward
}, /* SPACE */
70 { ISFUNC
, (Function
*)0x0 }, /* ! */
71 { ISFUNC
, (Function
*)0x0 }, /* " */
72 { ISFUNC
, rl_vi_comment
}, /* # */
73 { ISFUNC
, rl_end_of_line
}, /* $ */
74 { ISFUNC
, rl_vi_match
}, /* % */
75 { ISFUNC
, (Function
*)0x0 }, /* & */
76 { ISFUNC
, (Function
*)0x0 }, /* ' */
77 { ISFUNC
, (Function
*)0x0 }, /* ( */
78 { ISFUNC
, (Function
*)0x0 }, /* ) */
79 { ISFUNC
, rl_vi_complete
}, /* * */
80 { ISFUNC
, rl_get_next_history
}, /* + */
81 { ISFUNC
, rl_vi_char_search
}, /* , */
82 { ISFUNC
, rl_get_previous_history
}, /* - */
83 { ISFUNC
, (Function
*)0x0 }, /* . */
84 { ISFUNC
, rl_vi_search
}, /* / */
87 { ISFUNC
, rl_vi_arg_digit
}, /* 0 */
88 { ISFUNC
, rl_vi_arg_digit
}, /* 1 */
89 { ISFUNC
, rl_vi_arg_digit
}, /* 2 */
90 { ISFUNC
, rl_vi_arg_digit
}, /* 3 */
91 { ISFUNC
, rl_vi_arg_digit
}, /* 4 */
92 { ISFUNC
, rl_vi_arg_digit
}, /* 5 */
93 { ISFUNC
, rl_vi_arg_digit
}, /* 6 */
94 { ISFUNC
, rl_vi_arg_digit
}, /* 7 */
95 { ISFUNC
, rl_vi_arg_digit
}, /* 8 */
96 { ISFUNC
, rl_vi_arg_digit
}, /* 9 */
98 /* A little more punctuation. */
99 { ISFUNC
, (Function
*)0x0 }, /* : */
100 { ISFUNC
, rl_vi_char_search
}, /* ; */
101 { ISFUNC
, (Function
*)0x0 }, /* < */
102 { ISFUNC
, rl_vi_complete
}, /* = */
103 { ISFUNC
, (Function
*)0x0 }, /* > */
104 { ISFUNC
, rl_vi_search
}, /* ? */
105 { ISFUNC
, (Function
*)0x0 }, /* @ */
107 /* Uppercase alphabet. */
108 { ISFUNC
, rl_vi_append_eol
}, /* A */
109 { ISFUNC
, rl_vi_prev_word
}, /* B */
110 { ISFUNC
, rl_vi_change_to
}, /* C */
111 { ISFUNC
, rl_vi_delete_to
}, /* D */
112 { ISFUNC
, rl_vi_end_word
}, /* E */
113 { ISFUNC
, rl_vi_char_search
}, /* F */
114 { ISFUNC
, rl_vi_fetch_history
}, /* G */
115 { ISFUNC
, (Function
*)0x0 }, /* H */
116 { ISFUNC
, rl_vi_insert_beg
}, /* I */
117 { ISFUNC
, (Function
*)0x0 }, /* J */
118 { ISFUNC
, (Function
*)0x0 }, /* K */
119 { ISFUNC
, (Function
*)0x0 }, /* L */
120 { ISFUNC
, (Function
*)0x0 }, /* M */
121 { ISFUNC
, rl_vi_search_again
}, /* N */
122 { ISFUNC
, (Function
*)0x0 }, /* O */
123 { ISFUNC
, rl_vi_put
}, /* P */
124 { ISFUNC
, (Function
*)0x0 }, /* Q */
125 { ISFUNC
, rl_vi_replace
}, /* R */
126 { ISFUNC
, rl_vi_subst
}, /* S */
127 { ISFUNC
, rl_vi_char_search
}, /* T */
128 { ISFUNC
, rl_revert_line
}, /* U */
129 { ISFUNC
, (Function
*)0x0 }, /* V */
130 { ISFUNC
, rl_vi_next_word
}, /* W */
131 { ISFUNC
, rl_rubout
}, /* X */
132 { ISFUNC
, rl_vi_yank_to
}, /* Y */
133 { ISFUNC
, (Function
*)0x0 }, /* Z */
135 /* Some more punctuation. */
136 { ISFUNC
, (Function
*)0x0 }, /* [ */
137 { ISFUNC
, rl_vi_complete
}, /* \ */
138 { ISFUNC
, (Function
*)0x0 }, /* ] */
139 { ISFUNC
, rl_vi_first_print
}, /* ^ */
140 { ISFUNC
, rl_vi_yank_arg
}, /* _ */
141 { ISFUNC
, (Function
*)0x0 }, /* ` */
143 /* Lowercase alphabet. */
144 { ISFUNC
, rl_vi_append_mode
}, /* a */
145 { ISFUNC
, rl_vi_prev_word
}, /* b */
146 { ISFUNC
, rl_vi_change_to
}, /* c */
147 { ISFUNC
, rl_vi_delete_to
}, /* d */
148 { ISFUNC
, rl_vi_end_word
}, /* e */
149 { ISFUNC
, rl_vi_char_search
}, /* f */
150 { ISFUNC
, (Function
*)0x0 }, /* g */
151 { ISFUNC
, rl_backward
}, /* h */
152 { ISFUNC
, rl_vi_insertion_mode
}, /* i */
153 { ISFUNC
, rl_get_next_history
}, /* j */
154 { ISFUNC
, rl_get_previous_history
}, /* k */
155 { ISFUNC
, rl_forward
}, /* l */
156 { ISFUNC
, (Function
*)0x0 }, /* m */
157 { ISFUNC
, rl_vi_search_again
}, /* n */
158 { ISFUNC
, (Function
*)0x0 }, /* o */
159 { ISFUNC
, rl_vi_put
}, /* p */
160 { ISFUNC
, (Function
*)0x0 }, /* q */
161 { ISFUNC
, rl_vi_change_char
}, /* r */
162 { ISFUNC
, rl_vi_subst
}, /* s */
163 { ISFUNC
, rl_vi_char_search
}, /* t */
164 { ISFUNC
, rl_undo_command
}, /* u */
165 { ISFUNC
, (Function
*)0x0 }, /* v */
166 { ISFUNC
, rl_vi_next_word
}, /* w */
167 { ISFUNC
, rl_vi_delete
}, /* x */
168 { ISFUNC
, rl_vi_yank_to
}, /* y */
169 { ISFUNC
, (Function
*)0x0 }, /* z */
171 /* Final punctuation. */
172 { ISFUNC
, (Function
*)0x0 }, /* { */
173 { ISFUNC
, rl_vi_column
}, /* | */
174 { ISFUNC
, (Function
*)0x0 }, /* } */
175 { ISFUNC
, rl_vi_change_case
}, /* ~ */
176 { ISFUNC
, rl_backward
} /* RUBOUT */
180 KEYMAP_ENTRY_ARRAY vi_insertion_keymap
= {
182 /* The regular control keys come first. */
183 { ISFUNC
, (Function
*)0x0 }, /* Control-@ */
184 { ISFUNC
, rl_insert
}, /* Control-a */
185 { ISFUNC
, rl_insert
}, /* Control-b */
186 { ISFUNC
, rl_insert
}, /* Control-c */
187 { ISFUNC
, rl_vi_eof_maybe
}, /* Control-d */
188 { ISFUNC
, rl_insert
}, /* Control-e */
189 { ISFUNC
, rl_insert
}, /* Control-f */
190 { ISFUNC
, rl_insert
}, /* Control-g */
191 { ISFUNC
, rl_rubout
}, /* Control-h */
192 { ISFUNC
, rl_complete
}, /* Control-i */
193 { ISFUNC
, rl_newline
}, /* Control-j */
194 { ISFUNC
, rl_insert
}, /* Control-k */
195 { ISFUNC
, rl_insert
}, /* Control-l */
196 { ISFUNC
, rl_newline
}, /* Control-m */
197 { ISFUNC
, rl_insert
}, /* Control-n */
198 { ISFUNC
, rl_insert
}, /* Control-o */
199 { ISFUNC
, rl_insert
}, /* Control-p */
200 { ISFUNC
, rl_insert
}, /* Control-q */
201 { ISFUNC
, rl_reverse_search_history
}, /* Control-r */
202 { ISFUNC
, rl_forward_search_history
}, /* Control-s */
203 { ISFUNC
, rl_transpose_chars
}, /* Control-t */
204 { ISFUNC
, rl_unix_line_discard
}, /* Control-u */
205 { ISFUNC
, rl_quoted_insert
}, /* Control-v */
206 { ISFUNC
, rl_unix_word_rubout
}, /* Control-w */
207 { ISFUNC
, rl_insert
}, /* Control-x */
208 { ISFUNC
, rl_yank
}, /* Control-y */
209 { ISFUNC
, rl_insert
}, /* Control-z */
211 { ISFUNC
, rl_vi_movement_mode
}, /* Control-[ */
212 { ISFUNC
, rl_insert
}, /* Control-\ */
213 { ISFUNC
, rl_insert
}, /* Control-] */
214 { ISFUNC
, rl_insert
}, /* Control-^ */
215 { ISFUNC
, rl_undo_command
}, /* Control-_ */
217 /* The start of printing characters. */
218 { ISFUNC
, rl_insert
}, /* SPACE */
219 { ISFUNC
, rl_insert
}, /* ! */
220 { ISFUNC
, rl_insert
}, /* " */
221 { ISFUNC
, rl_insert
}, /* # */
222 { ISFUNC
, rl_insert
}, /* $ */
223 { ISFUNC
, rl_insert
}, /* % */
224 { ISFUNC
, rl_insert
}, /* & */
225 { ISFUNC
, rl_insert
}, /* ' */
226 { ISFUNC
, rl_insert
}, /* ( */
227 { ISFUNC
, rl_insert
}, /* ) */
228 { ISFUNC
, rl_insert
}, /* * */
229 { ISFUNC
, rl_insert
}, /* + */
230 { ISFUNC
, rl_insert
}, /* , */
231 { ISFUNC
, rl_insert
}, /* - */
232 { ISFUNC
, rl_insert
}, /* . */
233 { ISFUNC
, rl_insert
}, /* / */
235 /* Regular digits. */
236 { ISFUNC
, rl_insert
}, /* 0 */
237 { ISFUNC
, rl_insert
}, /* 1 */
238 { ISFUNC
, rl_insert
}, /* 2 */
239 { ISFUNC
, rl_insert
}, /* 3 */
240 { ISFUNC
, rl_insert
}, /* 4 */
241 { ISFUNC
, rl_insert
}, /* 5 */
242 { ISFUNC
, rl_insert
}, /* 6 */
243 { ISFUNC
, rl_insert
}, /* 7 */
244 { ISFUNC
, rl_insert
}, /* 8 */
245 { ISFUNC
, rl_insert
}, /* 9 */
247 /* A little more punctuation. */
248 { ISFUNC
, rl_insert
}, /* : */
249 { ISFUNC
, rl_insert
}, /* ; */
250 { ISFUNC
, rl_insert
}, /* < */
251 { ISFUNC
, rl_insert
}, /* = */
252 { ISFUNC
, rl_insert
}, /* > */
253 { ISFUNC
, rl_insert
}, /* ? */
254 { ISFUNC
, rl_insert
}, /* @ */
256 /* Uppercase alphabet. */
257 { ISFUNC
, rl_insert
}, /* A */
258 { ISFUNC
, rl_insert
}, /* B */
259 { ISFUNC
, rl_insert
}, /* C */
260 { ISFUNC
, rl_insert
}, /* D */
261 { ISFUNC
, rl_insert
}, /* E */
262 { ISFUNC
, rl_insert
}, /* F */
263 { ISFUNC
, rl_insert
}, /* G */
264 { ISFUNC
, rl_insert
}, /* H */
265 { ISFUNC
, rl_insert
}, /* I */
266 { ISFUNC
, rl_insert
}, /* J */
267 { ISFUNC
, rl_insert
}, /* K */
268 { ISFUNC
, rl_insert
}, /* L */
269 { ISFUNC
, rl_insert
}, /* M */
270 { ISFUNC
, rl_insert
}, /* N */
271 { ISFUNC
, rl_insert
}, /* O */
272 { ISFUNC
, rl_insert
}, /* P */
273 { ISFUNC
, rl_insert
}, /* Q */
274 { ISFUNC
, rl_insert
}, /* R */
275 { ISFUNC
, rl_insert
}, /* S */
276 { ISFUNC
, rl_insert
}, /* T */
277 { ISFUNC
, rl_insert
}, /* U */
278 { ISFUNC
, rl_insert
}, /* V */
279 { ISFUNC
, rl_insert
}, /* W */
280 { ISFUNC
, rl_insert
}, /* X */
281 { ISFUNC
, rl_insert
}, /* Y */
282 { ISFUNC
, rl_insert
}, /* Z */
284 /* Some more punctuation. */
285 { ISFUNC
, rl_insert
}, /* [ */
286 { ISFUNC
, rl_insert
}, /* \ */
287 { ISFUNC
, rl_insert
}, /* ] */
288 { ISFUNC
, rl_insert
}, /* ^ */
289 { ISFUNC
, rl_insert
}, /* _ */
290 { ISFUNC
, rl_insert
}, /* ` */
292 /* Lowercase alphabet. */
293 { ISFUNC
, rl_insert
}, /* a */
294 { ISFUNC
, rl_insert
}, /* b */
295 { ISFUNC
, rl_insert
}, /* c */
296 { ISFUNC
, rl_insert
}, /* d */
297 { ISFUNC
, rl_insert
}, /* e */
298 { ISFUNC
, rl_insert
}, /* f */
299 { ISFUNC
, rl_insert
}, /* g */
300 { ISFUNC
, rl_insert
}, /* h */
301 { ISFUNC
, rl_insert
}, /* i */
302 { ISFUNC
, rl_insert
}, /* j */
303 { ISFUNC
, rl_insert
}, /* k */
304 { ISFUNC
, rl_insert
}, /* l */
305 { ISFUNC
, rl_insert
}, /* m */
306 { ISFUNC
, rl_insert
}, /* n */
307 { ISFUNC
, rl_insert
}, /* o */
308 { ISFUNC
, rl_insert
}, /* p */
309 { ISFUNC
, rl_insert
}, /* q */
310 { ISFUNC
, rl_insert
}, /* r */
311 { ISFUNC
, rl_insert
}, /* s */
312 { ISFUNC
, rl_insert
}, /* t */
313 { ISFUNC
, rl_insert
}, /* u */
314 { ISFUNC
, rl_insert
}, /* v */
315 { ISFUNC
, rl_insert
}, /* w */
316 { ISFUNC
, rl_insert
}, /* x */
317 { ISFUNC
, rl_insert
}, /* y */
318 { ISFUNC
, rl_insert
}, /* z */
320 /* Final punctuation. */
321 { ISFUNC
, rl_insert
}, /* { */
322 { ISFUNC
, rl_insert
}, /* | */
323 { ISFUNC
, rl_insert
}, /* } */
324 { ISFUNC
, rl_insert
}, /* ~ */
325 { ISFUNC
, rl_rubout
} /* RUBOUT */
328 KEYMAP_ENTRY_ARRAY vi_escape_keymap
= {
330 /* The regular control keys come first. */
331 { ISFUNC
, (Function
*)0x0 }, /* Control-@ */
332 { ISFUNC
, (Function
*)0x0 }, /* Control-a */
333 { ISFUNC
, (Function
*)0x0 }, /* Control-b */
334 { ISFUNC
, (Function
*)0x0 }, /* Control-c */
335 { ISFUNC
, (Function
*)0x0 }, /* Control-d */
336 { ISFUNC
, (Function
*)0x0 }, /* Control-e */
337 { ISFUNC
, (Function
*)0x0 }, /* Control-f */
338 { ISFUNC
, (Function
*)0x0 }, /* Control-g */
339 { ISFUNC
, (Function
*)0x0 }, /* Control-h */
340 { ISFUNC
, rl_tab_insert
}, /* Control-i */
341 { ISFUNC
, rl_emacs_editing_mode
}, /* Control-j */
342 { ISFUNC
, rl_kill_line
}, /* Control-k */
343 { ISFUNC
, (Function
*)0x0 }, /* Control-l */
344 { ISFUNC
, rl_emacs_editing_mode
}, /* Control-m */
345 { ISFUNC
, (Function
*)0x0 }, /* Control-n */
346 { ISFUNC
, (Function
*)0x0 }, /* Control-o */
347 { ISFUNC
, (Function
*)0x0 }, /* Control-p */
348 { ISFUNC
, (Function
*)0x0 }, /* Control-q */
349 { ISFUNC
, (Function
*)0x0 }, /* Control-r */
350 { ISFUNC
, (Function
*)0x0 }, /* Control-s */
351 { ISFUNC
, (Function
*)0x0 }, /* Control-t */
352 { ISFUNC
, (Function
*)0x0 }, /* Control-u */
353 { ISFUNC
, (Function
*)0x0 }, /* Control-v */
354 { ISFUNC
, (Function
*)0x0 }, /* Control-w */
355 { ISFUNC
, (Function
*)0x0 }, /* Control-x */
356 { ISFUNC
, (Function
*)0x0 }, /* Control-y */
357 { ISFUNC
, (Function
*)0x0 }, /* Control-z */
359 { ISFUNC
, rl_vi_movement_mode
}, /* Control-[ */
360 { ISFUNC
, (Function
*)0x0 }, /* Control-\ */
361 { ISFUNC
, (Function
*)0x0 }, /* Control-] */
362 { ISFUNC
, (Function
*)0x0 }, /* Control-^ */
363 { ISFUNC
, rl_undo_command
}, /* Control-_ */
365 /* The start of printing characters. */
366 { ISFUNC
, (Function
*)0x0 }, /* SPACE */
367 { ISFUNC
, (Function
*)0x0 }, /* ! */
368 { ISFUNC
, (Function
*)0x0 }, /* " */
369 { ISFUNC
, (Function
*)0x0 }, /* # */
370 { ISFUNC
, (Function
*)0x0 }, /* $ */
371 { ISFUNC
, (Function
*)0x0 }, /* % */
372 { ISFUNC
, (Function
*)0x0 }, /* & */
373 { ISFUNC
, (Function
*)0x0 }, /* ' */
374 { ISFUNC
, (Function
*)0x0 }, /* ( */
375 { ISFUNC
, (Function
*)0x0 }, /* ) */
376 { ISFUNC
, (Function
*)0x0 }, /* * */
377 { ISFUNC
, (Function
*)0x0 }, /* + */
378 { ISFUNC
, (Function
*)0x0 }, /* , */
379 { ISFUNC
, (Function
*)0x0 }, /* - */
380 { ISFUNC
, (Function
*)0x0 }, /* . */
381 { ISFUNC
, (Function
*)0x0 }, /* / */
383 /* Regular digits. */
384 { ISFUNC
, rl_vi_arg_digit
}, /* 0 */
385 { ISFUNC
, rl_vi_arg_digit
}, /* 1 */
386 { ISFUNC
, rl_vi_arg_digit
}, /* 2 */
387 { ISFUNC
, rl_vi_arg_digit
}, /* 3 */
388 { ISFUNC
, rl_vi_arg_digit
}, /* 4 */
389 { ISFUNC
, rl_vi_arg_digit
}, /* 5 */
390 { ISFUNC
, rl_vi_arg_digit
}, /* 6 */
391 { ISFUNC
, rl_vi_arg_digit
}, /* 7 */
392 { ISFUNC
, rl_vi_arg_digit
}, /* 8 */
393 { ISFUNC
, rl_vi_arg_digit
}, /* 9 */
395 /* A little more punctuation. */
396 { ISFUNC
, (Function
*)0x0 }, /* : */
397 { ISFUNC
, (Function
*)0x0 }, /* ; */
398 { ISFUNC
, (Function
*)0x0 }, /* < */
399 { ISFUNC
, (Function
*)0x0 }, /* = */
400 { ISFUNC
, (Function
*)0x0 }, /* > */
401 { ISFUNC
, (Function
*)0x0 }, /* ? */
402 { ISFUNC
, (Function
*)0x0 }, /* @ */
404 /* Uppercase alphabet. */
405 { ISFUNC
, rl_do_lowercase_version
}, /* A */
406 { ISFUNC
, rl_do_lowercase_version
}, /* B */
407 { ISFUNC
, rl_do_lowercase_version
}, /* C */
408 { ISFUNC
, rl_do_lowercase_version
}, /* D */
409 { ISFUNC
, rl_do_lowercase_version
}, /* E */
410 { ISFUNC
, rl_do_lowercase_version
}, /* F */
411 { ISFUNC
, rl_do_lowercase_version
}, /* G */
412 { ISFUNC
, rl_do_lowercase_version
}, /* H */
413 { ISFUNC
, rl_do_lowercase_version
}, /* I */
414 { ISFUNC
, rl_do_lowercase_version
}, /* J */
415 { ISFUNC
, rl_do_lowercase_version
}, /* K */
416 { ISFUNC
, rl_do_lowercase_version
}, /* L */
417 { ISFUNC
, rl_do_lowercase_version
}, /* M */
418 { ISFUNC
, rl_do_lowercase_version
}, /* N */
419 { ISFUNC
, rl_do_lowercase_version
}, /* O */
420 { ISFUNC
, rl_do_lowercase_version
}, /* P */
421 { ISFUNC
, rl_do_lowercase_version
}, /* Q */
422 { ISFUNC
, rl_do_lowercase_version
}, /* R */
423 { ISFUNC
, rl_do_lowercase_version
}, /* S */
424 { ISFUNC
, rl_do_lowercase_version
}, /* T */
425 { ISFUNC
, rl_do_lowercase_version
}, /* U */
426 { ISFUNC
, rl_do_lowercase_version
}, /* V */
427 { ISFUNC
, rl_do_lowercase_version
}, /* W */
428 { ISFUNC
, rl_do_lowercase_version
}, /* X */
429 { ISFUNC
, rl_do_lowercase_version
}, /* Y */
430 { ISFUNC
, rl_do_lowercase_version
}, /* Z */
432 /* Some more punctuation. */
433 { ISFUNC
, (Function
*)0x0 }, /* [ */
434 { ISFUNC
, (Function
*)0x0 }, /* \ */
435 { ISFUNC
, (Function
*)0x0 }, /* ] */
436 { ISFUNC
, (Function
*)0x0 }, /* ^ */
437 { ISFUNC
, (Function
*)0x0 }, /* _ */
438 { ISFUNC
, (Function
*)0x0 }, /* ` */
440 /* Lowercase alphabet. */
441 { ISFUNC
, (Function
*)0x0 }, /* a */
442 { ISFUNC
, (Function
*)0x0 }, /* b */
443 { ISFUNC
, (Function
*)0x0 }, /* c */
444 { ISFUNC
, (Function
*)0x0 }, /* d */
445 { ISFUNC
, (Function
*)0x0 }, /* e */
446 { ISFUNC
, (Function
*)0x0 }, /* f */
447 { ISFUNC
, (Function
*)0x0 }, /* g */
448 { ISFUNC
, (Function
*)0x0 }, /* h */
449 { ISFUNC
, (Function
*)0x0 }, /* i */
450 { ISFUNC
, (Function
*)0x0 }, /* j */
451 { ISFUNC
, (Function
*)0x0 }, /* k */
452 { ISFUNC
, (Function
*)0x0 }, /* l */
453 { ISFUNC
, (Function
*)0x0 }, /* m */
454 { ISFUNC
, (Function
*)0x0 }, /* n */
455 { ISFUNC
, (Function
*)0x0 }, /* o */
456 { ISFUNC
, (Function
*)0x0 }, /* p */
457 { ISFUNC
, (Function
*)0x0 }, /* q */
458 { ISFUNC
, (Function
*)0x0 }, /* r */
459 { ISFUNC
, (Function
*)0x0 }, /* s */
460 { ISFUNC
, (Function
*)0x0 }, /* t */
461 { ISFUNC
, (Function
*)0x0 }, /* u */
462 { ISFUNC
, (Function
*)0x0 }, /* v */
463 { ISFUNC
, (Function
*)0x0 }, /* w */
464 { ISFUNC
, (Function
*)0x0 }, /* x */
465 { ISFUNC
, (Function
*)0x0 }, /* y */
466 { ISFUNC
, (Function
*)0x0 }, /* z */
468 /* Final punctuation. */
469 { ISFUNC
, (Function
*)0x0 }, /* { */
470 { ISFUNC
, (Function
*)0x0 }, /* | */
471 { ISFUNC
, (Function
*)0x0 }, /* } */
472 { ISFUNC
, (Function
*)0x0 }, /* ~ */
473 { ISFUNC
, rl_backward_kill_word
} /* RUBOUT */