texinfo-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[5254] info/infomap.c: Fix indentation and style.


From: Sergey Poznyakoff
Subject: [5254] info/infomap.c: Fix indentation and style.
Date: Sat, 13 Apr 2013 15:41:59 +0000

Revision: 5254
          http://svn.sv.gnu.org/viewvc/?view=rev&root=texinfo&revision=5254
Author:   gray
Date:     2013-04-13 15:41:58 +0000 (Sat, 13 Apr 2013)
Log Message:
-----------
info/infomap.c: Fix indentation and style.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/info/infomap.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog     2013-04-13 15:24:43 UTC (rev 5253)
+++ trunk/ChangeLog     2013-04-13 15:41:58 UTC (rev 5254)
@@ -1,5 +1,9 @@
 2013-04-13  Sergey Poznyakoff  <address@hidden>
 
+       * info/infomap.c: Fix indentation and style.
+
+2013-04-13  Sergey Poznyakoff  <address@hidden>
+
        Implement new options for standalone info.
 
        * info/info.c (debug_level): New variable.

Modified: trunk/info/infomap.c
===================================================================
--- trunk/info/infomap.c        2013-04-13 15:24:43 UTC (rev 5253)
+++ trunk/info/infomap.c        2013-04-13 15:41:58 UTC (rev 5254)
@@ -2,7 +2,7 @@
    $Id$
 
    Copyright (C) 1993, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2007,
-   2008, 2011, 2012 Free Software Foundation, Inc.
+   2008, 2011, 2012, 2013 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -55,7 +55,7 @@
       keymap[Meta(i)].type = ISFUNC;
       keymap[Meta(i)].function =
 #endif /* INFOKEY */
-      keymap[i].function = InfoCmd(info_do_lowercase_version);
+      keymap[i].function = InfoCmd (info_do_lowercase_version);
     }
 
   return keymap;
@@ -68,7 +68,7 @@
   FUNCTION_KEYSEQ *k;
 
   if (map[c].type != ISFUNC)
-    abort();
+    abort ();
   if (map[c].function == NULL)
     return NULL;
   for (k = map[c].function->keys; k; k = k->next)
@@ -95,13 +95,13 @@
   FUNCTION_KEYSEQ *ks;
 
   if (function == NULL ||
-      function == InfoCmd(info_do_lowercase_version) ||
-      function == InfoCmd(ea_insert))
+      function == InfoCmd (info_do_lowercase_version) ||
+      function == InfoCmd (ea_insert))
     return;
-  ks = xmalloc (sizeof(FUNCTION_KEYSEQ));
+  ks = xmalloc  (sizeof (FUNCTION_KEYSEQ));
   ks->next = function->keys;
   ks->map = rootmap;
-  ks->keyseq = xstrdup(keyseq);
+  ks->keyseq = xstrdup (keyseq);
   function->keys = ks;
 }
 
@@ -113,11 +113,11 @@
   FUNCTION_KEYSEQ *k, *kp;
 
   if (function == NULL ||
-      function == InfoCmd(info_do_lowercase_version) ||
-      function == InfoCmd(ea_insert))
+      function == InfoCmd (info_do_lowercase_version) ||
+      function == InfoCmd (ea_insert))
     return;
   for (kp = NULL, k = function->keys; k; kp = k, k = k->next)
-    if (k->map == rootmap && strcmp(k->keyseq, keyseq) == 0)
+    if (k->map == rootmap && strcmp (k->keyseq, keyseq) == 0)
       break;
   if (!k)
     abort ();
@@ -152,12 +152,13 @@
 #if defined(INFOKEY)
           ks = find_function_keyseq (map, i, rootmap);
           if (ks)
-            add_function_keyseq(map[i].function, ks->keyseq, newroot);
+            add_function_keyseq (map[i].function, ks->keyseq, newroot);
 #endif /* INFOKEY */
           break;
         case ISKMAP:
-          keymap[i].function = (InfoCommand *)keymap_copy_keymap
-            ((Keymap)map[i].function, rootmap, NULL);
+          keymap[i].function =
+           (InfoCommand *)keymap_copy_keymap ((Keymap)map[i].function,
+                                              rootmap, NULL);
           break;
         }
     }
@@ -184,7 +185,7 @@
         {
         case ISFUNC:
 #if defined(INFOKEY)
-          ks = find_function_keyseq(map, i, rootmap);
+          ks = find_function_keyseq (map, i, rootmap);
           if (ks)
             remove_function_keyseq (map[i].function, ks->keyseq, rootmap);
 #endif /* INFOKEY */
@@ -196,13 +197,13 @@
 
         }
     }
-  free(map);
+  free (map);
 }
 
 /* Conditionally bind key sequence. */
 static int
 keymap_bind_keyseq (Keymap map,
-    const char *keyseq, KEYMAP_ENTRY *keyentry)
+                   const char *keyseq, KEYMAP_ENTRY *keyentry)
 {
   Keymap m = map;
   const unsigned char *s = (unsigned char *) keyseq;
@@ -219,14 +220,13 @@
         {
         case ISFUNC:
 #if defined(INFOKEY)
-          ks = find_function_keyseq(m, c, map);
+          ks = find_function_keyseq (m, c, map);
           if (ks)
             remove_function_keyseq (m[c].function, ks->keyseq, map);
 #else /* !INFOKEY */
-          if (!(m[c].function == NULL || (
-                m != map &&
-                m[c].function == InfoCmd(info_do_lowercase_version))
-              ))
+          if (!(m[c].function == NULL ||
+               (m != map &&
+                m[c].function == InfoCmd (info_do_lowercase_version))))
             return 0;
 #endif /* !INFOKEY */
 
@@ -287,583 +287,583 @@
 
 static unsigned char default_emacs_like_info_keys[] =
 {
-        0,      /* suppress-default-keybindings flag */
-        TAB, NUL,                       A_info_move_to_next_xref,
-        LFD, NUL,                       A_info_select_reference_this_line,
-        RET, NUL,                       A_info_select_reference_this_line,
-        CONTROL('a'), NUL,              A_info_beginning_of_line,
-        CONTROL('b'), NUL,              A_info_backward_char,
-        CONTROL('e'), NUL,              A_info_end_of_line,
-        CONTROL('f'), NUL,              A_info_forward_char,
-        CONTROL('h'), NUL,              A_info_get_help_window,
-        CONTROL('l'), NUL,              A_info_redraw_display,
-        CONTROL('n'), NUL,              A_info_next_line,
-        CONTROL('p'), NUL,              A_info_prev_line,
-        CONTROL('r'), NUL,              A_isearch_backward,
-        CONTROL('s'), NUL,              A_isearch_forward,
-        CONTROL('u'), NUL,              A_info_universal_argument,
-        CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
-        ',', NUL,                       A_info_next_index_match,
-        '/', NUL,                       A_info_search,
-        '0', NUL,                       A_info_last_menu_item,
-        '1', NUL,                       A_info_menu_digit,
-        '2', NUL,                       A_info_menu_digit,
-        '3', NUL,                       A_info_menu_digit,
-        '4', NUL,                       A_info_menu_digit,
-        '5', NUL,                       A_info_menu_digit,
-        '6', NUL,                       A_info_menu_digit,
-        '7', NUL,                       A_info_menu_digit,
-        '8', NUL,                       A_info_menu_digit,
-        '9', NUL,                       A_info_menu_digit,
-        '<', NUL,                       A_info_first_node,
-        '>', NUL,                       A_info_last_node,
-        '?', NUL,                       A_info_get_help_window,
-        '[', NUL,                       A_info_global_prev_node,
-        ']', NUL,                       A_info_global_next_node,
-        'b', NUL,                       A_info_beginning_of_node,
-        'd', NUL,                       A_info_dir_node,
-        'e', NUL,                       A_info_end_of_node,
-        'f', NUL,                       A_info_xref_item,
-        'g', NUL,                       A_info_goto_node,
-        'G', NUL,                       A_info_menu_sequence,
-        'h', NUL,                       A_info_get_help_window,
-        'H', NUL,                       A_info_get_info_help_node,
-        'i', NUL,                       A_info_index_search,
-       'I', NUL,                       A_info_virtual_index,
-        'l', NUL,                       A_info_history_node,
-        'm', NUL,                       A_info_menu_item,
-        'n', NUL,                       A_info_next_node,
-        'O', NUL,                       A_info_goto_invocation_node,
-        'p', NUL,                       A_info_prev_node,
-        'r', NUL,                       A_info_xref_item,
-        'R', NUL,                       A_info_toggle_regexp,
-        's', NUL,                       A_info_search,
-        'S', NUL,                       A_info_search_case_sensitively,
-        't', NUL,                       A_info_top_node,
-        'u', NUL,                       A_info_up_node,
-        ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
-        ESC, CONTROL('g'), NUL,         A_info_abort_key,
-        ESC, TAB, NUL,                  A_info_move_to_prev_xref,
-        ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
-        ESC, '<', NUL,                  A_info_beginning_of_node,
-        ESC, '>', NUL,                  A_info_end_of_node,
-        ESC, 'b', NUL,                  A_info_backward_word,
-        ESC, 'f', NUL,                  A_info_forward_word,
-        ESC, 'r', NUL,                  A_info_move_to_window_line,
-        ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
-        Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta(CONTROL('f')), NUL,        A_info_show_footnotes,
-        Meta(CONTROL('g')), NUL,        A_info_abort_key,
-        Meta(TAB), NUL,                 A_info_move_to_prev_xref,
-        Meta(CONTROL('v')), NUL,        A_info_scroll_other_window,
-        Meta('<'), NUL,                 A_info_beginning_of_node,
-        Meta('>'), NUL,                 A_info_end_of_node,
-        Meta('b'), NUL,                 A_info_backward_word,
-        Meta('f'), NUL,                 A_info_forward_word,
-        Meta('r'), NUL,                 A_info_move_to_window_line,
-        Meta('v'), NUL,                 A_info_scroll_backward_page_only,
+  0,      /* suppress-default-keybindings flag */
+  TAB, NUL,                       A_info_move_to_next_xref,
+  LFD, NUL,                       A_info_select_reference_this_line,
+  RET, NUL,                       A_info_select_reference_this_line,
+  CONTROL('a'), NUL,              A_info_beginning_of_line,
+  CONTROL('b'), NUL,              A_info_backward_char,
+  CONTROL('e'), NUL,              A_info_end_of_line,
+  CONTROL('f'), NUL,              A_info_forward_char,
+  CONTROL('h'), NUL,              A_info_get_help_window,
+  CONTROL('l'), NUL,              A_info_redraw_display,
+  CONTROL('n'), NUL,              A_info_next_line,
+  CONTROL('p'), NUL,              A_info_prev_line,
+  CONTROL('r'), NUL,              A_isearch_backward,
+  CONTROL('s'), NUL,              A_isearch_forward,
+  CONTROL('u'), NUL,              A_info_universal_argument,
+  CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
+  ',', NUL,                       A_info_next_index_match,
+  '/', NUL,                       A_info_search,
+  '0', NUL,                       A_info_last_menu_item,
+  '1', NUL,                       A_info_menu_digit,
+  '2', NUL,                       A_info_menu_digit,
+  '3', NUL,                       A_info_menu_digit,
+  '4', NUL,                       A_info_menu_digit,
+  '5', NUL,                       A_info_menu_digit,
+  '6', NUL,                       A_info_menu_digit,
+  '7', NUL,                       A_info_menu_digit,
+  '8', NUL,                       A_info_menu_digit,
+  '9', NUL,                       A_info_menu_digit,
+  '<', NUL,                       A_info_first_node,
+  '>', NUL,                       A_info_last_node,
+  '?', NUL,                       A_info_get_help_window,
+  '[', NUL,                       A_info_global_prev_node,
+  ']', NUL,                       A_info_global_next_node,
+  'b', NUL,                       A_info_beginning_of_node,
+  'd', NUL,                       A_info_dir_node,
+  'e', NUL,                       A_info_end_of_node,
+  'f', NUL,                       A_info_xref_item,
+  'g', NUL,                       A_info_goto_node,
+  'G', NUL,                       A_info_menu_sequence,
+  'h', NUL,                       A_info_get_help_window,
+  'H', NUL,                       A_info_get_info_help_node,
+  'i', NUL,                       A_info_index_search,
+  'I', NUL,                       A_info_virtual_index,
+  'l', NUL,                       A_info_history_node,
+  'm', NUL,                       A_info_menu_item,
+  'n', NUL,                       A_info_next_node,
+  'O', NUL,                       A_info_goto_invocation_node,
+  'p', NUL,                       A_info_prev_node,
+  'r', NUL,                       A_info_xref_item,
+  'R', NUL,                       A_info_toggle_regexp,
+  's', NUL,                       A_info_search,
+  'S', NUL,                       A_info_search_case_sensitively,
+  't', NUL,                       A_info_top_node,
+  'u', NUL,                       A_info_up_node,
+  ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
+  ESC, CONTROL('g'), NUL,         A_info_abort_key,
+  ESC, TAB, NUL,                  A_info_move_to_prev_xref,
+  ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
+  ESC, '<', NUL,                  A_info_beginning_of_node,
+  ESC, '>', NUL,                  A_info_end_of_node,
+  ESC, 'b', NUL,                  A_info_backward_word,
+  ESC, 'f', NUL,                  A_info_forward_word,
+  ESC, 'r', NUL,                  A_info_move_to_window_line,
+  ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
+  Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta(CONTROL('f')), NUL,        A_info_show_footnotes,
+  Meta(CONTROL('g')), NUL,        A_info_abort_key,
+  Meta(TAB), NUL,                 A_info_move_to_prev_xref,
+  Meta(CONTROL('v')), NUL,        A_info_scroll_other_window,
+  Meta('<'), NUL,                 A_info_beginning_of_node,
+  Meta('>'), NUL,                 A_info_end_of_node,
+  Meta('b'), NUL,                 A_info_backward_word,
+  Meta('f'), NUL,                 A_info_forward_word,
+  Meta('r'), NUL,                 A_info_move_to_window_line,
+  Meta('v'), NUL,                 A_info_scroll_backward_page_only,
 #if defined (NAMED_FUNCTIONS)
-        ESC, 'x', NUL,                  A_info_execute_command,
-        Meta('x'), NUL,                 A_info_execute_command,
+  ESC, 'x', NUL,                  A_info_execute_command,
+  Meta('x'), NUL,                 A_info_execute_command,
 #endif /* NAMED_FUNCTIONS */
 
-        CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
-        CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
-        CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
-        CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
-        CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
-        CONTROL('x'), '0', NUL,         A_info_delete_window,
-        CONTROL('x'), '1', NUL,         A_info_keep_one_window,
-        CONTROL('x'), '2', NUL,         A_info_split_window,
-        CONTROL('x'), '^', NUL,         A_info_grow_window,
-        CONTROL('x'), 'b', NUL,         A_select_visited_node,
-        CONTROL('x'), 'k', NUL,         A_info_kill_node,
-        CONTROL('x'), 'n', NUL,         A_info_search_next,
-        CONTROL('x'), 'N', NUL,         A_info_search_previous,
-        CONTROL('x'), 'o', NUL,         A_info_next_window,
-        CONTROL('x'), 't', NUL,         A_info_tile_windows,
-        CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
+  CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
+  CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
+  CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
+  CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
+  CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
+  CONTROL('x'), '0', NUL,         A_info_delete_window,
+  CONTROL('x'), '1', NUL,         A_info_keep_one_window,
+  CONTROL('x'), '2', NUL,         A_info_split_window,
+  CONTROL('x'), '^', NUL,         A_info_grow_window,
+  CONTROL('x'), 'b', NUL,         A_select_visited_node,
+  CONTROL('x'), 'k', NUL,         A_info_kill_node,
+  CONTROL('x'), 'n', NUL,         A_info_search_next,
+  CONTROL('x'), 'N', NUL,         A_info_search_previous,
+  CONTROL('x'), 'o', NUL,         A_info_next_window,
+  CONTROL('x'), 't', NUL,         A_info_tile_windows,
+  CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
 
 /*      Arrow key bindings for info keymaps.  It seems that some
         terminals do not match their termcap entries, so it's best to just
         define everything with both of the usual prefixes.  */
 
-        SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
-        SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
-        '\033', 'O', 'A', NUL,                  A_info_prev_line,
-        '\033', '[', 'A', NUL,                  A_info_prev_line,
-        '\033', 'O', 'B', NUL,                  A_info_next_line,
-        '\033', '[', 'B', NUL,                  A_info_next_line,
-        SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_info_forward_char,
-        '\033', 'O', 'C', NUL,                  A_info_forward_char,
-        '\033', '[', 'C', NUL,                  A_info_forward_char,
-        SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_info_backward_char,
-        '\033', 'O', 'D', NUL,                  A_info_backward_char,
-        '\033', '[', 'D', NUL,                  A_info_backward_char,
-        SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
-        SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
-        SK_ESCAPE, SK_DELETE, NUL,              A_info_scroll_backward,
-
-        ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        
A_info_scroll_other_window_backward,
-        ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
-        ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_line,
-        ESC, '\033', 'O', 'A', NUL,             A_info_prev_line,
-        ESC, '\033', '[', 'A', NUL,             A_info_prev_line,
-        ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_line,
-        ESC, '\033', 'O', 'B', NUL,             A_info_next_line,
-        ESC, '\033', '[', 'B', NUL,             A_info_next_line,
-        ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_forward_word,
-        ESC, '\033', 'O', 'C', NUL,             A_info_forward_word,
-        ESC, '\033', '[', 'C', NUL,             A_info_forward_word,
-        ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_backward_word,
-        ESC, '\033', 'O', 'D', NUL,             A_info_backward_word,
-        ESC, '\033', '[', 'D', NUL,             A_info_backward_word,
-
-        /* We want help to report q, not C-x C-c, etc.  */
-        'q', NUL,                       A_info_quit,
-        'x', NUL,                       A_info_delete_window,
-        SPC, NUL,                       A_info_scroll_forward,
-        DEL, NUL,                       A_info_scroll_backward,
-        '{', NUL,                       A_info_search_previous,
-        '}', NUL,                       A_info_search_next,
-        CONTROL('g'), NUL,              A_info_abort_key,
-        SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_prev_line,
-        SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_next_line,
+  SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
+  SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
+  '\033', 'O', 'A', NUL,                  A_info_prev_line,
+  '\033', '[', 'A', NUL,                  A_info_prev_line,
+  '\033', 'O', 'B', NUL,                  A_info_next_line,
+  '\033', '[', 'B', NUL,                  A_info_next_line,
+  SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_info_forward_char,
+  '\033', 'O', 'C', NUL,                  A_info_forward_char,
+  '\033', '[', 'C', NUL,                  A_info_forward_char,
+  SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_info_backward_char,
+  '\033', 'O', 'D', NUL,                  A_info_backward_char,
+  '\033', '[', 'D', NUL,                  A_info_backward_char,
+  SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
+  SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
+  SK_ESCAPE, SK_DELETE, NUL,              A_info_scroll_backward,
+  
+  ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        A_info_scroll_other_window_backward,
+  ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
+  ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_line,
+  ESC, '\033', 'O', 'A', NUL,             A_info_prev_line,
+  ESC, '\033', '[', 'A', NUL,             A_info_prev_line,
+  ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_line,
+  ESC, '\033', 'O', 'B', NUL,             A_info_next_line,
+  ESC, '\033', '[', 'B', NUL,             A_info_next_line,
+  ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_forward_word,
+  ESC, '\033', 'O', 'C', NUL,             A_info_forward_word,
+  ESC, '\033', '[', 'C', NUL,             A_info_forward_word,
+  ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_backward_word,
+  ESC, '\033', 'O', 'D', NUL,             A_info_backward_word,
+  ESC, '\033', '[', 'D', NUL,             A_info_backward_word,
+  
+  /* We want help to report q, not C-x C-c, etc.  */
+  'q', NUL,                       A_info_quit,
+  'x', NUL,                       A_info_delete_window,
+  SPC, NUL,                       A_info_scroll_forward,
+  DEL, NUL,                       A_info_scroll_backward,
+  '{', NUL,                       A_info_search_previous,
+  '}', NUL,                       A_info_search_next,
+  CONTROL('g'), NUL,              A_info_abort_key,
+  SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_prev_line,
+  SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_next_line,
 };
 
 
 static unsigned char default_emacs_like_ea_keys[] =
 {
-        0,      /* suppress-default-keybindings flag */
-        ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
-        Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
-        ESC, CONTROL('g'), NUL,         A_ea_abort,
-        ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
-        ESC, 'b', NUL,                  A_ea_backward_word,
-        ESC, 'd', NUL,                  A_ea_kill_word,
-        ESC, 'f', NUL,                  A_ea_forward_word,
-        ESC, 'y', NUL,                  A_ea_yank_pop,
-        ESC, '?', NUL,                  A_ea_possible_completions,
-        ESC, TAB, NUL,                  A_ea_tab_insert,
-        ESC, DEL, NUL,                  A_ea_backward_kill_word,
-        Meta(CONTROL('g')), NUL,        A_ea_abort,
-        Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
-        Meta('b'), NUL,                 A_ea_backward_word,
-        Meta('d'), NUL,                 A_ea_kill_word,
-        Meta('f'), NUL,                 A_ea_forward_word,
-        Meta('y'), NUL,                 A_ea_yank_pop,
-        Meta('?'), NUL,                 A_ea_possible_completions,
-        Meta(TAB), NUL,                 A_ea_tab_insert,
-        Meta(DEL), NUL,                 A_ea_backward_kill_word,
-        CONTROL('a'), NUL,              A_ea_beg_of_line,
-        CONTROL('b'), NUL,              A_ea_backward,
-        CONTROL('d'), NUL,              A_ea_delete,
-        CONTROL('e'), NUL,              A_ea_end_of_line,
-        CONTROL('f'), NUL,              A_ea_forward,
-        CONTROL('g'), NUL,              A_ea_abort,
-        CONTROL('h'), NUL,              A_ea_rubout,
+  0,      /* suppress-default-keybindings flag */
+  ESC, '0', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+  Meta('0'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+  ESC, CONTROL('g'), NUL,         A_ea_abort,
+  ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
+  ESC, 'b', NUL,                  A_ea_backward_word,
+  ESC, 'd', NUL,                  A_ea_kill_word,
+  ESC, 'f', NUL,                  A_ea_forward_word,
+  ESC, 'y', NUL,                  A_ea_yank_pop,
+  ESC, '?', NUL,                  A_ea_possible_completions,
+  ESC, TAB, NUL,                  A_ea_tab_insert,
+  ESC, DEL, NUL,                  A_ea_backward_kill_word,
+  Meta(CONTROL('g')), NUL,        A_ea_abort,
+  Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
+  Meta('b'), NUL,                 A_ea_backward_word,
+  Meta('d'), NUL,                 A_ea_kill_word,
+  Meta('f'), NUL,                 A_ea_forward_word,
+  Meta('y'), NUL,                 A_ea_yank_pop,
+  Meta('?'), NUL,                 A_ea_possible_completions,
+  Meta(TAB), NUL,                 A_ea_tab_insert,
+  Meta(DEL), NUL,                 A_ea_backward_kill_word,
+  CONTROL('a'), NUL,              A_ea_beg_of_line,
+  CONTROL('b'), NUL,              A_ea_backward,
+  CONTROL('d'), NUL,              A_ea_delete,
+  CONTROL('e'), NUL,              A_ea_end_of_line,
+  CONTROL('f'), NUL,              A_ea_forward,
+  CONTROL('g'), NUL,              A_ea_abort,
+  CONTROL('h'), NUL,              A_ea_rubout,
 /*      CONTROL('k') */
-        SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
-        CONTROL('l'), NUL,              A_info_redraw_display,
-        CONTROL('q'), NUL,              A_ea_quoted_insert,
-        CONTROL('t'), NUL,              A_ea_transpose_chars,
-        CONTROL('u'), NUL,              A_info_universal_argument,
-        CONTROL('y'), NUL,              A_ea_yank,
-        LFD, NUL,                       A_ea_newline,
-        RET, NUL,                       A_ea_newline,
-        SPC, NUL,                       A_ea_complete,
-        TAB, NUL,                       A_ea_complete,
-        '?', NUL,                       A_ea_possible_completions,
+  SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
+  CONTROL('l'), NUL,              A_info_redraw_display,
+  CONTROL('q'), NUL,              A_ea_quoted_insert,
+  CONTROL('t'), NUL,              A_ea_transpose_chars,
+  CONTROL('u'), NUL,              A_info_universal_argument,
+  CONTROL('y'), NUL,              A_ea_yank,
+  LFD, NUL,                       A_ea_newline,
+  RET, NUL,                       A_ea_newline,
+  SPC, NUL,                       A_ea_complete,
+  TAB, NUL,                       A_ea_complete,
+  '?', NUL,                       A_ea_possible_completions,
 #ifdef __MSDOS__
-        /* PC users will lynch me if I don't give them their usual DEL
-           effect...  */
-        DEL, NUL,                       A_ea_delete,
+  /* PC users will lynch me if I don't give them their usual DEL
+     effect...  */
+  DEL, NUL,                       A_ea_delete,
 #else
-        DEL, NUL,                       A_ea_rubout,
+  DEL, NUL,                       A_ea_rubout,
 #endif
 #if defined (NAMED_FUNCTIONS)
   /*    ESC, 'x', NUL,                  A_info_execute_command, */
   /*    Meta('x'), NUL,                 A_info_execute_command, */
 #endif /* NAMED_FUNCTIONS */
-        CONTROL('x'), 'o', NUL,         A_info_next_window,
-        CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
+  CONTROL('x'), 'o', NUL,         A_info_next_window,
+  CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
 
 /*      Arrow key bindings for echo area keymaps.  It seems that some
         terminals do not match their termcap entries, so it's best to just
         define everything with both of the usual prefixes.  */
 
-        SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
-        '\033', 'O', 'C', NUL,                  A_ea_forward,
-        '\033', '[', 'C', NUL,                  A_ea_forward,
-        SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
-        '\033', 'O', 'D', NUL,                  A_ea_backward,
-        '\033', '[', 'D', NUL,                  A_ea_backward,
-        ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
-        ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
-        ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
-        ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
-        ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
-        ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
+  SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
+  '\033', 'O', 'C', NUL,                  A_ea_forward,
+  '\033', '[', 'C', NUL,                  A_ea_forward,
+  SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
+  '\033', 'O', 'D', NUL,                  A_ea_backward,
+  '\033', '[', 'D', NUL,                  A_ea_backward,
+  ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
+  ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
+  ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
+  ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
+  ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
+  ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
 #ifdef __MSDOS__
-        SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
+  SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
 #else
-        SK_ESCAPE, SK_DELETE, NUL,              A_ea_rubout,
+  SK_ESCAPE, SK_DELETE, NUL,              A_ea_rubout,
 #endif
-        SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
-        SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
-        ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_backward_kill_word,
-        CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+  SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
+  SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
+  ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_backward_kill_word,
+  CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
 };
 
 
 static unsigned char default_vi_like_info_keys[] =
 {
-        0,      /* suppress-default-keybindings flag */
-        '0', NUL,                       A_info_add_digit_to_numeric_arg,
-        '1', NUL,                       A_info_add_digit_to_numeric_arg,
-        '2', NUL,                       A_info_add_digit_to_numeric_arg,
-        '3', NUL,                       A_info_add_digit_to_numeric_arg,
-        '4', NUL,                       A_info_add_digit_to_numeric_arg,
-        '5', NUL,                       A_info_add_digit_to_numeric_arg,
-        '6', NUL,                       A_info_add_digit_to_numeric_arg,
-        '7', NUL,                       A_info_add_digit_to_numeric_arg,
-        '8', NUL,                       A_info_add_digit_to_numeric_arg,
-        '9', NUL,                       A_info_add_digit_to_numeric_arg,
-        '-', NUL,                       A_info_add_digit_to_numeric_arg,
-        TAB, NUL,                       A_info_move_to_next_xref,
-        LFD, NUL,                       A_info_down_line,
-        RET, NUL,                       A_info_down_line,
-        CONTROL('a'), NUL,              A_info_beginning_of_line,
-        CONTROL('b'), NUL,              A_info_scroll_backward_page_only,
-        CONTROL('d'), NUL,              A_info_scroll_half_screen_down,
-        CONTROL('e'), NUL,              A_info_down_line,
-        CONTROL('f'), NUL,              A_info_scroll_forward_page_only,
-        CONTROL('k'), NUL,              A_info_up_line,
-        CONTROL('l'), NUL,              A_info_redraw_display,
-        CONTROL('n'), NUL,              A_info_down_line,
-        CONTROL('p'), NUL,              A_info_up_line,
-        CONTROL('r'), NUL,              A_info_redraw_display,
-        CONTROL('s'), NUL,              A_isearch_forward,
-        CONTROL('u'), NUL,              A_info_scroll_half_screen_up,
-        CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
-        CONTROL('y'), NUL,              A_info_up_line,
-        ',', NUL,                       A_info_next_index_match,
-        '/', NUL,                       A_info_search,
-        ESC, '0', NUL,                  A_info_last_menu_item,
-        ESC, '1', NUL,                  A_info_menu_digit,
-        ESC, '2', NUL,                  A_info_menu_digit,
-        ESC, '3', NUL,                  A_info_menu_digit,
-        ESC, '4', NUL,                  A_info_menu_digit,
-        ESC, '5', NUL,                  A_info_menu_digit,
-        ESC, '6', NUL,                  A_info_menu_digit,
-        ESC, '7', NUL,                  A_info_menu_digit,
-        ESC, '8', NUL,                  A_info_menu_digit,
-        ESC, '9', NUL,                  A_info_menu_digit,
-        Meta('0'), NUL,                 A_info_last_menu_item,
-        Meta('1'), NUL,                 A_info_menu_digit,
-        Meta('2'), NUL,                 A_info_menu_digit,
-        Meta('3'), NUL,                 A_info_menu_digit,
-        Meta('4'), NUL,                 A_info_menu_digit,
-        Meta('5'), NUL,                 A_info_menu_digit,
-        Meta('6'), NUL,                 A_info_menu_digit,
-        Meta('7'), NUL,                 A_info_menu_digit,
-        Meta('8'), NUL,                 A_info_menu_digit,
-        Meta('9'), NUL,                 A_info_menu_digit,
-        '<', NUL,                       A_info_first_node,
-       '>', NUL,                       A_info_last_node,
-        '?', NUL,                       A_info_search_backward,
-        '[', NUL,                       A_info_global_prev_node,
-        ']', NUL,                       A_info_global_next_node,
-        '\'', NUL,                      A_info_history_node,
-        'b', NUL,                       A_info_scroll_backward,
-        'd', NUL,                       A_info_scroll_half_screen_down,
-        'e', NUL,                       A_info_down_line,
-        'E', NUL,                       A_info_view_file,
-        ':', 'e', NUL,                  A_info_view_file,
-        'f', NUL,                       A_info_scroll_forward_page_only,
-        'F', NUL,                       A_info_scroll_forward_page_only,
-        'g', NUL,                       A_info_first_node,
-        'G', NUL,                       A_info_last_node,
-        'h', NUL,                       A_info_get_help_window,
-        'H', NUL,                       A_info_get_help_window,
-        'i', NUL,                       A_info_index_search,
-        'I', NUL,                       A_info_goto_invocation_node,
-        'j', NUL,                       A_info_next_line,
-        'k', NUL,                       A_info_prev_line,
-        'l', NUL,                       A_info_history_node,
-        'm', NUL,                       A_info_menu_item,
-        'n', NUL,                       A_info_search_next,
-        'N', NUL,                       A_info_search_previous,
-        'O', NUL,                       A_info_goto_invocation_node,
-        'p', NUL,                       A_info_prev_node,
-        'Q', NUL,                       A_info_quit,
-        ':', 'q', NUL,                  A_info_quit,
-        ':', 'Q', NUL,                  A_info_quit,
-        'Z', 'Z', NUL,                  A_info_quit,
-        'r', NUL,                       A_info_redraw_display,
-        'R', NUL,                       A_info_toggle_regexp,
-        's', NUL,                       A_info_search,
-        'S', NUL,                       A_info_search_case_sensitively,
-        't', NUL,                       A_info_top_node,
-        'u', NUL,                       A_info_scroll_half_screen_up,
-        'w', NUL,                       
A_info_scroll_backward_page_only_set_window,
-        'y', NUL,                       A_info_up_line,
-        'z', NUL,                       
A_info_scroll_forward_page_only_set_window,
-        ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
-        ESC, CONTROL('g'), NUL,         A_info_abort_key,
-        ESC, TAB, NUL,                  A_info_move_to_prev_xref,
-        ESC, SPC, NUL,                  A_info_scroll_forward_page_only,
-        ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
-        ESC, '<', NUL,                  A_info_beginning_of_node,
-        ESC, '>', NUL,                  A_info_end_of_node,
-        ESC, '/', NUL,                  A_info_search,
-        ESC, '?', NUL,                  A_info_search_backward,
-        ESC, 'b', NUL,                  A_info_beginning_of_node,
-        ESC, 'd', NUL,                  A_info_dir_node,
-        ESC, 'e', NUL,                  A_info_end_of_node,
-        ESC, 'f', NUL,                  A_info_xref_item,
-        ESC, 'g', NUL,                  A_info_select_reference_this_line,
-        ESC, 'h', NUL,                  A_info_get_info_help_node,
-       ESC, 'I', NUL,                  A_info_virtual_index,
-        ESC, 'm', NUL,                  A_info_menu_item,
-        ESC, 'n', NUL,                  A_info_search,
-        ESC, 'N', NUL,                  A_info_search_backward,
-        ESC, 'r', NUL,                  A_isearch_backward,
-        ESC, 's', NUL,                  A_isearch_forward,
-        ESC, 't', NUL,                  A_info_top_node,
-        ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
+  0,      /* suppress-default-keybindings flag */
+  '0', NUL,                       A_info_add_digit_to_numeric_arg,
+  '1', NUL,                       A_info_add_digit_to_numeric_arg,
+  '2', NUL,                       A_info_add_digit_to_numeric_arg,
+  '3', NUL,                       A_info_add_digit_to_numeric_arg,
+  '4', NUL,                       A_info_add_digit_to_numeric_arg,
+  '5', NUL,                       A_info_add_digit_to_numeric_arg,
+  '6', NUL,                       A_info_add_digit_to_numeric_arg,
+  '7', NUL,                       A_info_add_digit_to_numeric_arg,
+  '8', NUL,                       A_info_add_digit_to_numeric_arg,
+  '9', NUL,                       A_info_add_digit_to_numeric_arg,
+  '-', NUL,                       A_info_add_digit_to_numeric_arg,
+  TAB, NUL,                       A_info_move_to_next_xref,
+  LFD, NUL,                       A_info_down_line,
+  RET, NUL,                       A_info_down_line,
+  CONTROL('a'), NUL,              A_info_beginning_of_line,
+  CONTROL('b'), NUL,              A_info_scroll_backward_page_only,
+  CONTROL('d'), NUL,              A_info_scroll_half_screen_down,
+  CONTROL('e'), NUL,              A_info_down_line,
+  CONTROL('f'), NUL,              A_info_scroll_forward_page_only,
+  CONTROL('k'), NUL,              A_info_up_line,
+  CONTROL('l'), NUL,              A_info_redraw_display,
+  CONTROL('n'), NUL,              A_info_down_line,
+  CONTROL('p'), NUL,              A_info_up_line,
+  CONTROL('r'), NUL,              A_info_redraw_display,
+  CONTROL('s'), NUL,              A_isearch_forward,
+  CONTROL('u'), NUL,              A_info_scroll_half_screen_up,
+  CONTROL('v'), NUL,              A_info_scroll_forward_page_only,
+  CONTROL('y'), NUL,              A_info_up_line,
+  ',', NUL,                       A_info_next_index_match,
+  '/', NUL,                       A_info_search,
+  ESC, '0', NUL,                  A_info_last_menu_item,
+  ESC, '1', NUL,                  A_info_menu_digit,
+  ESC, '2', NUL,                  A_info_menu_digit,
+  ESC, '3', NUL,                  A_info_menu_digit,
+  ESC, '4', NUL,                  A_info_menu_digit,
+  ESC, '5', NUL,                  A_info_menu_digit,
+  ESC, '6', NUL,                  A_info_menu_digit,
+  ESC, '7', NUL,                  A_info_menu_digit,
+  ESC, '8', NUL,                  A_info_menu_digit,
+  ESC, '9', NUL,                  A_info_menu_digit,
+  Meta('0'), NUL,                 A_info_last_menu_item,
+  Meta('1'), NUL,                 A_info_menu_digit,
+  Meta('2'), NUL,                 A_info_menu_digit,
+  Meta('3'), NUL,                 A_info_menu_digit,
+  Meta('4'), NUL,                 A_info_menu_digit,
+  Meta('5'), NUL,                 A_info_menu_digit,
+  Meta('6'), NUL,                 A_info_menu_digit,
+  Meta('7'), NUL,                 A_info_menu_digit,
+  Meta('8'), NUL,                 A_info_menu_digit,
+  Meta('9'), NUL,                 A_info_menu_digit,
+  '<', NUL,                       A_info_first_node,
+  '>', NUL,                       A_info_last_node,
+  '?', NUL,                       A_info_search_backward,
+  '[', NUL,                       A_info_global_prev_node,
+  ']', NUL,                       A_info_global_next_node,
+  '\'', NUL,                      A_info_history_node,
+  'b', NUL,                       A_info_scroll_backward,
+  'd', NUL,                       A_info_scroll_half_screen_down,
+  'e', NUL,                       A_info_down_line,
+  'E', NUL,                       A_info_view_file,
+  ':', 'e', NUL,                  A_info_view_file,
+  'f', NUL,                       A_info_scroll_forward_page_only,
+  'F', NUL,                       A_info_scroll_forward_page_only,
+  'g', NUL,                       A_info_first_node,
+  'G', NUL,                       A_info_last_node,
+  'h', NUL,                       A_info_get_help_window,
+  'H', NUL,                       A_info_get_help_window,
+  'i', NUL,                       A_info_index_search,
+  'I', NUL,                       A_info_goto_invocation_node,
+  'j', NUL,                       A_info_next_line,
+  'k', NUL,                       A_info_prev_line,
+  'l', NUL,                       A_info_history_node,
+  'm', NUL,                       A_info_menu_item,
+  'n', NUL,                       A_info_search_next,
+  'N', NUL,                       A_info_search_previous,
+  'O', NUL,                       A_info_goto_invocation_node,
+  'p', NUL,                       A_info_prev_node,
+  'Q', NUL,                       A_info_quit,
+  ':', 'q', NUL,                  A_info_quit,
+  ':', 'Q', NUL,                  A_info_quit,
+  'Z', 'Z', NUL,                  A_info_quit,
+  'r', NUL,                       A_info_redraw_display,
+  'R', NUL,                       A_info_toggle_regexp,
+  's', NUL,                       A_info_search,
+  'S', NUL,                       A_info_search_case_sensitively,
+  't', NUL,                       A_info_top_node,
+  'u', NUL,                       A_info_scroll_half_screen_up,
+  'w', NUL,                       A_info_scroll_backward_page_only_set_window,
+  'y', NUL,                       A_info_up_line,
+  'z', NUL,                       A_info_scroll_forward_page_only_set_window,
+  ESC, CONTROL('f'), NUL,         A_info_show_footnotes,
+  ESC, CONTROL('g'), NUL,         A_info_abort_key,
+  ESC, TAB, NUL,                  A_info_move_to_prev_xref,
+  ESC, SPC, NUL,                  A_info_scroll_forward_page_only,
+  ESC, CONTROL('v'), NUL,         A_info_scroll_other_window,
+  ESC, '<', NUL,                  A_info_beginning_of_node,
+  ESC, '>', NUL,                  A_info_end_of_node,
+  ESC, '/', NUL,                  A_info_search,
+  ESC, '?', NUL,                  A_info_search_backward,
+  ESC, 'b', NUL,                  A_info_beginning_of_node,
+  ESC, 'd', NUL,                  A_info_dir_node,
+  ESC, 'e', NUL,                  A_info_end_of_node,
+  ESC, 'f', NUL,                  A_info_xref_item,
+  ESC, 'g', NUL,                  A_info_select_reference_this_line,
+  ESC, 'h', NUL,                  A_info_get_info_help_node,
+  ESC, 'I', NUL,                  A_info_virtual_index,
+  ESC, 'm', NUL,                  A_info_menu_item,
+  ESC, 'n', NUL,                  A_info_search,
+  ESC, 'N', NUL,                  A_info_search_backward,
+  ESC, 'r', NUL,                  A_isearch_backward,
+  ESC, 's', NUL,                  A_isearch_forward,
+  ESC, 't', NUL,                  A_info_top_node,
+  ESC, 'v', NUL,                  A_info_scroll_backward_page_only,
 #if defined (NAMED_FUNCTIONS)
-        ESC, 'x', NUL,                  A_info_execute_command,
-        Meta('x'), NUL,                 A_info_execute_command,
+  ESC, 'x', NUL,                  A_info_execute_command,
+  Meta('x'), NUL,                 A_info_execute_command,
 #endif /* NAMED_FUNCTIONS */
-        ESC, DEL, NUL,                  A_info_scroll_other_window_backward,
-        CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
-        CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
-        CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
-        CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
-        CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
-        CONTROL('x'), LFD, NUL,         A_info_select_reference_this_line,
-        CONTROL('x'), RET, NUL,         A_info_select_reference_this_line,
-        CONTROL('x'), '0', NUL,         A_info_delete_window,
-        CONTROL('x'), '1', NUL,         A_info_keep_one_window,
-        CONTROL('x'), '2', NUL,         A_info_split_window,
-        CONTROL('x'), '^', NUL,         A_info_grow_window,
-        CONTROL('x'), 'b', NUL,         A_select_visited_node,
-        CONTROL('x'), 'g', NUL,         A_info_goto_node,
-        CONTROL('x'), 'i', NUL,         A_info_index_search,
-        CONTROL('x'), 'I', NUL,         A_info_goto_invocation_node,
-        CONTROL('x'), 'k', NUL,         A_info_kill_node,
-        CONTROL('x'), 'n', NUL,         A_info_next_node,
-        CONTROL('x'), 'o', NUL,         A_info_next_window,
-        CONTROL('x'), 'O', NUL,         A_info_goto_invocation_node,
-        CONTROL('x'), 'p', NUL,         A_info_prev_node,
-        CONTROL('x'), 'r', NUL,         A_info_xref_item,
-        CONTROL('x'), 't', NUL,         A_info_tile_windows,
-        CONTROL('x'), 'u', NUL,         A_info_up_node,
-        CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
-        CONTROL('x'), ',', NUL,         A_info_next_index_match,
+  ESC, DEL, NUL,                  A_info_scroll_other_window_backward,
+  CONTROL('x'), CONTROL('b'), NUL,        A_list_visited_nodes,
+  CONTROL('x'), CONTROL('c'), NUL,        A_info_quit,
+  CONTROL('x'), CONTROL('f'), NUL,        A_info_view_file,
+  CONTROL('x'), CONTROL('g'), NUL,        A_info_abort_key,
+  CONTROL('x'), CONTROL('v'), NUL,        A_info_view_file,
+  CONTROL('x'), LFD, NUL,         A_info_select_reference_this_line,
+  CONTROL('x'), RET, NUL,         A_info_select_reference_this_line,
+  CONTROL('x'), '0', NUL,         A_info_delete_window,
+  CONTROL('x'), '1', NUL,         A_info_keep_one_window,
+  CONTROL('x'), '2', NUL,         A_info_split_window,
+  CONTROL('x'), '^', NUL,         A_info_grow_window,
+  CONTROL('x'), 'b', NUL,         A_select_visited_node,
+  CONTROL('x'), 'g', NUL,         A_info_goto_node,
+  CONTROL('x'), 'i', NUL,         A_info_index_search,
+  CONTROL('x'), 'I', NUL,         A_info_goto_invocation_node,
+  CONTROL('x'), 'k', NUL,         A_info_kill_node,
+  CONTROL('x'), 'n', NUL,         A_info_next_node,
+  CONTROL('x'), 'o', NUL,         A_info_next_window,
+  CONTROL('x'), 'O', NUL,         A_info_goto_invocation_node,
+  CONTROL('x'), 'p', NUL,         A_info_prev_node,
+  CONTROL('x'), 'r', NUL,         A_info_xref_item,
+  CONTROL('x'), 't', NUL,         A_info_tile_windows,
+  CONTROL('x'), 'u', NUL,         A_info_up_node,
+  CONTROL('x'), 'w', NUL,         A_info_toggle_wrap,
+  CONTROL('x'), ',', NUL,         A_info_next_index_match,
 
 /*      Arrow key bindings for info keymaps.  It seems that some
         terminals do not match their termcap entries, so it's best to just
         define everything with both of the usual prefixes.  */
-
-        SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
-        SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
-        '\033', 'O', 'A', NUL,                  A_info_up_line,
-        '\033', '[', 'A', NUL,                  A_info_up_line,
-        '\033', 'O', 'B', NUL,                  A_info_down_line,
-        '\033', '[', 'B', NUL,                  A_info_down_line,
-        SK_ESCAPE, SK_RIGHT_ARROW, NUL,         
A_info_scroll_forward_page_only,
-        '\033', 'O', 'C', NUL,                  
A_info_scroll_forward_page_only,
-        '\033', '[', 'C', NUL,                  
A_info_scroll_forward_page_only,
-        SK_ESCAPE, SK_LEFT_ARROW, NUL,          
A_info_scroll_backward_page_only,
-        '\033', 'O', 'D', NUL,                  
A_info_scroll_backward_page_only,
-        '\033', '[', 'D', NUL,                  
A_info_scroll_backward_page_only,
-        SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
-        SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
-        ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
-        ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        
A_info_scroll_other_window_backward,
-        ESC, SK_ESCAPE, SK_DELETE, NUL,         
A_info_scroll_other_window_backward,
-        ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_node,
-        ESC, '\033', 'O', 'A', NUL,             A_info_prev_node,
-        ESC, '\033', '[', 'A', NUL,             A_info_prev_node,
-        ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_node,
-        ESC, '\033', 'O', 'B', NUL,             A_info_next_node,
-        ESC, '\033', '[', 'B', NUL,             A_info_next_node,
-        ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_xref_item,
-        ESC, '\033', 'O', 'C', NUL,             A_info_xref_item,
-        ESC, '\033', '[', 'C', NUL,             A_info_xref_item,
-        ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_beginning_of_node,
-        ESC, '\033', 'O', 'D', NUL,             A_info_beginning_of_node,
-        ESC, '\033', '[', 'D', NUL,             A_info_beginning_of_node,
-        CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
-
-        /* We want help to report q, not C-x C-c, etc.  */
-        'q', NUL,                       A_info_quit,
-        'x', NUL,                       A_info_delete_window,
-        SPC, NUL,                       A_info_scroll_forward,
-        DEL, NUL,                       A_info_scroll_backward,
-        '{', NUL,                       A_info_search_previous,
-        '}', NUL,                       A_info_search_next,
-        CONTROL('g'), NUL,              A_info_abort_key,
-        SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_up_line,
-        SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_down_line,
+  
+  SK_ESCAPE, SK_PAGE_UP, NUL,             A_info_scroll_backward,
+  SK_ESCAPE, SK_PAGE_DOWN, NUL,           A_info_scroll_forward,
+  '\033', 'O', 'A', NUL,                  A_info_up_line,
+  '\033', '[', 'A', NUL,                  A_info_up_line,
+  '\033', 'O', 'B', NUL,                  A_info_down_line,
+  '\033', '[', 'B', NUL,                  A_info_down_line,
+  SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_info_scroll_forward_page_only,
+  '\033', 'O', 'C', NUL,                  A_info_scroll_forward_page_only,
+  '\033', '[', 'C', NUL,                  A_info_scroll_forward_page_only,
+  SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_info_scroll_backward_page_only,
+  '\033', 'O', 'D', NUL,                  A_info_scroll_backward_page_only,
+  '\033', '[', 'D', NUL,                  A_info_scroll_backward_page_only,
+  SK_ESCAPE, SK_HOME, NUL,                A_info_beginning_of_node,
+  SK_ESCAPE, SK_END, NUL,                 A_info_end_of_node,
+  ESC, SK_ESCAPE, SK_PAGE_DOWN, NUL,      A_info_scroll_other_window,
+  ESC, SK_ESCAPE, SK_PAGE_UP, NUL,        A_info_scroll_other_window_backward,
+  ESC, SK_ESCAPE, SK_DELETE, NUL,         A_info_scroll_other_window_backward,
+  ESC, SK_ESCAPE, SK_UP_ARROW, NUL,       A_info_prev_node,
+  ESC, '\033', 'O', 'A', NUL,             A_info_prev_node,
+  ESC, '\033', '[', 'A', NUL,             A_info_prev_node,
+  ESC, SK_ESCAPE, SK_DOWN_ARROW, NUL,     A_info_next_node,
+  ESC, '\033', 'O', 'B', NUL,             A_info_next_node,
+  ESC, '\033', '[', 'B', NUL,             A_info_next_node,
+  ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_info_xref_item,
+  ESC, '\033', 'O', 'C', NUL,             A_info_xref_item,
+  ESC, '\033', '[', 'C', NUL,             A_info_xref_item,
+  ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_info_beginning_of_node,
+  ESC, '\033', 'O', 'D', NUL,             A_info_beginning_of_node,
+  ESC, '\033', '[', 'D', NUL,             A_info_beginning_of_node,
+  CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+  
+  /* We want help to report q, not C-x C-c, etc.  */
+  'q', NUL,                       A_info_quit,
+  'x', NUL,                       A_info_delete_window,
+  SPC, NUL,                       A_info_scroll_forward,
+  DEL, NUL,                       A_info_scroll_backward,
+  '{', NUL,                       A_info_search_previous,
+  '}', NUL,                       A_info_search_next,
+  CONTROL('g'), NUL,              A_info_abort_key,
+  SK_ESCAPE, SK_UP_ARROW, NUL,    A_info_up_line,
+  SK_ESCAPE, SK_DOWN_ARROW, NUL,  A_info_down_line,
 };
 
 
 static unsigned char default_vi_like_ea_keys[] =
 {
-        0,      /* suppress-default-keybindings flag */
-        ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
-        ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
-        Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
-        Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
-        ESC, CONTROL('g'), NUL,         A_ea_abort,
-        ESC, CONTROL('h'), NUL,         A_ea_backward_kill_word,
-        ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
-        ESC, '0', NUL,                  A_ea_beg_of_line,
-        ESC, '$', NUL,                  A_ea_end_of_line,
-        ESC, 'b', NUL,                  A_ea_backward_word,
-        ESC, 'd', NUL,                  A_ea_kill_word,
-        ESC, 'f', NUL,                  A_ea_forward_word,
-        ESC, 'h', NUL,                  A_ea_forward,
-        ESC, 'l', NUL,                  A_ea_backward,
-        ESC, 'w', NUL,                  A_ea_forward_word,
-        ESC, 'x', NUL,                  A_ea_delete,
-        ESC, 'X', NUL,                  A_ea_kill_word,
-        ESC, 'y', NUL,                  A_ea_yank_pop,
-        ESC, '?', NUL,                  A_ea_possible_completions,
-        ESC, TAB, NUL,                  A_ea_tab_insert,
-        ESC, DEL, NUL,                  A_ea_kill_word,
-        Meta(CONTROL('g')), NUL,        A_ea_abort,
-        Meta(CONTROL('h')), NUL,        A_ea_backward_kill_word,
-        Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
-        Meta('0'), NUL,                 A_ea_beg_of_line,
-        Meta('$'), NUL,                 A_ea_end_of_line,
-        Meta('b'), NUL,                 A_ea_backward_word,
-        Meta('d'), NUL,                 A_ea_kill_word,
-        Meta('f'), NUL,                 A_ea_forward_word,
-        Meta('h'), NUL,                 A_ea_forward,
-        Meta('l'), NUL,                 A_ea_backward,
-        Meta('w'), NUL,                 A_ea_forward_word,
-        Meta('x'), NUL,                 A_ea_delete,
-        Meta('X'), NUL,                 A_ea_kill_word,
-        Meta('y'), NUL,                 A_ea_yank_pop,
-        Meta('?'), NUL,                 A_ea_possible_completions,
-        Meta(TAB), NUL,                 A_ea_tab_insert,
-        Meta(DEL), NUL,                 A_ea_kill_word,
-        CONTROL('a'), NUL,              A_ea_beg_of_line,
-        CONTROL('b'), NUL,              A_ea_backward,
-        CONTROL('d'), NUL,              A_ea_delete,
-        CONTROL('e'), NUL,              A_ea_end_of_line,
-        CONTROL('f'), NUL,              A_ea_forward,
-        CONTROL('g'), NUL,              A_ea_abort,
-        CONTROL('h'), NUL,              A_ea_rubout,
-/*      CONTROL('k') */
-        SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
-        CONTROL('l'), NUL,              A_info_redraw_display,
-        CONTROL('q'), NUL,              A_ea_quoted_insert,
-        CONTROL('t'), NUL,              A_ea_transpose_chars,
-        CONTROL('u'), NUL,              A_ea_abort,
-        CONTROL('v'), NUL,              A_ea_quoted_insert,
-        CONTROL('y'), NUL,              A_ea_yank,
-        LFD, NUL,                       A_ea_newline,
-        RET, NUL,                       A_ea_newline,
-        SPC, NUL,                       A_ea_complete,
-        TAB, NUL,                       A_ea_complete,
-        '?', NUL,                       A_ea_possible_completions,
+  0,      /* suppress-default-keybindings flag */
+  ESC, '1', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '2', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '3', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '4', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '5', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '6', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '7', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '8', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '9', NUL,                  A_info_add_digit_to_numeric_arg,
+  ESC, '-', NUL,                  A_info_add_digit_to_numeric_arg,
+  Meta('1'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('2'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('3'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('4'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('5'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('6'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('7'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('8'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('9'), NUL,                 A_info_add_digit_to_numeric_arg,
+  Meta('-'), NUL,                 A_info_add_digit_to_numeric_arg,
+  ESC, CONTROL('g'), NUL,         A_ea_abort,
+  ESC, CONTROL('h'), NUL,         A_ea_backward_kill_word,
+  ESC, CONTROL('v'), NUL,         A_ea_scroll_completions_window,
+  ESC, '0', NUL,                  A_ea_beg_of_line,
+  ESC, '$', NUL,                  A_ea_end_of_line,
+  ESC, 'b', NUL,                  A_ea_backward_word,
+  ESC, 'd', NUL,                  A_ea_kill_word,
+  ESC, 'f', NUL,                  A_ea_forward_word,
+  ESC, 'h', NUL,                  A_ea_forward,
+  ESC, 'l', NUL,                  A_ea_backward,
+  ESC, 'w', NUL,                  A_ea_forward_word,
+  ESC, 'x', NUL,                  A_ea_delete,
+  ESC, 'X', NUL,                  A_ea_kill_word,
+  ESC, 'y', NUL,                  A_ea_yank_pop,
+  ESC, '?', NUL,                  A_ea_possible_completions,
+  ESC, TAB, NUL,                  A_ea_tab_insert,
+  ESC, DEL, NUL,                  A_ea_kill_word,
+  Meta(CONTROL('g')), NUL,        A_ea_abort,
+  Meta(CONTROL('h')), NUL,        A_ea_backward_kill_word,
+  Meta(CONTROL('v')), NUL,        A_ea_scroll_completions_window,
+  Meta('0'), NUL,                 A_ea_beg_of_line,
+  Meta('$'), NUL,                 A_ea_end_of_line,
+  Meta('b'), NUL,                 A_ea_backward_word,
+  Meta('d'), NUL,                 A_ea_kill_word,
+  Meta('f'), NUL,                 A_ea_forward_word,
+  Meta('h'), NUL,                 A_ea_forward,
+  Meta('l'), NUL,                 A_ea_backward,
+  Meta('w'), NUL,                 A_ea_forward_word,
+  Meta('x'), NUL,                 A_ea_delete,
+  Meta('X'), NUL,                 A_ea_kill_word,
+  Meta('y'), NUL,                 A_ea_yank_pop,
+  Meta('?'), NUL,                 A_ea_possible_completions,
+  Meta(TAB), NUL,                 A_ea_tab_insert,
+  Meta(DEL), NUL,                 A_ea_kill_word,
+  CONTROL('a'), NUL,              A_ea_beg_of_line,
+  CONTROL('b'), NUL,              A_ea_backward,
+  CONTROL('d'), NUL,              A_ea_delete,
+  CONTROL('e'), NUL,              A_ea_end_of_line,
+  CONTROL('f'), NUL,              A_ea_forward,
+  CONTROL('g'), NUL,              A_ea_abort,
+  CONTROL('h'), NUL,              A_ea_rubout,
+  /*      CONTROL('k') */
+  SK_ESCAPE, SK_LITERAL, NUL,     A_ea_kill_line,
+  CONTROL('l'), NUL,              A_info_redraw_display,
+  CONTROL('q'), NUL,              A_ea_quoted_insert,
+  CONTROL('t'), NUL,              A_ea_transpose_chars,
+  CONTROL('u'), NUL,              A_ea_abort,
+  CONTROL('v'), NUL,              A_ea_quoted_insert,
+  CONTROL('y'), NUL,              A_ea_yank,
+  LFD, NUL,                       A_ea_newline,
+  RET, NUL,                       A_ea_newline,
+  SPC, NUL,                       A_ea_complete,
+  TAB, NUL,                       A_ea_complete,
+  '?', NUL,                       A_ea_possible_completions,
 #ifdef __MSDOS__
-        /* PC users will lynch me if I don't give them their usual DEL
-           effect...  */
-        DEL, NUL,                       A_ea_delete,
+  /* PC users will lynch me if I don't give them their usual DEL
+     effect...  */
+  DEL, NUL,                       A_ea_delete,
 #else
         DEL, NUL,                       A_ea_rubout,
 #endif
-        CONTROL('x'), 'o', NUL,         A_info_next_window,
-        CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
-
+  CONTROL('x'), 'o', NUL,         A_info_next_window,
+  CONTROL('x'), DEL, NUL,         A_ea_backward_kill_line,
+  
   /* Arrow key bindings for echo area keymaps.  It seems that some
      terminals do not match their termcap entries, so it's best to just
      define everything with both of the usual prefixes.  */
 
-        SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
-        '\033', 'O', 'C', NUL,                  A_ea_forward,
-        '\033', '[', 'C', NUL,                  A_ea_forward,
-        SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
-        '\033', 'O', 'D', NUL,                  A_ea_backward,
-        '\033', '[', 'D', NUL,                  A_ea_backward,
-        SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
-        SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
+  SK_ESCAPE, SK_RIGHT_ARROW, NUL,         A_ea_forward,
+  '\033', 'O', 'C', NUL,                  A_ea_forward,
+  '\033', '[', 'C', NUL,                  A_ea_forward,
+  SK_ESCAPE, SK_LEFT_ARROW, NUL,          A_ea_backward,
+  '\033', 'O', 'D', NUL,                  A_ea_backward,
+  '\033', '[', 'D', NUL,                  A_ea_backward,
+  SK_ESCAPE, SK_HOME, NUL,                A_ea_beg_of_line,
+  SK_ESCAPE, SK_END, NUL,                 A_ea_end_of_line,
 #ifdef __MSDOS__
-        SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
+  SK_ESCAPE, SK_DELETE, NUL,              A_ea_delete,
 #else
-        SK_DELETE, SK_DELETE, NUL,              A_ea_rubout,
+  SK_DELETE, SK_DELETE, NUL,              A_ea_rubout,
 #endif
-        ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
-        ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
-        ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
-        ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
-        ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
-        ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
-        ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_kill_word,
-        CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
+  ESC, SK_ESCAPE, SK_RIGHT_ARROW, NUL,    A_ea_forward_word,
+  ESC, '\033', 'O', 'C', NUL,             A_ea_forward_word,
+  ESC, '\033', '[', 'C', NUL,             A_ea_forward_word,
+  ESC, SK_ESCAPE, SK_LEFT_ARROW, NUL,     A_ea_backward_word,
+  ESC, '\033', 'O', 'D', NUL,             A_ea_backward_word,
+  ESC, '\033', '[', 'D', NUL,             A_ea_backward_word,
+  ESC, SK_ESCAPE, SK_DELETE, NUL,         A_ea_kill_word,
+  CONTROL('x'), SK_ESCAPE, SK_DELETE, NUL,A_ea_backward_kill_line,
 };
 
 
@@ -880,14 +880,14 @@
 static unsigned long
 filesize (int f)
 {
-        long pos = lseek(f, 0L, SEEK_CUR);
-        long sz = -1L;
-        if (pos != -1L)
-        {
-                sz = lseek(f, 0L, SEEK_END);
-                lseek(f, pos, SEEK_SET);
-        }
-        return sz == -1L ? 0L : sz;
+  long pos = lseek (f, 0L, SEEK_CUR);
+  long sz = -1L;
+  if (pos != -1L)
+    {
+      sz = lseek (f, 0L, SEEK_END);
+      lseek (f, pos, SEEK_SET);
+    }
+  return sz == -1L ? 0L : sz;
 }
 
 /* Get an integer from a infokey file.
@@ -896,13 +896,13 @@
 static int
 getint (unsigned char **sp)
 {
-        int n;
-
-        if ( !((*sp)[0] < INFOKEY_RADIX && (*sp)[1] < INFOKEY_RADIX) )
-                return -1;
-        n = (*sp)[0] + (*sp)[1] * INFOKEY_RADIX;
-        *sp += 2;
-        return n;
+  int n;
+  
+  if ( !((*sp)[0] < INFOKEY_RADIX && (*sp)[1] < INFOKEY_RADIX) )
+    return -1;
+  n = (*sp)[0] + (*sp)[1] * INFOKEY_RADIX;
+  *sp += 2;
+  return n;
 }
 
 
@@ -911,138 +911,139 @@
 static int
 fetch_user_maps (void)
 {
-        char *filename = NULL;
-        char *homedir;
-        int f;
-        unsigned char *buf;
-        unsigned long len;
-        long nread;
-        unsigned char *p;
-        int n;
-
-        /* Find and open file. */
-        if ((filename = getenv("INFOKEY")) != NULL)
-                filename = xstrdup(filename);
-        else if ((homedir = getenv("HOME")) != NULL)
-        {
-                filename = xmalloc(strlen(homedir) + 2 + strlen(INFOKEY_FILE));
-                strcpy(filename, homedir);
-                strcat(filename, "/");
-                strcat(filename, INFOKEY_FILE);
-        }
+  char *filename = NULL;
+  char *homedir;
+  int f;
+  unsigned char *buf;
+  unsigned long len;
+  long nread;
+  unsigned char *p;
+  int n;
+  
+  /* Find and open file. */
+  if ((filename = getenv ("INFOKEY")) != NULL)
+    filename = xstrdup (filename);
+  else if ((homedir = getenv ("HOME")) != NULL)
+    {
+      filename = xmalloc (strlen (homedir) + 2 + strlen (INFOKEY_FILE));
+      strcpy (filename, homedir);
+      strcat (filename, "/");
+      strcat (filename, INFOKEY_FILE);
+    }
 #if defined(__MSDOS__) || defined(__MINGW32__)
-        /* Poor baby, she doesn't have a HOME...  */
-        else
-                filename = xstrdup(INFOKEY_FILE); /* try current directory */
+  /* Poor baby, she doesn't have a HOME...  */
+  else
+    filename = xstrdup (INFOKEY_FILE); /* try current directory */
 #endif
-        if (filename == NULL || (f = open(filename, O_RDONLY)) == (-1))
-        {
-                if (filename && errno != ENOENT)
-                {
-                        info_error("%s", filesys_error_string(filename, 
errno));
-                        free(filename);
-                }
-                return 0;
-        }
-        SET_BINARY (f);
+  if (filename == NULL || (f = open (filename, O_RDONLY)) == -1)
+    {
+      if (filename && errno != ENOENT)
+       {
+         info_error ("%s", filesys_error_string (filename, errno));
+         free (filename);
+       }
+      return 0;
+    }
+  SET_BINARY (f);
 
-        /* Ensure that the file is a reasonable size. */
-        len = filesize(f);
-        if (len < INFOKEY_NMAGIC + 2 || len > 100 * 1024)
-        {
-                /* Bad file (a valid file must have at least 9 chars, and
-                   more than 100 KB is a problem). */
-                if (len < INFOKEY_NMAGIC + 2)
-                        info_error(_("Ignoring invalid infokey file `%s' - too 
small"),
-                                   filename);
-                else
-                        info_error(_("Ignoring invalid infokey file `%s' - too 
big"),
-                                   filename);
-                close(f);
-                free(filename);
-                return 0;
-        }
-
-        /* Read the file into a buffer. */
-        buf = xmalloc((int)len);
-        nread = read(f, buf, (unsigned int) len);
-        close(f);
-        if ((unsigned int) nread != len)
-        {
-                info_error(_("Error reading infokey file `%s' - short read"),
+  /* Ensure that the file is a reasonable size. */
+  len = filesize (f);
+  if (len < INFOKEY_NMAGIC + 2 || len > 100 * 1024)
+    {
+      /* Bad file (a valid file must have at least 9 chars, and
+        more than 100 KB is a problem). */
+      if (len < INFOKEY_NMAGIC + 2)
+       info_error (_("Ignoring invalid infokey file `%s' - too small"),
+                  filename);
+      else
+       info_error (_("Ignoring invalid infokey file `%s' - too big"),
+                  filename);
+      close (f);
+      free (filename);
+      return 0;
+    }
+  
+  /* Read the file into a buffer. */
+  buf = xmalloc ((int)len);
+  nread = read (f, buf, (unsigned int) len);
+  close (f);
+  if ((unsigned int) nread != len)
+    {
+      info_error (_("Error reading infokey file `%s' - short read"),
                            filename);
-                free(buf);
-                free(filename);
-                return 0;
-        }
-
-        /* Check the header, trailer, and version of the file to increase
-           our confidence that the contents are valid.  */
-        if (    buf[0] != INFOKEY_MAGIC_S0
-                || buf[1] != INFOKEY_MAGIC_S1
-                || buf[2] != INFOKEY_MAGIC_S2
-                || buf[3] != INFOKEY_MAGIC_S3
-                || buf[len - 4] != INFOKEY_MAGIC_E0
-                || buf[len - 3] != INFOKEY_MAGIC_E1
-                || buf[len - 2] != INFOKEY_MAGIC_E2
-                || buf[len - 1] != INFOKEY_MAGIC_E3
-        )
-        {
-                info_error(_("Invalid infokey file `%s' (bad magic numbers) -- 
run infokey to update it"),
-                           filename);
-                free(filename);
-                return 0;
-        }
-        if (len < INFOKEY_NMAGIC + strlen(VERSION) + 1
-            || strcmp(VERSION, (char *) (buf + 4)) != 0)
-        {
-                info_error
-                  (_("Your infokey file `%s' is out of date -- run infokey to 
update it"),
-                    filename);
-                free(filename);
-                return 0;
-        }
-
-        /* Extract the pieces.  */
-        for (p = buf + 4 + strlen(VERSION) + 1;
-             (unsigned int) (p - buf) < len - 4;
-             p += n)
-        {
-                int s = *p++;
-
-                n = getint(&p);
-                if (n < 0 || (unsigned int) n > len - 4 - (p - buf))
-                {
-                        info_error(_("Invalid infokey file `%s' (bad section 
length) -- run infokey to update it"),
-                            filename);
-                        free(filename);
-                        return 0;
-                }
-
-                switch (s)
-                {
-                case INFOKEY_SECTION_INFO:
-                        user_info_keys = p;
-                        user_info_keys_len = n;
-                        break;
-                case INFOKEY_SECTION_EA:
-                        user_ea_keys = p;
-                        user_ea_keys_len = n;
-                        break;
-                case INFOKEY_SECTION_VAR:
-                        user_vars = p;
-                        user_vars_len = n;
-                        break;
-                default:
-                        info_error(_("Invalid infokey file `%s' (bad section 
code) -- run infokey to update it"),
-                            filename);
-                        free(filename);
-                        return 0;
-                }
-        }
-
-        free(filename);
-        return 1;
+      free (buf);
+      free (filename);
+      return 0;
+    }
+  
+  /* Check the header, trailer, and version of the file to increase
+     our confidence that the contents are valid.  */
+  if (buf[0] != INFOKEY_MAGIC_S0 ||
+      buf[1] != INFOKEY_MAGIC_S1 ||
+      buf[2] != INFOKEY_MAGIC_S2 ||
+      buf[3] != INFOKEY_MAGIC_S3 ||
+      buf[len - 4] != INFOKEY_MAGIC_E0 ||
+      buf[len - 3] != INFOKEY_MAGIC_E1 ||
+      buf[len - 2] != INFOKEY_MAGIC_E2 ||
+      buf[len - 1] != INFOKEY_MAGIC_E3)
+    {
+      info_error (_("Invalid infokey file `%s' (bad magic numbers) -- run 
infokey to update it"),
+                filename);
+      free (filename);
+      return 0;
+    }
+  if (len < INFOKEY_NMAGIC + strlen (VERSION) + 1 ||
+      strcmp (VERSION, (char *) (buf + 4)) != 0)
+    {
+      info_error (_("Your infokey file `%s' is out of date -- run infokey to 
update it"),
+                filename);
+      free (filename);
+      return 0;
+    }
+  
+  /* Extract the pieces.  */
+  for (p = buf + 4 + strlen (VERSION) + 1;
+       (unsigned int) (p - buf) < len - 4;
+       p += n)
+    {
+      int s = *p++;
+      
+      n = getint (&p);
+      if (n < 0 || (unsigned int) n > len - 4 - (p - buf))
+       {
+         info_error (_("Invalid infokey file `%s' (bad section length) -- run 
infokey to update it"),
+                    filename);
+         free (filename);
+         return 0;
+       }
+      
+      switch (s)
+       {
+       case INFOKEY_SECTION_INFO:
+         user_info_keys = p;
+         user_info_keys_len = n;
+         break;
+         
+       case INFOKEY_SECTION_EA:
+         user_ea_keys = p;
+         user_ea_keys_len = n;
+         break;
+         
+       case INFOKEY_SECTION_VAR:
+         user_vars = p;
+         user_vars_len = n;
+         break;
+         
+       default:
+         info_error (_("Invalid infokey file `%s' (bad section code) -- run 
infokey to update it"),
+                    filename);
+         free (filename);
+         return 0;
+       }
+    }
+  
+  free (filename);
+  return 1;
 }
 
 /* Decode special key sequences from the infokey file.  Return zero
@@ -1050,59 +1051,59 @@
    doesn't define.
  */
 static int
-decode_keys(unsigned char *src, unsigned int slen,
-    unsigned char *dst, unsigned int dlen)
+decode_keys (unsigned char *src, unsigned int slen,
+           unsigned char *dst, unsigned int dlen)
 {
-        unsigned char *s = src;
-        unsigned char *d = dst;
+  unsigned char *s = src;
+  unsigned char *d = dst;
 
 #define To_dst(c) do { \
-  if ((unsigned int) (d - dst) < dlen) *d++ = (c); \
+    if ((unsigned int) (d - dst) < dlen) *d++ = (c);   \
 } while (0)
 
-        while ((unsigned int) (s - src) < slen)
-        {
-                unsigned char c = ISMETA(*s) ? UNMETA(*s) : *s;
-
-                if (c == SK_ESCAPE)
-                {
-                        char *t;
-                        static char lit[] = { SK_ESCAPE, NUL };
-
-                        switch ((unsigned int) (s + 1 - src) < slen ? s[1] : 
'\0')
-                        {
-                        case SK_RIGHT_ARROW:    t = term_kr; break;
-                        case SK_LEFT_ARROW:     t = term_kl; break;
-                        case SK_UP_ARROW:       t = term_ku; break;
-                        case SK_DOWN_ARROW:     t = term_kd; break;
-                        case SK_PAGE_UP:        t = term_kP; break;
-                        case SK_PAGE_DOWN:      t = term_kN; break;
-                        case SK_HOME:           t = term_kh; break;
-                        case SK_END:            t = term_ke; break;
-                        case SK_DELETE:         t = term_kx; break;
-                        case SK_INSERT:         t = term_ki; break;
-                        case SK_LITERAL:
-                        default:                t = lit; break;
-                        }
-                        if (t == NULL)
-                                return 0;
-                        while (*t)
-                                To_dst(ISMETA(*s) ? Meta(*t++) : *t++);
-                        s += 2;
-                }
-                else
-                {
-                        if (ISMETA(*s))
-                                To_dst(Meta(*s++));
-                        else
-                                To_dst(*s++);
-                }
-        }
-
-        To_dst('\0');
-
-        return 1;
-
+  while ((unsigned int) (s - src) < slen)
+    {
+      unsigned char c = ISMETA (*s) ? UNMETA (*s) : *s;
+      
+      if (c == SK_ESCAPE)
+       {
+         char *t;
+         static char lit[] = { SK_ESCAPE, NUL };
+         
+         switch ((unsigned int) (s + 1 - src) < slen ? s[1] : '\0')
+           {
+           case SK_RIGHT_ARROW:    t = term_kr; break;
+           case SK_LEFT_ARROW:     t = term_kl; break;
+           case SK_UP_ARROW:       t = term_ku; break;
+           case SK_DOWN_ARROW:     t = term_kd; break;
+           case SK_PAGE_UP:        t = term_kP; break;
+           case SK_PAGE_DOWN:      t = term_kN; break;
+           case SK_HOME:           t = term_kh; break;
+           case SK_END:            t = term_ke; break;
+           case SK_DELETE:         t = term_kx; break;
+           case SK_INSERT:         t = term_ki; break;
+           case SK_LITERAL:
+           default:                t = lit; break;
+           }
+         if (t == NULL)
+           return 0;
+         while (*t)
+           To_dst (ISMETA (*s) ? Meta (*t++) : *t++);
+         s += 2;
+       }
+      else
+       {
+         if (ISMETA (*s))
+           To_dst (Meta (*s++));
+         else
+           To_dst (*s++);
+       }
+    }
+  
+  To_dst ('\0');
+  
+  return 1;
+  
 #undef To_dst
 
 }
@@ -1110,131 +1111,126 @@
 /* Convert an infokey file section to keymap bindings.  Return false if
    the default bindings are to be suppressed.  */
 static int
-section_to_keymaps(Keymap map, unsigned char *table, unsigned int len)
+section_to_keymaps (Keymap map, unsigned char *table, unsigned int len)
 {
-        int stop;
-        unsigned char *p;
-        unsigned char *seq = NULL;
-        unsigned int seqlen = 0;
-        enum { getseq, gotseq, getaction } state = getseq;
-
-        stop = len > 0 ? table[0] : 0;
-
-        for (p = table + 1; (unsigned int) (p - table) < len; p++)
-        {
-                switch (state)
-                {
-                case getseq:
-                        if (*p)
-                        {
-                                seq = p;
-                                state = gotseq;
-                        }
-                        break;
-
-                case gotseq:
-                        if (!*p)
-                        {
-                                seqlen = p - seq;
-                                state = getaction;
-                        }
-                        break;
-
-                case getaction:
-                        {
-                                unsigned int action = *p;
-                                unsigned char keyseq[256];
-                                KEYMAP_ENTRY ke;
-
-                                state = getseq;
-                                /* If decode_keys returns zero, it
-                                   means that seq includes keys which
-                                   the terminal doesn't support, like
-                                   PageDown.  In that case, don't bind
-                                   the key sequence.  */
-                                if (decode_keys(seq, seqlen, keyseq,
-                                                sizeof keyseq))
-                                {
-                                        keyseq[sizeof keyseq - 1] = '\0';
-                                        ke.type = ISFUNC;
-                                        ke.function =
-                                          action < A_NCOMMANDS
-                                          ? &function_doc_array[action]
-                                          : NULL;
-                                        keymap_bind_keyseq(map,
-                                            (const char *) keyseq, &ke);
-                                }
-                        }
-                        break;
-                }
-        }
-        if (state != getseq)
-                info_error("%s", _("Bad data in infokey file -- some key 
bindings ignored"));
-        return !stop;
+  int stop;
+  unsigned char *p;
+  unsigned char *seq = NULL;
+  unsigned int seqlen = 0;
+  enum { getseq, gotseq, getaction } state = getseq;
+  
+  stop = len > 0 ? table[0] : 0;
+  
+  for (p = table + 1; (unsigned int) (p - table) < len; p++)
+    {
+      switch (state)
+       {
+       case getseq:
+         if (*p)
+           {
+             seq = p;
+             state = gotseq;
+           }
+         break;
+         
+       case gotseq:
+         if (!*p)
+           {
+             seqlen = p - seq;
+             state = getaction;
+           }
+         break;
+         
+       case getaction:
+         {
+           unsigned int action = *p;
+           unsigned char keyseq[256];
+           KEYMAP_ENTRY ke;
+           
+           state = getseq;
+           /* If decode_keys returns zero, it means that seq includes keys
+              which the terminal doesn't support, like PageDown.  In that
+              case, don't bind the key sequence.  */
+           if (decode_keys (seq, seqlen, keyseq, sizeof keyseq))
+             {
+               keyseq[sizeof keyseq - 1] = '\0';
+               ke.type = ISFUNC;
+               ke.function = action < A_NCOMMANDS ?
+                                   &function_doc_array[action]
+                                   : NULL;
+               keymap_bind_keyseq (map, (const char *) keyseq, &ke);
+             }
+         }
+         break;
+       }
+    }
+  if (state != getseq)
+    info_error ("%s", _("Bad data in infokey file -- some key bindings 
ignored"));
+  return !stop;
 }
 
 /* Convert an infokey file section to variable settings.
  */
 static void
-section_to_vars(unsigned char *table, unsigned int len)
+section_to_vars (unsigned char *table, unsigned int len)
 {
-        enum { getvar, gotvar, getval, gotval } state = getvar;
-        unsigned char *var = NULL;
-        unsigned char *val = NULL;
-        unsigned char *p;
-
-        for (p = table; (unsigned int) (p - table) < len; p++)
-          {
-            switch (state)
-              {
-              case getvar:
-                if (*p)
-                  {
-                    var = p;
-                    state = gotvar;
-                  }
-                break;
-
-              case gotvar:
-                if (!*p)
-                  state = getval;
-                break;
-
-              case getval:
-                if (*p)
-                  {
-                    val = p;
-                    state = gotval;
-                  }
-                break;
-
-              case gotval:
-                if (!*p)
-                  {
-                    if (set_variable_to_value((char *) var, (char *) val))
-                     {
-                       switch (errno)
-                         {
-                         case ENOENT:
-                           info_error (_("%s: no such variable"), var);
-                           break;
-                           
-                         case EINVAL:
-                           info_error (_("value %s is not valid for variable 
%s"),
-                                       val, var);
-                           break;
-
-                         default:
-                           abort ();
-                         }
-                     } 
-                    state = getvar;
-                  }
-                break;
-              }
-          }
-      if (state != getvar)
-        info_error("%s", _("Bad data in infokey file -- some var settings 
ignored"));
+  enum { getvar, gotvar, getval, gotval } state = getvar;
+  unsigned char *var = NULL;
+  unsigned char *val = NULL;
+  unsigned char *p;
+  
+  for (p = table; (unsigned int) (p - table) < len; p++)
+    {
+      switch (state)
+       {
+       case getvar:
+         if (*p)
+           {
+             var = p;
+             state = gotvar;
+           }
+         break;
+         
+       case gotvar:
+         if (!*p)
+           state = getval;
+         break;
+         
+       case getval:
+         if (*p)
+           {
+             val = p;
+             state = gotval;
+           }
+         break;
+         
+       case gotval:
+         if (!*p)
+           {
+             if (set_variable_to_value ((char *) var, (char *) val))
+               {
+                 switch (errno)
+                   {
+                   case ENOENT:
+                     info_error (_("%s: no such variable"), var);
+                     break;
+                     
+                   case EINVAL:
+                     info_error (_("value %s is not valid for variable %s"),
+                                 val, var);
+                     break;
+                     
+                   default:
+                     abort ();
+                   }
+               }       
+             state = getvar;
+           }
+         break;
+       }
+    }
+  if (state != getvar)
+    info_error ("%s", _("Bad data in infokey file -- some var settings 
ignored"));
 }
 
 void
@@ -1253,10 +1249,10 @@
   /* Bind the echo area insert routines. */
   for (i = 0; i < 256; i++)
     if (isprint (i))
-      echo_area_keymap[i].function = InfoCmd(ea_insert);
+      echo_area_keymap[i].function = InfoCmd (ea_insert);
 
   /* Get user-defined keys and variables.  */
-  if (fetch_user_maps())
+  if (fetch_user_maps ())
     {
       if (user_info_keys_len && user_info_keys[0])
         suppress_info_default_bindings = 1;
@@ -1269,32 +1265,32 @@
   if (vi_keys_p)
     {
       if (!suppress_info_default_bindings)
-        section_to_keymaps(info_keymap, default_vi_like_info_keys,
-                           sizeof(default_vi_like_info_keys));
+        section_to_keymaps (info_keymap, default_vi_like_info_keys,
+                           sizeof (default_vi_like_info_keys));
       if (!suppress_ea_default_bindings)
-          section_to_keymaps(echo_area_keymap, default_vi_like_ea_keys,
-                             sizeof(default_vi_like_ea_keys));
+          section_to_keymaps (echo_area_keymap, default_vi_like_ea_keys,
+                             sizeof (default_vi_like_ea_keys));
     }
   else
     {
       if (!suppress_info_default_bindings)
-        section_to_keymaps(info_keymap, default_emacs_like_info_keys,
-                           sizeof(default_emacs_like_info_keys));
+        section_to_keymaps (info_keymap, default_emacs_like_info_keys,
+                           sizeof (default_emacs_like_info_keys));
       if (!suppress_ea_default_bindings)
-          section_to_keymaps(echo_area_keymap, default_emacs_like_ea_keys,
-                             sizeof(default_emacs_like_ea_keys));
+          section_to_keymaps (echo_area_keymap, default_emacs_like_ea_keys,
+                             sizeof (default_emacs_like_ea_keys));
     }
 
   /* If the user specified custom bindings, apply them on top of the
      default ones.  */
   if (user_info_keys_len)
-    section_to_keymaps(info_keymap, user_info_keys, user_info_keys_len);
+    section_to_keymaps (info_keymap, user_info_keys, user_info_keys_len);
 
   if (user_ea_keys_len)
-    section_to_keymaps(echo_area_keymap, user_ea_keys, user_ea_keys_len);
+    section_to_keymaps (echo_area_keymap, user_ea_keys, user_ea_keys_len);
 
   if (user_vars_len)
-    section_to_vars(user_vars, user_vars_len);
+    section_to_vars (user_vars, user_vars_len);
 }
 
 /* vim: set sw=2 cino={1s>2sn-s^-se-s: */




reply via email to

[Prev in Thread] Current Thread [Next in Thread]