Commit | Line | Data |
---|---|---|
bd5635a1 RP |
1 | /* vi_keymap.c -- the keymap for vi_mode in readline (). */ |
2 | ||
3 | /* Copyright (C) 1988,1989 Free Software Foundation, Inc. | |
4 | ||
5 | This file is part of GNU Readline, a library for reading lines | |
6 | of text with interactive input and history editing. | |
7 | ||
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 | |
11 | later version. | |
12 | ||
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. | |
17 | ||
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. */ | |
21 | ||
870ca253 | 22 | #ifndef BUFSIZ |
bd5635a1 | 23 | #include <stdio.h> |
870ca253 | 24 | #endif /* BUFSIZ */ |
bd5635a1 RP |
25 | |
26 | #include "readline.h" | |
27 | ||
28 | extern KEYMAP_ENTRY_ARRAY vi_escape_keymap; | |
29 | ||
30 | /* The keymap arrays for handling vi mode. */ | |
31 | KEYMAP_ENTRY_ARRAY vi_movement_keymap = { | |
32 | ||
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 */ | |
870ca253 | 42 | { ISFUNC, rl_rubout }, /* Control-h */ |
bd5635a1 RP |
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 */ | |
61 | ||
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-_ */ | |
67 | ||
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 }, /* / */ | |
85 | ||
86 | /* Regular digits. */ | |
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 */ | |
97 | ||
98 | /* A little more punctuation. */ | |
99 | { ISFUNC, (Function *)0x0 }, /* : */ | |
100 | { ISFUNC, rl_vi_char_search }, /* ; */ | |
101 | { ISFUNC, (Function *)0x0 }, /* < */ | |
870ca253 | 102 | { ISFUNC, rl_vi_complete }, /* = */ |
bd5635a1 RP |
103 | { ISFUNC, (Function *)0x0 }, /* > */ |
104 | { ISFUNC, rl_vi_search }, /* ? */ | |
105 | { ISFUNC, (Function *)0x0 }, /* @ */ | |
106 | ||
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 */ | |
870ca253 | 114 | { ISFUNC, rl_vi_fetch_history }, /* G */ |
bd5635a1 RP |
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 */ | |
134 | ||
135 | /* Some more punctuation. */ | |
136 | { ISFUNC, (Function *)0x0 }, /* [ */ | |
870ca253 | 137 | { ISFUNC, rl_vi_complete }, /* \ */ |
bd5635a1 RP |
138 | { ISFUNC, (Function *)0x0 }, /* ] */ |
139 | { ISFUNC, rl_vi_first_print }, /* ^ */ | |
140 | { ISFUNC, rl_vi_yank_arg }, /* _ */ | |
141 | { ISFUNC, (Function *)0x0 }, /* ` */ | |
142 | ||
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 */ | |
170 | ||
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 */ | |
177 | }; | |
178 | ||
179 | ||
180 | KEYMAP_ENTRY_ARRAY vi_insertion_keymap = { | |
181 | ||
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 */ | |
210 | ||
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-_ */ | |
216 | ||
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 }, /* / */ | |
234 | ||
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 */ | |
246 | ||
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 }, /* @ */ | |
255 | ||
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 */ | |
283 | ||
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 }, /* ` */ | |
291 | ||
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 */ | |
319 | ||
320 | /* Final punctuation. */ | |
321 | { ISFUNC, rl_insert }, /* { */ | |
322 | { ISFUNC, rl_insert }, /* | */ | |
323 | { ISFUNC, rl_insert }, /* } */ | |
324 | { ISFUNC, rl_insert }, /* ~ */ | |
325 | { ISFUNC, rl_rubout } /* RUBOUT */ | |
326 | }; | |
327 | ||
328 | KEYMAP_ENTRY_ARRAY vi_escape_keymap = { | |
329 | ||
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 */ | |
358 | ||
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-_ */ | |
364 | ||
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 }, /* / */ | |
382 | ||
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 */ | |
394 | ||
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 }, /* @ */ | |
403 | ||
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 */ | |
431 | ||
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 }, /* ` */ | |
439 | ||
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 */ | |
467 | ||
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 */ | |
474 | }; |