From 6ce696f35236dc4c1b6249c6f1e7f64cc95a6046 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 29 Sep 2016 17:29:58 +0100 Subject: 39502: Fork for assignment in LHS of pipeline. foo=bar | stuff left the value of foo set to bar as we didn't realise we needed to fork. --- Src/exec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Src/exec.c') diff --git a/Src/exec.c b/Src/exec.c index c79a27895..e3915ddfe 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -1844,7 +1844,8 @@ 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 && (how & Z_SYNC)) { + if ((wc_code(code) >= WC_CURSH || wc_code(code) == WC_ASSIGN) + && (how & Z_SYNC)) { int synch[2]; struct timeval bgtime; -- cgit v1.2.3