about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--Src/exec.c2
-rw-r--r--Test/A01grammar.ztst15
3 files changed, 12 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index d6db9d982..ce891fc6b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2016-09-30  Peter Stephenson  <p.stephenson@samsung.com>
 
+	* 39517: back off 39502, this isn't a robust fix.
+
 	* 39498: Src/parmas.c,Src/zsh.h: use PRIVILEGED option to
 	decide on problematic parameter imports.
 
diff --git a/Src/exec.c b/Src/exec.c
index e253d7b9e..2714edbcb 100644
--- a/Src/exec.c
+++ b/Src/exec.c
@@ -1844,7 +1844,7 @@ execpline2(Estate state, wordcode pcode,
 	/* if we are doing "foo | bar" where foo is a current *
 	 * shell command, do foo in a subshell and do the     *
 	 * rest of the pipeline in the current shell.         */
-	if ((wc_code(code) >= WC_CURSH || wc_code(code) == WC_ASSIGN)
+	if ((wc_code(code) >= WC_CURSH)
 	    && (how & Z_SYNC)) {
 	    int synch[2];
 	    struct timeval bgtime;
diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst
index 0b1085c3e..1ad73c599 100644
--- a/Test/A01grammar.ztst
+++ b/Test/A01grammar.ztst
@@ -757,9 +757,12 @@
 >}
 >Stuff here
 
-  x=1
-  x=2 | echo $x
-  echo $x
-0:Assignment-only current shell commands in LHS of pipelin
->1
->1
+## This problem is hard to fix without significant changes to how
+## the shell forks for a pipeline.
+#
+#   x=1
+#   x=2 | echo $x
+#   echo $x
+# 0:Assignment-only current shell commands in LHS of pipelin
+# >1
+# >1