X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=readline%2Fkeymaps.c;h=70d0cc08d3f1a0aaeb77998d1bcf92775f4fe677;hb=3e0ca3a5f8a5cb0db0c1f706c915d3bbb6aab897;hp=e4c3884dee104818694e29528abbccf2fb159018;hpb=e98fe4f7b54cbdf29aef9287bbb1bea8801dd05a;p=binutils-gdb.git diff --git a/readline/keymaps.c b/readline/keymaps.c index e4c3884dee1..70d0cc08d3f 100644 --- a/readline/keymaps.c +++ b/readline/keymaps.c @@ -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 - 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 @@ -17,22 +17,31 @@ 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 +#endif + +#if defined (HAVE_STDLIB_H) +# include +#else +# include "ansi_stdlib.h" +#endif /* HAVE_STDLIB_H */ + +#include /* for FILE * definition for readline.h */ + +#include "readline.h" +#include "rlconf.h" -#include "keymaps.h" #include "emacs_keymap.c" -#ifdef VI_MODE +#if defined (VI_MODE) #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; - 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].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; } +#endif return (keymap); } @@ -70,9 +81,10 @@ rl_copy_keymap (map) 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; @@ -86,33 +98,39 @@ rl_copy_keymap (map) Keymap rl_make_keymap () { - extern rl_insert (), rl_rubout (); 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[RUBOUT].function = rl_rubout; + newmap[RUBOUT].function = rl_rubout; /* RUBOUT == 127 */ 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. */ +void rl_discard_keymap (map) - Keymap (map); + Keymap map; { int i; if (!map) return; - for (i = 0; i < 128; i++) + for (i = 0; i < KEYMAP_SIZE; i++) { switch (map[i].type) { @@ -129,49 +147,3 @@ rl_discard_keymap (map) } } } - -#ifdef STATIC_MALLOC - -/* **************************************************************** */ -/* */ -/* 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 */