summaryrefslogtreecommitdiff
path: root/cmd-line-utils/readline/bind.c
diff options
context:
space:
mode:
authorunknown <jimw@mysql.com>2005-07-18 17:22:38 -0700
committerunknown <jimw@mysql.com>2005-07-18 17:22:38 -0700
commitbb2fb2af223453682932201e92b56f275fd8f039 (patch)
tree8f787c005becfbba10a82a9f9d1fad6130b0b38f /cmd-line-utils/readline/bind.c
parentc68257043108de5e58b7a769089036c6692b8df3 (diff)
downloadmariadb-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.c156
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)