diff options
author | Peter Stephenson <pws@zsh.org> | 2016-09-30 11:34:15 +0100 |
---|---|---|
committer | Peter Stephenson <pws@zsh.org> | 2016-09-30 11:34:15 +0100 |
commit | bb2bbcc944e5b2a089f27e9b988e1740a517cedd (patch) | |
tree | c16ac525ae35a97e466aa4f54cfe8e5e4b46f06b | |
parent | d08674ef8c8e4920c2ebfa02f0bef86812f051ee (diff) | |
download | zsh-bb2bbcc944e5b2a089f27e9b988e1740a517cedd.tar.gz zsh-bb2bbcc944e5b2a089f27e9b988e1740a517cedd.tar.xz zsh-bb2bbcc944e5b2a089f27e9b988e1740a517cedd.zip |
39517: back off 39502 (WC_ASSIGN causes fork in pipe).
This isn't a robust fix as WC_ASSIGNs simply precede the main wordcode.
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | Src/exec.c | 2 | ||||
-rw-r--r-- | Test/A01grammar.ztst | 15 |
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 |