diff options
author | Jason Molenda <jsm@bugshack.cygnus.com> | 1999-08-02 23:48:37 +0000 |
---|---|---|
committer | Jason Molenda <jsm@bugshack.cygnus.com> | 1999-08-02 23:48:37 +0000 |
commit | 6da787a878c938e680f13808dee254beacefbd43 (patch) | |
tree | 7c7b4d4f6655b210e33ca51f656f4552c9326ed3 /readline/bind.c | |
parent | 1392c9fbbf6fe8811e5374356b7fdf3b389068ab (diff) | |
download | gdb-6da787a878c938e680f13808dee254beacefbd43.tar.gz |
import gdb-1999-08-02 snapshot
Diffstat (limited to 'readline/bind.c')
-rw-r--r-- | readline/bind.c | 62 |
1 files changed, 57 insertions, 5 deletions
diff --git a/readline/bind.c b/readline/bind.c index 300530a0781..f446dc8cd10 100644 --- a/readline/bind.c +++ b/readline/bind.c @@ -83,6 +83,7 @@ extern int rl_complete_with_tilde_expansion; extern int rl_completion_query_items; extern int rl_inhibit_completion; extern char *_rl_comment_begin; +extern unsigned char *_rl_isearch_terminators; extern int rl_explicit_arg; extern int rl_editing_mode; @@ -207,13 +208,17 @@ rl_unbind_function_in_map (func, map) Function *func; Keymap map; { - register int i; + register int i, rval; - for (i = 0; i < KEYMAP_SIZE; i++) + for (i = rval = 0; i < KEYMAP_SIZE; i++) { if (map[i].type == ISFUNC && map[i].function == func) - map[i].function = (Function *)NULL; + { + map[i].function = (Function *)NULL; + rval = 1; + } } + return rval; } int @@ -222,7 +227,6 @@ rl_unbind_command_in_map (command, map) Keymap map; { Function *func; - register int i; func = rl_named_function (command); if (func == 0) @@ -663,7 +667,11 @@ _rl_read_file (filename, sizep) i = read (file, buffer, file_size); close (file); +#if 0 if (i < file_size) +#else + if (i < 0) +#endif { free (buffer); return ((char *)NULL); @@ -727,6 +735,8 @@ _rl_read_init_file (filename, include_level) openname = tilde_expand (filename); buffer = _rl_read_file (openname, &file_size); + free (openname); + if (buffer == 0) return (errno); @@ -1338,7 +1348,34 @@ rl_variable_bind (name, value) else _rl_bell_preference = AUDIBLE_BELL; } + else if (_rl_stricmp (name, "isearch-terminators") == 0) + { + /* Isolate the value and translate it into a character string. */ + int beg, end; + char *v; + v = savestring (value); + FREE (_rl_isearch_terminators); + if (v[0] == '"' || v[0] == '\'') + { + int delim = v[0]; + for (beg = end = 1; v[end] && v[end] != delim; end++) + ; + } + else + { + for (beg = end = 0; whitespace (v[end]) == 0; end++) + ; + } + + v[end] = '\0'; + /* The value starts at v + beg. Translate it into a character string. */ + _rl_isearch_terminators = (unsigned char *)xmalloc (2 * strlen (v) + 1); + rl_translate_keyseq (v + beg, _rl_isearch_terminators, &end); + _rl_isearch_terminators[end] = '\0'; + free (v); + } + /* For the time being, unknown variable names are simply ignored. */ return 0; } @@ -1492,7 +1529,7 @@ _rl_get_keyname (key) int key; { char *keyname; - int i, c, v; + int i, c; keyname = (char *)xmalloc (8); @@ -1897,6 +1934,21 @@ rl_variable_dumper (print_readably) fprintf (rl_outstream, "set keymap %s\n", kname ? kname : "none"); else fprintf (rl_outstream, "keymap is set to `%s'\n", kname ? kname : "none"); + + /* isearch-terminators */ + if (_rl_isearch_terminators) + { + char *disp; + + disp = _rl_untranslate_macro_value (_rl_isearch_terminators); + + if (print_readably) + fprintf (rl_outstream, "set isearch-terminators \"%s\"\n", disp); + else + fprintf (rl_outstream, "isearch-terminators is set to \"%s\"\n", disp); + + free (disp); + } } /* Print all of the current variables and their values to |