about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBart Schaefer <barts@users.sourceforge.net>2000-10-21 03:15:36 +0000
committerBart Schaefer <barts@users.sourceforge.net>2000-10-21 03:15:36 +0000
commit9bf7fb75c55d3ac23c47d5af0d96f4e1af727222 (patch)
treea2cec68677fa6ff7f7acb313c20aa2ccdc4d6ad8
parente14a02f4408039ce7aa46ea085a7cf9156e648d0 (diff)
downloadzsh-9bf7fb75c55d3ac23c47d5af0d96f4e1af727222.tar.gz
zsh-9bf7fb75c55d3ac23c47d5af0d96f4e1af727222.tar.xz
zsh-9bf7fb75c55d3ac23c47d5af0d96f4e1af727222.zip
Fix "vared -h" in shell scripts.
-rw-r--r--ChangeLog5
-rw-r--r--Src/Zle/zle_main.c2
-rw-r--r--Src/hist.c9
3 files changed, 13 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 1115ac882..f21d76331 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2000-10-20  Bart Schaefer  <schaefer@zsh.org>
+
+	* 13055: Src/hist.c, Src/Zle/zle_main.c: Fix `vared -h' for non-
+	interactive shells (scripts).
+
 2000-10-19  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 13036: Completion/Commands/_bash_completions,
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index e02ea14b8..675dda63e 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -903,7 +903,7 @@ bin_vared(char *name, char **args, char *ops, int func)
     if (ops['e'])
 	isfirstln = 1;
     if (ops['h'])
-	hbegin(1);
+	hbegin(2);
     t = (char *) zleread(p1, p2, ops['h'] ? ZLRF_HISTORY : 0);
     if (ops['h'])
 	hend(NULL);
diff --git a/Src/hist.c b/Src/hist.c
index 4d803c0bd..9149d479b 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -736,7 +736,12 @@ hbegin(int dohist)
 {
     isfirstln = isfirstch = 1;
     errflag = histdone = 0;
-    stophist = (!dohist || !interact || unset(SHINSTDIN)) ? 2 : 0;
+    if (!dohist)
+	stophist = 2;
+    else if (dohist != 2)
+	stophist = (!interact || unset(SHINSTDIN)) ? 2 : 0;
+    else
+	stophist = 0;
     if (stophist == 2 || (inbufflags & INP_ALIAS)) {
 	chline = hptr = NULL;
 	hlinesz = 0;
@@ -764,7 +769,7 @@ hbegin(int dohist)
 
     if (hist_ring && !hist_ring->ftim)
 	hist_ring->ftim = time(NULL);
-    if (interact && isset(SHINSTDIN) && !strin) {
+    if ((dohist == 2 || (interact && isset(SHINSTDIN))) && !strin) {
 	histactive = HA_ACTIVE;
 	attachtty(mypgrp);
 	linkcurline();