gdb/testsuite/
[binutils-gdb.git] / readline / keymaps.c
index e4c3884dee104818694e29528abbccf2fb159018..70d0cc08d3f1a0aaeb77998d1bcf92775f4fe677 100644 (file)
@@ -7,7 +7,7 @@
 
    Readline is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
 
    Readline is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 1, or (at your option) any
+   Free Software Foundation; either version 2, or (at your option) any
    later version.
 
    Readline is distributed in the hope that it will be useful, but
    later version.
 
    Readline is distributed in the hope that it will be useful, but
 
    You should have received a copy of the GNU General Public License
    along with Readline; see the file COPYING.  If not, write to the Free
 
    You should have received a copy of the GNU General Public License
    along with Readline; see the file COPYING.  If not, write to the Free
-   Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+   Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
+#define READLINE_LIBRARY
+
+#if defined (HAVE_CONFIG_H)
+#  include <config.h>
+#endif
+
+#if defined (HAVE_STDLIB_H)
+#  include <stdlib.h>
+#else
+#  include "ansi_stdlib.h"
+#endif /* HAVE_STDLIB_H */
+
+#include <stdio.h>     /* for FILE * definition for readline.h */
+
+#include "readline.h"
+#include "rlconf.h"
 
 
-#include "keymaps.h"
 #include "emacs_keymap.c"
 
 #include "emacs_keymap.c"
 
-#ifdef VI_MODE
+#if defined (VI_MODE)
 #include "vi_keymap.c"
 #endif
 
 #include "vi_keymap.c"
 #endif
 
-/* Remove these declarations when we have a complete libgnu.a. */
-/* #define STATIC_MALLOC */
-#if !defined (STATIC_MALLOC)
-extern char *xmalloc (), *xrealloc ();
-#else
-static char *xmalloc (), *xrealloc ();
-#endif /* STATIC_MALLOC */
+#include "xmalloc.h"
 
 /* **************************************************************** */
 /*                                                                 */
 
 /* **************************************************************** */
 /*                                                                 */
@@ -47,19 +56,21 @@ Keymap
 rl_make_bare_keymap ()
 {
   register int i;
 rl_make_bare_keymap ()
 {
   register int i;
-  Keymap keymap = (Keymap)xmalloc (128 * sizeof (KEYMAP_ENTRY));
+  Keymap keymap = (Keymap)xmalloc (KEYMAP_SIZE * sizeof (KEYMAP_ENTRY));
 
 
-  for (i = 0; i < 128; i++)
+  for (i = 0; i < KEYMAP_SIZE; i++)
     {
       keymap[i].type = ISFUNC;
     {
       keymap[i].type = ISFUNC;
-      keymap[i].function = (Function *)NULL;
+      keymap[i].function = (rl_command_func_t *)NULL;
     }
 
     }
 
+#if 0
   for (i = 'A'; i < ('Z' + 1); i++)
     {
       keymap[i].type = ISFUNC;
       keymap[i].function = rl_do_lowercase_version;
     }
   for (i = 'A'; i < ('Z' + 1); i++)
     {
       keymap[i].type = ISFUNC;
       keymap[i].function = rl_do_lowercase_version;
     }
+#endif
 
   return (keymap);
 }
 
   return (keymap);
 }
@@ -70,9 +81,10 @@ rl_copy_keymap (map)
      Keymap map;
 {
   register int i;
      Keymap map;
 {
   register int i;
-  Keymap temp = rl_make_bare_keymap ();
+  Keymap temp;
 
 
-  for (i = 0; i < 128; i++)
+  temp = rl_make_bare_keymap ();
+  for (i = 0; i < KEYMAP_SIZE; i++)
     {
       temp[i].type = map[i].type;
       temp[i].function = map[i].function;
     {
       temp[i].type = map[i].type;
       temp[i].function = map[i].function;
@@ -86,33 +98,39 @@ rl_copy_keymap (map)
 Keymap
 rl_make_keymap ()
 {
 Keymap
 rl_make_keymap ()
 {
-  extern rl_insert (), rl_rubout ();
   register int i;
   Keymap newmap;
 
   newmap = rl_make_bare_keymap ();
 
   register int i;
   Keymap newmap;
 
   newmap = rl_make_bare_keymap ();
 
-  /* All printing characters are self-inserting. */
-  for (i = ' '; i < 126; i++)
+  /* All ASCII printing characters are self-inserting. */
+  for (i = ' '; i < 127; i++)
     newmap[i].function = rl_insert;
 
   newmap[TAB].function = rl_insert;
     newmap[i].function = rl_insert;
 
   newmap[TAB].function = rl_insert;
-  newmap[RUBOUT].function = rl_rubout;
+  newmap[RUBOUT].function = rl_rubout; /* RUBOUT == 127 */
   newmap[CTRL('H')].function = rl_rubout;
 
   newmap[CTRL('H')].function = rl_rubout;
 
+#if KEYMAP_SIZE > 128
+  /* Printing characters in ISO Latin-1 and some 8-bit character sets. */
+  for (i = 128; i < 256; i++)
+    newmap[i].function = rl_insert;
+#endif /* KEYMAP_SIZE > 128 */
+
   return (newmap);
 }
 
 /* Free the storage associated with MAP. */
   return (newmap);
 }
 
 /* Free the storage associated with MAP. */
+void
 rl_discard_keymap (map)
 rl_discard_keymap (map)
-     Keymap (map);
+     Keymap map;
 {
   int i;
 
   if (!map)
     return;
 
 {
   int i;
 
   if (!map)
     return;
 
-  for (i = 0; i < 128; i++)
+  for (i = 0; i < KEYMAP_SIZE; i++)
     {
       switch (map[i].type)
        {
     {
       switch (map[i].type)
        {
@@ -129,49 +147,3 @@ rl_discard_keymap (map)
        }
     }
 }
        }
     }
 }
-
-#ifdef STATIC_MALLOC
-\f
-/* **************************************************************** */
-/*                                                                 */
-/*                     xmalloc and xrealloc ()                     */
-/*                                                                 */
-/* **************************************************************** */
-
-static void memory_error_and_abort ();
-
-static char *
-xmalloc (bytes)
-     int bytes;
-{
-  char *temp = (char *)malloc (bytes);
-
-  if (!temp)
-    memory_error_and_abort ();
-  return (temp);
-}
-
-static char *
-xrealloc (pointer, bytes)
-     char *pointer;
-     int bytes;
-{
-  char *temp;
-
-  if (!pointer)
-    temp = (char *)malloc (bytes);
-  else
-    temp = (char *)realloc (pointer, bytes);
-
-  if (!temp)
-    memory_error_and_abort ();
-  return (temp);
-}
-
-static void
-memory_error_and_abort ()
-{
-  fprintf (stderr, "readline: Out of virtual memory!\n");
-  abort ();
-}
-#endif /* STATIC_MALLOC */