about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Src/builtin.c6
2 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index be74b5bb8..aa5473e4d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-08  Bart Schaefer  <schaefer@zsh.org>
+
+	* 30786: Src/builtin.c: do not enter interactive history editing
+	or command execution if "fc" is called from a ZLE widget.
+
 2012-11-08  Peter Stephenson  <pws@csr.com>
 
 	* 30783: Src/lex.c: we don't want leading "="'s to be active when
@@ -311,5 +316,5 @@
 
 *****************************************************
 * This is used by the shell to define $ZSH_PATCHLEVEL
-* $Revision: 1.5755 $
+* $Revision: 1.5756 $
 *****************************************************
diff --git a/Src/builtin.c b/Src/builtin.c
index 8a83df711..90fe1a6c5 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -1414,6 +1414,12 @@ bin_fc(char *nam, char **argv, Options ops, int func)
 	unqueue_signals();
 	return 0;
     }
+
+    if (zleactive) {
+	zwarnnam(nam, "no interactive history within ZLE");
+	return 1;
+    }
+
     /* put foo=bar type arguments into the substitution list */
     while (*argv && equalsplit(*argv, &s)) {
 	Asgment a = (Asgment) zhalloc(sizeof *a);