home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pyth_os2.zip / python-1.0.2 / readline / emacs_keymap.c < prev    next >
C/C++ Source or Header  |  1991-07-09  |  19KB  |  473 lines

  1. /* emacs_keymap.c -- the keymap for emacs_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.  
  22. #ifndef BUFSIZ
  23. #include <stdio.h>
  24. #endif /* BUFSIZ */
  25.  
  26. #include "readline.h"
  27.  
  28. /* An array of function pointers, one for each possible key.
  29.    If the type byte is ISKMAP, then the pointer is the address of
  30.    a keymap. */
  31.  
  32. KEYMAP_ENTRY_ARRAY emacs_standard_keymap = {
  33.  
  34.   /* Control keys. */
  35.   { ISFUNC, (Function *)0x0 },        /* Control-@ */
  36.   { ISFUNC, rl_beg_of_line },        /* Control-a */
  37.   { ISFUNC, rl_backward },        /* Control-b */
  38.   { ISFUNC, (Function *)0x0 },        /* Control-c */
  39.   { ISFUNC, rl_delete },        /* Control-d */
  40.   { ISFUNC, rl_end_of_line },        /* Control-e */
  41.   { ISFUNC, rl_forward },        /* Control-f */
  42.   { ISFUNC, rl_abort },            /* Control-g */
  43.   { ISFUNC, rl_rubout },        /* Control-h */
  44.   { ISFUNC, rl_complete },        /* Control-i */
  45.   { ISFUNC, rl_newline },        /* Control-j */
  46.   { ISFUNC, rl_kill_line },        /* Control-k */
  47.   { ISFUNC, rl_clear_screen },        /* Control-l */
  48.   { ISFUNC, rl_newline },        /* Control-m */
  49.   { ISFUNC, rl_get_next_history },    /* Control-n */
  50.   { ISFUNC, (Function *)0x0 },        /* Control-o */
  51.   { ISFUNC, rl_get_previous_history },    /* Control-p */
  52.   { ISFUNC, rl_quoted_insert },        /* Control-q */
  53.   { ISFUNC, rl_reverse_search_history }, /* Control-r */
  54.   { ISFUNC, rl_forward_search_history }, /* Control-s */
  55.   { ISFUNC, rl_transpose_chars },    /* Control-t */
  56.   { ISFUNC, rl_unix_line_discard },    /* Control-u */
  57.   { ISFUNC, rl_quoted_insert },        /* Control-v */
  58.   { ISFUNC, rl_unix_word_rubout },    /* Control-w */
  59.   { ISKMAP, (Function *)emacs_ctlx_keymap },    /* Control-x */
  60.   { ISFUNC, rl_yank },            /* Control-y */
  61.   { ISFUNC, (Function *)0x0 },        /* Control-z */
  62.   { ISKMAP, (Function *)emacs_meta_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_insert },    /* SPACE */
  70.   { ISFUNC, rl_insert },    /* ! */
  71.   { ISFUNC, rl_insert },    /* " */
  72.   { ISFUNC, rl_insert },    /* # */
  73.   { ISFUNC, rl_insert },    /* $ */
  74.   { ISFUNC, rl_insert },    /* % */
  75.   { ISFUNC, rl_insert },    /* & */
  76.   { ISFUNC, rl_insert },    /* ' */
  77.   { ISFUNC, rl_insert },    /* ( */
  78.   { ISFUNC, rl_insert },    /* ) */
  79.   { ISFUNC, rl_insert },    /* * */
  80.   { ISFUNC, rl_insert },    /* + */
  81.   { ISFUNC, rl_insert },    /* , */
  82.   { ISFUNC, rl_insert },    /* - */
  83.   { ISFUNC, rl_insert },    /* . */
  84.   { ISFUNC, rl_insert },    /* / */
  85.  
  86.   /* Regular digits. */
  87.   { ISFUNC, rl_insert },    /* 0 */
  88.   { ISFUNC, rl_insert },    /* 1 */
  89.   { ISFUNC, rl_insert },    /* 2 */
  90.   { ISFUNC, rl_insert },    /* 3 */
  91.   { ISFUNC, rl_insert },    /* 4 */
  92.   { ISFUNC, rl_insert },    /* 5 */
  93.   { ISFUNC, rl_insert },    /* 6 */
  94.   { ISFUNC, rl_insert },    /* 7 */
  95.   { ISFUNC, rl_insert },    /* 8 */
  96.   { ISFUNC, rl_insert },    /* 9 */
  97.  
  98.   /* A little more punctuation. */
  99.   { ISFUNC, rl_insert },    /* : */
  100.   { ISFUNC, rl_insert },    /* ; */
  101.   { ISFUNC, rl_insert },    /* < */
  102.   { ISFUNC, rl_insert },    /* = */
  103.   { ISFUNC, rl_insert },    /* > */
  104.   { ISFUNC, rl_insert },    /* ? */
  105.   { ISFUNC, rl_insert },    /* @ */
  106.  
  107.   /* Uppercase alphabet. */
  108.   { ISFUNC, rl_insert },    /* A */
  109.   { ISFUNC, rl_insert },    /* B */
  110.   { ISFUNC, rl_insert },    /* C */
  111.   { ISFUNC, rl_insert },    /* D */
  112.   { ISFUNC, rl_insert },    /* E */
  113.   { ISFUNC, rl_insert },    /* F */
  114.   { ISFUNC, rl_insert },    /* G */
  115.   { ISFUNC, rl_insert },    /* H */
  116.   { ISFUNC, rl_insert },    /* I */
  117.   { ISFUNC, rl_insert },    /* J */
  118.   { ISFUNC, rl_insert },    /* K */
  119.   { ISFUNC, rl_insert },    /* L */
  120.   { ISFUNC, rl_insert },    /* M */
  121.   { ISFUNC, rl_insert },    /* N */
  122.   { ISFUNC, rl_insert },    /* O */
  123.   { ISFUNC, rl_insert },    /* P */
  124.   { ISFUNC, rl_insert },    /* Q */
  125.   { ISFUNC, rl_insert },    /* R */
  126.   { ISFUNC, rl_insert },    /* S */
  127.   { ISFUNC, rl_insert },    /* T */
  128.   { ISFUNC, rl_insert },    /* U */
  129.   { ISFUNC, rl_insert },    /* V */
  130.   { ISFUNC, rl_insert },    /* W */
  131.   { ISFUNC, rl_insert },    /* X */
  132.   { ISFUNC, rl_insert },    /* Y */
  133.   { ISFUNC, rl_insert },    /* Z */
  134.  
  135.   /* Some more punctuation. */
  136.   { ISFUNC, rl_insert },    /* [ */
  137.   { ISFUNC, rl_insert },    /* \ */
  138.   { ISFUNC, rl_insert },    /* ] */
  139.   { ISFUNC, rl_insert },    /* ^ */
  140.   { ISFUNC, rl_insert },    /* _ */
  141.   { ISFUNC, rl_insert },    /* ` */
  142.  
  143.   /* Lowercase alphabet. */
  144.   { ISFUNC, rl_insert },    /* a */
  145.   { ISFUNC, rl_insert },    /* b */
  146.   { ISFUNC, rl_insert },    /* c */
  147.   { ISFUNC, rl_insert },    /* d */
  148.   { ISFUNC, rl_insert },    /* e */
  149.   { ISFUNC, rl_insert },    /* f */
  150.   { ISFUNC, rl_insert },    /* g */
  151.   { ISFUNC, rl_insert },    /* h */
  152.   { ISFUNC, rl_insert },    /* i */
  153.   { ISFUNC, rl_insert },    /* j */
  154.   { ISFUNC, rl_insert },    /* k */
  155.   { ISFUNC, rl_insert },    /* l */
  156.   { ISFUNC, rl_insert },    /* m */
  157.   { ISFUNC, rl_insert },    /* n */
  158.   { ISFUNC, rl_insert },    /* o */
  159.   { ISFUNC, rl_insert },    /* p */
  160.   { ISFUNC, rl_insert },    /* q */
  161.   { ISFUNC, rl_insert },    /* r */
  162.   { ISFUNC, rl_insert },    /* s */
  163.   { ISFUNC, rl_insert },    /* t */
  164.   { ISFUNC, rl_insert },    /* u */
  165.   { ISFUNC, rl_insert },    /* v */
  166.   { ISFUNC, rl_insert },    /* w */
  167.   { ISFUNC, rl_insert },    /* x */
  168.   { ISFUNC, rl_insert },    /* y */
  169.   { ISFUNC, rl_insert },    /* z */
  170.  
  171.   /* Final punctuation. */
  172.   { ISFUNC, rl_insert },    /* { */
  173.   { ISFUNC, rl_insert },    /* | */
  174.   { ISFUNC, rl_insert },    /* } */
  175.   { ISFUNC, rl_insert },    /* ~ */
  176.   { ISFUNC, rl_rubout }        /* RUBOUT */
  177. };
  178.  
  179. KEYMAP_ENTRY_ARRAY emacs_meta_keymap = {
  180.  
  181.   /* Meta keys.  Just like above, but the high bit is set. */
  182.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-@ */
  183.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-a */
  184.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-b */
  185.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-c */
  186.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-d */
  187.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-e */
  188.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-f */
  189.   { ISFUNC, rl_abort },        /* Meta-Control-g */
  190.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-h */
  191.   { ISFUNC, rl_tab_insert },    /* Meta-Control-i */
  192.   { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-j */
  193.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-k */
  194.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-l */
  195.   { ISFUNC, rl_vi_editing_mode }, /* Meta-Control-m */
  196.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-n */
  197.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-o */
  198.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-p */
  199.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-q */
  200.   { ISFUNC, rl_revert_line },    /* Meta-Control-r */
  201.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-s */
  202.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-t */
  203.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-u */
  204.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-v */
  205.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-w */
  206.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-x */
  207.   { ISFUNC, rl_yank_nth_arg },    /* Meta-Control-y */
  208.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-z */
  209.  
  210.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-[ */
  211.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-\ */
  212.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-] */
  213.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-^ */
  214.   { ISFUNC, (Function *)0x0 },    /* Meta-Control-_ */
  215.  
  216.   /* The start of printing characters. */
  217.   { ISFUNC, (Function *)0x0 },    /* Meta-SPACE */
  218.   { ISFUNC, (Function *)0x0 },    /* Meta-! */
  219.   { ISFUNC, (Function *)0x0 },    /* Meta-" */
  220.   { ISFUNC, (Function *)0x0 },    /* Meta-# */
  221.   { ISFUNC, (Function *)0x0 },    /* Meta-$ */
  222.   { ISFUNC, (Function *)0x0 },    /* Meta-% */
  223.   { ISFUNC, (Function *)0x0 },    /* Meta-& */
  224.   { ISFUNC, (Function *)0x0 },    /* Meta-' */
  225.   { ISFUNC, (Function *)0x0 },    /* Meta-( */
  226.   { ISFUNC, (Function *)0x0 },    /* Meta-) */
  227.   { ISFUNC, (Function *)0x0 },    /* Meta-* */
  228.   { ISFUNC, (Function *)0x0 },    /* Meta-+ */
  229.   { ISFUNC, (Function *)0x0 },    /* Meta-, */
  230.   { ISFUNC, rl_digit_argument }, /* Meta-- */
  231.   { ISFUNC, (Function *)0x0 },    /* Meta-. */
  232.   { ISFUNC, (Function *)0x0 },    /* Meta-/ */
  233.  
  234.   /* Regular digits. */
  235.   { ISFUNC, rl_digit_argument }, /* Meta-0 */
  236.   { ISFUNC, rl_digit_argument }, /* Meta-1 */
  237.   { ISFUNC, rl_digit_argument }, /* Meta-2 */
  238.   { ISFUNC, rl_digit_argument }, /* Meta-3 */
  239.   { ISFUNC, rl_digit_argument }, /* Meta-4 */
  240.   { ISFUNC, rl_digit_argument }, /* Meta-5 */
  241.   { ISFUNC, rl_digit_argument }, /* Meta-6 */
  242.   { ISFUNC, rl_digit_argument }, /* Meta-7 */
  243.   { ISFUNC, rl_digit_argument }, /* Meta-8 */
  244.   { ISFUNC, rl_digit_argument }, /* Meta-9 */
  245.  
  246.   /* A little more punctuation. */
  247.   { ISFUNC, (Function *)0x0 },        /* Meta-: */
  248.   { ISFUNC, (Function *)0x0 },        /* Meta-; */
  249.   { ISFUNC, rl_beginning_of_history },    /* Meta-< */
  250.   { ISFUNC, (Function *)0x0 },        /* Meta-= */
  251.   { ISFUNC, rl_end_of_history },    /* Meta-> */
  252.   { ISFUNC, rl_possible_completions },    /* Meta-? */
  253.   { ISFUNC, (Function *)0x0 },        /* Meta-@ */
  254.  
  255.   /* Uppercase alphabet. */
  256.   { ISFUNC, rl_do_lowercase_version },    /* Meta-A */
  257.   { ISFUNC, rl_do_lowercase_version },    /* Meta-B */
  258.   { ISFUNC, rl_do_lowercase_version },    /* Meta-C */
  259.   { ISFUNC, rl_do_lowercase_version },    /* Meta-D */
  260.   { ISFUNC, rl_do_lowercase_version },    /* Meta-E */
  261.   { ISFUNC, rl_do_lowercase_version },    /* Meta-F */
  262.   { ISFUNC, rl_do_lowercase_version },    /* Meta-G */
  263.   { ISFUNC, rl_do_lowercase_version },    /* Meta-H */
  264.   { ISFUNC, rl_do_lowercase_version },    /* Meta-I */
  265.   { ISFUNC, rl_do_lowercase_version },    /* Meta-J */
  266.   { ISFUNC, rl_do_lowercase_version },    /* Meta-K */
  267.   { ISFUNC, rl_do_lowercase_version },    /* Meta-L */
  268.   { ISFUNC, rl_do_lowercase_version },    /* Meta-M */
  269.   { ISFUNC, rl_do_lowercase_version },    /* Meta-N */
  270.   { ISFUNC, rl_do_lowercase_version },    /* Meta-O */
  271.   { ISFUNC, rl_do_lowercase_version },    /* Meta-P */
  272.   { ISFUNC, rl_do_lowercase_version },    /* Meta-Q */
  273.   { ISFUNC, rl_do_lowercase_version },    /* Meta-R */
  274.   { ISFUNC, rl_do_lowercase_version },    /* Meta-S */
  275.   { ISFUNC, rl_do_lowercase_version },    /* Meta-T */
  276.   { ISFUNC, rl_do_lowercase_version },    /* Meta-U */
  277.   { ISFUNC, rl_do_lowercase_version },    /* Meta-V */
  278.   { ISFUNC, rl_do_lowercase_version },    /* Meta-W */
  279.   { ISFUNC, rl_do_lowercase_version },    /* Meta-X */
  280.   { ISFUNC, rl_do_lowercase_version },    /* Meta-Y */
  281.   { ISFUNC, rl_do_lowercase_version },    /* Meta-Z */
  282.  
  283.   /* Some more punctuation. */
  284.   { ISFUNC, rl_arrow_keys },    /* Meta-[ */
  285.   { ISFUNC, (Function *)0x0 },    /* Meta-\ */
  286.   { ISFUNC, (Function *)0x0 },    /* Meta-] */
  287.   { ISFUNC, (Function *)0x0 },    /* Meta-^ */
  288.   { ISFUNC, (Function *)0x0 },    /* Meta-_ */
  289.   { ISFUNC, (Function *)0x0 },    /* Meta-` */
  290.  
  291.   /* Lowercase alphabet. */
  292.   { ISFUNC, (Function *)0x0 },    /* Meta-a */
  293.   { ISFUNC, rl_backward_word },    /* Meta-b */
  294.   { ISFUNC, rl_capitalize_word }, /* Meta-c */
  295.   { ISFUNC, rl_kill_word },    /* Meta-d */
  296.   { ISFUNC, (Function *)0x0 },    /* Meta-e */
  297.   { ISFUNC, rl_forward_word },    /* Meta-f */
  298.   { ISFUNC, (Function *)0x0 },    /* Meta-g */
  299.   { ISFUNC, (Function *)0x0 },    /* Meta-h */
  300.   { ISFUNC, (Function *)0x0 },    /* Meta-i */
  301.   { ISFUNC, (Function *)0x0 },    /* Meta-j */
  302.   { ISFUNC, (Function *)0x0 },    /* Meta-k */
  303.   { ISFUNC, rl_downcase_word },    /* Meta-l */
  304.   { ISFUNC, (Function *)0x0 },    /* Meta-m */
  305.   { ISFUNC, (Function *)0x0 },    /* Meta-n */
  306.   { ISFUNC, rl_arrow_keys },    /* Meta-o */
  307.   { ISFUNC, (Function *)0x0 },    /* Meta-p */
  308.   { ISFUNC, (Function *)0x0 },    /* Meta-q */
  309.   { ISFUNC, rl_revert_line },    /* Meta-r */
  310.   { ISFUNC, (Function *)0x0 },    /* Meta-s */
  311.   { ISFUNC, rl_transpose_words }, /* Meta-t */
  312.   { ISFUNC, rl_upcase_word },    /* Meta-u */
  313.   { ISFUNC, (Function *)0x0 },    /* Meta-v */
  314.   { ISFUNC, (Function *)0x0 },    /* Meta-w */
  315.   { ISFUNC, (Function *)0x0 },    /* Meta-x */
  316.   { ISFUNC, rl_yank_pop },    /* Meta-y */
  317.   { ISFUNC, (Function *)0x0 },    /* Meta-z */
  318.  
  319.   /* Final punctuation. */
  320.   { ISFUNC, (Function *)0x0 },    /* Meta-{ */
  321.   { ISFUNC, (Function *)0x0 },    /* Meta-| */
  322.   { ISFUNC, (Function *)0x0 },    /* Meta-} */
  323.   { ISFUNC, (Function *)0x0 },    /* Meta-~ */
  324.   { ISFUNC, rl_backward_kill_word } /* Meta-rubout */
  325. };
  326.  
  327. KEYMAP_ENTRY_ARRAY emacs_ctlx_keymap = {
  328.  
  329.   /* Control keys. */
  330.   { ISFUNC, (Function *)0x0 },        /* Control-@ */
  331.   { ISFUNC, (Function *)0x0 },        /* Control-a */
  332.   { ISFUNC, (Function *)0x0 },        /* Control-b */
  333.   { ISFUNC, (Function *)0x0 },        /* Control-c */
  334.   { ISFUNC, (Function *)0x0 },        /* Control-d */
  335.   { ISFUNC, (Function *)0x0 },        /* Control-e */
  336.   { ISFUNC, (Function *)0x0 },        /* Control-f */
  337.   { ISFUNC, rl_abort },            /* Control-g */
  338.   { ISFUNC, (Function *)0x0 },        /* Control-h */
  339.   { ISFUNC, (Function *)0x0 },        /* Control-i */
  340.   { ISFUNC, (Function *)0x0 },        /* Control-j */
  341.   { ISFUNC, (Function *)0x0 },        /* Control-k */
  342.   { ISFUNC, (Function *)0x0 },        /* Control-l */
  343.   { ISFUNC, (Function *)0x0 },        /* Control-m */
  344.   { ISFUNC, (Function *)0x0 },        /* Control-n */
  345.   { ISFUNC, (Function *)0x0 },        /* Control-o */
  346.   { ISFUNC, (Function *)0x0 },        /* Control-p */
  347.   { ISFUNC, (Function *)0x0 },        /* Control-q */
  348.   { ISFUNC, rl_re_read_init_file },    /* Control-r */
  349.   { ISFUNC, (Function *)0x0 },        /* Control-s */
  350.   { ISFUNC, (Function *)0x0 },        /* Control-t */
  351.   { ISFUNC, rl_undo_command },        /* Control-u */
  352.   { ISFUNC, (Function *)0x0 },        /* Control-v */
  353.   { ISFUNC, (Function *)0x0 },        /* Control-w */
  354.   { ISFUNC, (Function *)0x0 },        /* Control-x */
  355.   { ISFUNC, (Function *)0x0 },        /* Control-y */
  356.   { ISFUNC, (Function *)0x0 },        /* Control-z */
  357.   { ISFUNC, (Function *)0x0 },        /* Control-[ */
  358.   { ISFUNC, (Function *)0x0 },        /* Control-\ */
  359.   { ISFUNC, (Function *)0x0 },        /* Control-] */
  360.   { ISFUNC, (Function *)0x0 },        /* Control-^ */
  361.   { ISFUNC, (Function *)0x0 },        /* Control-_ */
  362.  
  363.   /* The start of printing characters. */
  364.   { ISFUNC, (Function *)0x0 },        /* SPACE */
  365.   { ISFUNC, (Function *)0x0 },        /* ! */
  366.   { ISFUNC, (Function *)0x0 },        /* " */
  367.   { ISFUNC, (Function *)0x0 },        /* # */
  368.   { ISFUNC, (Function *)0x0 },        /* $ */
  369.   { ISFUNC, (Function *)0x0 },        /* % */
  370.   { ISFUNC, (Function *)0x0 },        /* & */
  371.   { ISFUNC, (Function *)0x0 },        /* ' */
  372.   { ISFUNC, rl_start_kbd_macro },    /* ( */
  373.   { ISFUNC, rl_end_kbd_macro  },    /* ) */
  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.  
  381.   /* Regular digits. */
  382.   { ISFUNC, (Function *)0x0 },        /* 0 */
  383.   { ISFUNC, (Function *)0x0 },        /* 1 */
  384.   { ISFUNC, (Function *)0x0 },        /* 2 */
  385.   { ISFUNC, (Function *)0x0 },        /* 3 */
  386.   { ISFUNC, (Function *)0x0 },        /* 4 */
  387.   { ISFUNC, (Function *)0x0 },        /* 5 */
  388.   { ISFUNC, (Function *)0x0 },        /* 6 */
  389.   { ISFUNC, (Function *)0x0 },        /* 7 */
  390.   { ISFUNC, (Function *)0x0 },        /* 8 */
  391.   { ISFUNC, (Function *)0x0 },        /* 9 */
  392.  
  393.   /* A little more punctuation. */
  394.   { ISFUNC, (Function *)0x0 },    /* : */
  395.   { ISFUNC, (Function *)0x0 },    /* ; */
  396.   { ISFUNC, (Function *)0x0 },    /* < */
  397.   { ISFUNC, (Function *)0x0 },    /* = */
  398.   { ISFUNC, (Function *)0x0 },    /* > */
  399.   { ISFUNC, (Function *)0x0 },    /* ? */
  400.   { ISFUNC, (Function *)0x0 },    /* @ */
  401.  
  402.   /* Uppercase alphabet. */
  403.   { ISFUNC, rl_do_lowercase_version },    /* A */
  404.   { ISFUNC, rl_do_lowercase_version },    /* B */
  405.   { ISFUNC, rl_do_lowercase_version },    /* C */
  406.   { ISFUNC, rl_do_lowercase_version },    /* D */
  407.   { ISFUNC, rl_do_lowercase_version },    /* E */
  408.   { ISFUNC, rl_do_lowercase_version },    /* F */
  409.   { ISFUNC, rl_do_lowercase_version },    /* G */
  410.   { ISFUNC, rl_do_lowercase_version },    /* H */
  411.   { ISFUNC, rl_do_lowercase_version },    /* I */
  412.   { ISFUNC, rl_do_lowercase_version },    /* J */
  413.   { ISFUNC, rl_do_lowercase_version },    /* K */
  414.   { ISFUNC, rl_do_lowercase_version },    /* L */
  415.   { ISFUNC, rl_do_lowercase_version },    /* M */
  416.   { ISFUNC, rl_do_lowercase_version },    /* N */
  417.   { ISFUNC, rl_do_lowercase_version },    /* O */
  418.   { ISFUNC, rl_do_lowercase_version },    /* P */
  419.   { ISFUNC, rl_do_lowercase_version },    /* Q */
  420.   { ISFUNC, rl_do_lowercase_version },    /* R */
  421.   { ISFUNC, rl_do_lowercase_version },    /* S */
  422.   { ISFUNC, rl_do_lowercase_version },    /* T */
  423.   { ISFUNC, rl_do_lowercase_version },    /* U */
  424.   { ISFUNC, rl_do_lowercase_version },    /* V */
  425.   { ISFUNC, rl_do_lowercase_version },    /* W */
  426.   { ISFUNC, rl_do_lowercase_version },    /* X */
  427.   { ISFUNC, rl_do_lowercase_version },    /* Y */
  428.   { ISFUNC, rl_do_lowercase_version },    /* Z */
  429.  
  430.   /* Some more punctuation. */
  431.   { ISFUNC, (Function *)0x0 },        /* [ */
  432.   { ISFUNC, (Function *)0x0 },        /* \ */
  433.   { ISFUNC, (Function *)0x0 },        /* ] */
  434.   { ISFUNC, (Function *)0x0 },        /* ^ */
  435.   { ISFUNC, (Function *)0x0 },        /* _ */
  436.   { ISFUNC, (Function *)0x0 },        /* ` */
  437.  
  438.   /* Lowercase alphabet. */
  439.   { ISFUNC, (Function *)0x0 },        /* a */
  440.   { ISFUNC, (Function *)0x0 },        /* b */
  441.   { ISFUNC, (Function *)0x0 },        /* c */
  442.   { ISFUNC, (Function *)0x0 },        /* d */
  443.   { ISFUNC, rl_call_last_kbd_macro },    /* e */
  444.   { ISFUNC, (Function *)0x0 },        /* f */
  445.   { ISFUNC, (Function *)0x0 },        /* g */
  446.   { ISFUNC, (Function *)0x0 },        /* h */
  447.   { ISFUNC, (Function *)0x0 },        /* i */
  448.   { ISFUNC, (Function *)0x0 },        /* j */
  449.   { ISFUNC, (Function *)0x0 },        /* k */
  450.   { ISFUNC, (Function *)0x0 },        /* l */
  451.   { ISFUNC, (Function *)0x0 },        /* m */
  452.   { ISFUNC, (Function *)0x0 },        /* n */
  453.   { ISFUNC, (Function *)0x0 },        /* o */
  454.   { ISFUNC, (Function *)0x0 },        /* p */
  455.   { ISFUNC, (Function *)0x0 },        /* q */
  456.   { ISFUNC, (Function *)0x0 },        /* r */
  457.   { ISFUNC, (Function *)0x0 },        /* s */
  458.   { ISFUNC, (Function *)0x0 },        /* t */
  459.   { ISFUNC, (Function *)0x0 },        /* u */
  460.   { ISFUNC, (Function *)0x0 },        /* v */
  461.   { ISFUNC, (Function *)0x0 },        /* w */
  462.   { ISFUNC, (Function *)0x0 },        /* x */
  463.   { ISFUNC, (Function *)0x0 },        /* y */
  464.   { ISFUNC, (Function *)0x0 },        /* z */
  465.  
  466.   /* Final punctuation. */
  467.   { ISFUNC, (Function *)0x0 },        /* { */
  468.   { ISFUNC, (Function *)0x0 },        /* | */
  469.   { ISFUNC, (Function *)0x0 },        /* } */
  470.   { ISFUNC, (Function *)0x0 },        /* ~ */
  471.   { ISFUNC, rl_backward_kill_line }    /* RUBOUT */
  472. };
  473.