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