diff options
author | unknown <jimw@mysql.com> | 2005-07-18 17:22:38 -0700 |
---|---|---|
committer | unknown <jimw@mysql.com> | 2005-07-18 17:22:38 -0700 |
commit | bb2fb2af223453682932201e92b56f275fd8f039 (patch) | |
tree | 8f787c005becfbba10a82a9f9d1fad6130b0b38f /cmd-line-utils/readline/bind.c | |
parent | c68257043108de5e58b7a769089036c6692b8df3 (diff) | |
download | mariadb-git-bb2fb2af223453682932201e92b56f275fd8f039.tar.gz |
Upgrade bundled readline to version 5.0.
cmd-line-utils/readline/INSTALL:
Import readline-5.0
cmd-line-utils/readline/Makefile.am:
Import readline-5.0
cmd-line-utils/readline/README:
Import readline-5.0
cmd-line-utils/readline/bind.c:
Import readline-5.0
cmd-line-utils/readline/callback.c:
Import readline-5.0
cmd-line-utils/readline/chardefs.h:
Import readline-5.0
cmd-line-utils/readline/complete.c:
Import readline-5.0
cmd-line-utils/readline/configure.in:
Import readline-5.0
cmd-line-utils/readline/display.c:
Import readline-5.0
cmd-line-utils/readline/funmap.c:
Import readline-5.0
cmd-line-utils/readline/histexpand.c:
Import readline-5.0
cmd-line-utils/readline/histfile.c:
Import readline-5.0
cmd-line-utils/readline/history.c:
Import readline-5.0
cmd-line-utils/readline/history.h:
Import readline-5.0
cmd-line-utils/readline/histsearch.c:
Import readline-5.0
cmd-line-utils/readline/input.c:
Import readline-5.0
cmd-line-utils/readline/isearch.c:
Import readline-5.0
cmd-line-utils/readline/keymaps.c:
Import readline-5.0
cmd-line-utils/readline/kill.c:
Import readline-5.0
cmd-line-utils/readline/macro.c:
Import readline-5.0
cmd-line-utils/readline/mbutil.c:
Import readline-5.0
cmd-line-utils/readline/misc.c:
Import readline-5.0
cmd-line-utils/readline/nls.c:
Import readline-5.0
cmd-line-utils/readline/parens.c:
Import readline-5.0
cmd-line-utils/readline/posixdir.h:
Import readline-5.0
cmd-line-utils/readline/readline.c:
Import readline-5.0
cmd-line-utils/readline/readline.h:
Import readline-5.0
cmd-line-utils/readline/rldefs.h:
Import readline-5.0
cmd-line-utils/readline/rlmbutil.h:
Import readline-5.0
cmd-line-utils/readline/rlprivate.h:
Import readline-5.0
cmd-line-utils/readline/rlstdc.h:
Import readline-5.0
cmd-line-utils/readline/rltty.c:
Import readline-5.0
cmd-line-utils/readline/rltty.h:
Import readline-5.0
cmd-line-utils/readline/rltypedefs.h:
Import readline-5.0
cmd-line-utils/readline/search.c:
Import readline-5.0
cmd-line-utils/readline/shell.c:
Import readline-5.0
cmd-line-utils/readline/signals.c:
Import readline-5.0
cmd-line-utils/readline/terminal.c:
Import readline-5.0
cmd-line-utils/readline/text.c:
Import readline-5.0
cmd-line-utils/readline/tilde.c:
Import readline-5.0
cmd-line-utils/readline/undo.c:
Import readline-5.0
cmd-line-utils/readline/util.c:
Import readline-5.0
cmd-line-utils/readline/vi_mode.c:
Import readline-5.0
cmd-line-utils/readline/xmalloc.c:
Import readline-5.0
Diffstat (limited to 'cmd-line-utils/readline/bind.c')
-rw-r--r-- | cmd-line-utils/readline/bind.c | 156 |
1 files changed, 115 insertions, 41 deletions
diff --git a/cmd-line-utils/readline/bind.c b/cmd-line-utils/readline/bind.c index 0e8efc5c636..15d0e4e3a65 100644 --- a/cmd-line-utils/readline/bind.c +++ b/cmd-line-utils/readline/bind.c @@ -19,9 +19,16 @@ is generally kept in a file called COPYING or LICENSE. If you do not have a copy of the license, write to the Free Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ + #define READLINE_LIBRARY -#include "config_readline.h" +#if defined (__TANDEM) +# include <floss.h> +#endif + +#if defined (HAVE_CONFIG_H) +# include <config.h> +#endif #include <stdio.h> #include <sys/types.h> @@ -146,6 +153,34 @@ rl_bind_key_in_map (key, function, map) return (result); } +/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right + now, this is always used to attempt to bind the arrow keys, hence the + check for rl_vi_movement_mode. */ +int +rl_bind_key_if_unbound_in_map (key, default_func, kmap) + int key; + rl_command_func_t *default_func; + Keymap kmap; +{ + char keyseq[2]; + + keyseq[0] = (unsigned char)key; + keyseq[1] = '\0'; + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap)); +} + +int +rl_bind_key_if_unbound (key, default_func) + int key; + rl_command_func_t *default_func; +{ + char keyseq[2]; + + keyseq[0] = (unsigned char)key; + keyseq[1] = '\0'; + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap)); +} + /* Make KEY do nothing in the currently selected keymap. Returns non-zero in case of error. */ int @@ -198,9 +233,30 @@ rl_unbind_command_in_map (command, map) } /* Bind the key sequence represented by the string KEYSEQ to + FUNCTION, starting in the current keymap. This makes new + keymaps as necessary. */ +int +rl_bind_keyseq (keyseq, function) + const char *keyseq; + rl_command_func_t *function; +{ + return (rl_generic_bind (ISFUNC, keyseq, (char *)function, _rl_keymap)); +} + +/* Bind the key sequence represented by the string KEYSEQ to FUNCTION. This makes new keymaps as necessary. The initial place to do bindings is in MAP. */ int +rl_bind_keyseq_in_map (keyseq, function, map) + const char *keyseq; + rl_command_func_t *function; + Keymap map; +{ + return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map)); +} + +/* Backwards compatibility; equivalent to rl_bind_keyseq_in_map() */ +int rl_set_key (keyseq, function, map) const char *keyseq; rl_command_func_t *function; @@ -209,6 +265,40 @@ rl_set_key (keyseq, function, map) return (rl_generic_bind (ISFUNC, keyseq, (char *)function, map)); } +/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right + now, this is always used to attempt to bind the arrow keys, hence the + check for rl_vi_movement_mode. */ +int +rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, kmap) + const char *keyseq; + rl_command_func_t *default_func; + Keymap kmap; +{ + rl_command_func_t *func; + + if (keyseq) + { + func = rl_function_of_keyseq (keyseq, kmap, (int *)NULL); +#if defined (VI_MODE) + if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode) +#else + if (!func || func == rl_do_lowercase_version) +#endif + return (rl_bind_keyseq_in_map (keyseq, default_func, kmap)); + else + return 1; + } + return 0; +} + +int +rl_bind_keyseq_if_unbound (keyseq, default_func) + const char *keyseq; + rl_command_func_t *default_func; +{ + return (rl_bind_keyseq_if_unbound_in_map (keyseq, default_func, _rl_keymap)); +} + /* Bind the key sequence represented by the string KEYSEQ to the string of characters MACRO. This makes new keymaps as necessary. The initial place to do bindings is in MAP. */ @@ -346,7 +436,7 @@ rl_translate_keyseq (seq, array, len) { register int i, c, l, temp; - for (i = l = 0; (c = seq[i]); i++) + for (i = l = 0; c = seq[i]; i++) { if (c == '\\') { @@ -678,7 +768,7 @@ _rl_read_file (filename, sizep) /* Re-read the current keybindings file. */ int rl_re_read_init_file (count, ignore) - int count __attribute__((unused)), ignore __attribute__((unused)); + int count, ignore; { int r; r = rl_read_init_file ((const char *)NULL); @@ -900,7 +990,7 @@ parser_if (args) /* Invert the current parser state if there is anything on the stack. */ static int parser_else (args) - char *args __attribute__((unused)); + char *args; { register int i; @@ -910,9 +1000,15 @@ parser_else (args) return 0; } +#if 0 /* Check the previous (n - 1) levels of the stack to make sure that we haven't previously turned off parsing. */ for (i = 0; i < if_stack_depth - 1; i++) +#else + /* Check the previous (n) levels of the stack to make sure that + we haven't previously turned off parsing. */ + for (i = 0; i < if_stack_depth; i++) +#endif if (if_stack[i] == 1) return 0; @@ -925,7 +1021,7 @@ parser_else (args) _rl_parsing_conditionalized_out from the stack. */ static int parser_endif (args) - char *args __attribute__((unused)); + char *args; { if (if_stack_depth) _rl_parsing_conditionalized_out = if_stack[--if_stack_depth]; @@ -1048,7 +1144,7 @@ rl_parse_and_bind (string) { int passc = 0; - for (i = 1; (c = string[i]); i++) + for (i = 1; c = string[i]; i++) { if (passc) { @@ -1124,7 +1220,7 @@ rl_parse_and_bind (string) { int delimiter = string[i++], passc; - for (passc = 0; (c = string[i]); i++) + for (passc = 0; c = string[i]; i++) { if (passc) { @@ -1159,7 +1255,7 @@ rl_parse_and_bind (string) } /* If this is a new-style key-binding, then do the binding with - rl_set_key (). Otherwise, let the older code deal with it. */ + rl_bind_keyseq (). Otherwise, let the older code deal with it. */ if (*string == '"') { char *seq; @@ -1198,7 +1294,7 @@ rl_parse_and_bind (string) rl_macro_bind (seq, &funname[1], _rl_keymap); } else - rl_set_key (seq, rl_named_function (funname), _rl_keymap); + rl_bind_keyseq (seq, rl_named_function (funname)); free (seq); return 0; @@ -1279,10 +1375,11 @@ static struct { { "prefer-visible-bell", &_rl_prefer_visible_bell, V_SPECIAL }, { "print-completions-horizontally", &_rl_print_completions_horizontally, 0 }, { "show-all-if-ambiguous", &_rl_complete_show_all, 0 }, + { "show-all-if-unmodified", &_rl_complete_show_unmodified, 0 }, #if defined (VISIBLE_STATS) { "visible-stats", &rl_visible_stats, 0 }, #endif /* VISIBLE_STATS */ - { (char *)NULL, (int *)NULL, 0 } + { (char *)NULL, (int *)NULL } }; static int @@ -1351,7 +1448,7 @@ static struct { { "editing-mode", V_STRING, sv_editmode }, { "isearch-terminators", V_STRING, sv_isrchterm }, { "keymap", V_STRING, sv_keymap }, - { (char *)NULL, 0, 0 } + { (char *)NULL, 0 } }; static int @@ -1626,8 +1723,7 @@ rl_set_keymap_from_edit_mode () #endif /* VI_MODE */ } - -const char * +char * rl_get_keymap_name_from_edit_mode () { if (rl_editing_mode == emacs_mode) @@ -1637,7 +1733,7 @@ rl_get_keymap_name_from_edit_mode () return "vi"; #endif /* VI_MODE */ else - return "nope"; + return "none"; } /* **************************************************************** */ @@ -1649,7 +1745,7 @@ rl_get_keymap_name_from_edit_mode () /* Each of the following functions produces information about the state of keybindings and functions known to Readline. The info is always printed to rl_outstream, and in such a way that it can - be read back in (i.e., passed to rl_parse_and_bind (). */ + be read back in (i.e., passed to rl_parse_and_bind ()). */ /* Print the names of functions known to Readline. */ void @@ -1872,7 +1968,7 @@ rl_function_dumper (print_readably) fprintf (rl_outstream, "\n"); - for (i = 0; (name = names[i]); i++) + for (i = 0; name = names[i]; i++) { rl_command_func_t *function; char **invokers; @@ -1932,7 +2028,7 @@ rl_function_dumper (print_readably) the output in such a way that it can be read back in. */ int rl_dump_functions (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); @@ -2012,7 +2108,7 @@ rl_macro_dumper (print_readably) int rl_dump_macros (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); @@ -2102,7 +2198,7 @@ rl_variable_dumper (print_readably) the output in such a way that it can be read back in. */ int rl_dump_variables (count, key) - int count __attribute__((unused)), key __attribute__((unused)); + int count, key; { if (rl_dispatching) fprintf (rl_outstream, "\r\n"); @@ -2111,28 +2207,6 @@ rl_dump_variables (count, key) return (0); } -/* Bind key sequence KEYSEQ to DEFAULT_FUNC if KEYSEQ is unbound. Right - now, this is always used to attempt to bind the arrow keys, hence the - check for rl_vi_movement_mode. */ -void -_rl_bind_if_unbound (keyseq, default_func) - const char *keyseq; - rl_command_func_t *default_func; -{ - rl_command_func_t *func; - - if (keyseq) - { - func = rl_function_of_keyseq (keyseq, _rl_keymap, (int *)NULL); -#if defined (VI_MODE) - if (!func || func == rl_do_lowercase_version || func == rl_vi_movement_mode) -#else - if (!func || func == rl_do_lowercase_version) -#endif - rl_set_key (keyseq, default_func, _rl_keymap); - } -} - /* Return non-zero if any members of ARRAY are a substring in STRING. */ static int substring_member_of_array (string, array) |