summaryrefslogtreecommitdiff
path: root/builtins/bind.def
diff options
context:
space:
mode:
Diffstat (limited to 'builtins/bind.def')
-rw-r--r--builtins/bind.def20
1 files changed, 15 insertions, 5 deletions
diff --git a/builtins/bind.def b/builtins/bind.def
index 6b8ac56b..5adfe381 100644
--- a/builtins/bind.def
+++ b/builtins/bind.def
@@ -7,7 +7,7 @@ This file is part of GNU Bash, the Bourne Again SHell.
Bash 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 later
+Software Foundation; either version 2, or (at your option) any later
version.
Bash is distributed in the hope that it will be useful, but WITHOUT ANY
@@ -17,7 +17,7 @@ for more details.
You should have received a copy of the GNU General Public License along
with Bash; see the file COPYING. If not, write to the Free Software
-Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
$PRODUCES bind.c
@@ -26,7 +26,7 @@ $PRODUCES bind.c
$BUILTIN bind
$DEPENDS_ON READLINE
$FUNCTION bind_builtin
-$SHORT_DOC bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [keyseq:readline-function]
+$SHORT_DOC bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:shell-command] [keyseq:readline-function]
Bind a key sequence to a Readline function, or to a macro. The
syntax is equivalent to that found in ~/.inputrc, but must be
passed as a single argument: bind '"\C-x\C-r": re-read-init-file'.
@@ -40,6 +40,8 @@ Arguments we accept:
-p List functions and bindings in a form that can be
reused as input.
-r keyseq Remove the binding for KEYSEQ.
+ -x keyseq:shell-command Cause SHELL-COMMAND to be executed when KEYSEQ
+ is entered.
-f filename Read key bindings from FILENAME.
-q function-name Query about which keys invoke the named function.
-u function-name Unbind all keys which are bound to the named function.
@@ -93,6 +95,7 @@ extern int no_line_editing;
#define SFLAG 0x0200
#define SSFLAG 0x0400
#define UFLAG 0x0800
+#define XFLAG 0x1000
int
bind_builtin (list)
@@ -102,7 +105,7 @@ bind_builtin (list)
FILE *old_rl_outstream;
Keymap kmap, saved_keymap;
int flags, opt;
- char *initfile, *map_name, *fun_name, *unbind_name, *remove_seq;
+ char *initfile, *map_name, *fun_name, *unbind_name, *remove_seq, *cmd_seq;
if (no_line_editing)
return (EXECUTION_FAILURE);
@@ -122,7 +125,7 @@ bind_builtin (list)
rl_outstream = stdout;
reset_internal_getopt ();
- while ((opt = internal_getopt (list, "lvpVPsSf:q:u:m:r:")) != EOF)
+ while ((opt = internal_getopt (list, "lvpVPsSf:q:u:m:r:x:")) != EOF)
{
switch (opt)
{
@@ -167,6 +170,10 @@ bind_builtin (list)
case 'S':
flags |= SSFLAG;
break;
+ case 'x':
+ flags |= XFLAG;
+ cmd_seq = list_optarg;
+ break;
default:
builtin_usage ();
BIND_RETURN (EX_USAGE);
@@ -242,6 +249,9 @@ bind_builtin (list)
}
}
+ if (flags & XFLAG)
+ return_code = bind_keyseq_to_unix_command (cmd_seq);
+
/* Process the rest of the arguments as binding specifications. */
while (list)
{