From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25470 invoked by alias); 29 Sep 2016 16:24:30 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 39502 Received: (qmail 22279 invoked from network); 29 Sep 2016 16:24:30 -0000 X-Qmail-Scanner-Diagnostics: from mailout2.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.12):SA:0(-3.0/5.0):. Processed in 0.456501 secs); 29 Sep 2016 16:24:30 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-3.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at samsung.com does not designate permitted sender hosts) X-AuditID: cbfec7ef-f79e76d000005b57-75-57ed4035cd95 Date: Thu, 29 Sep 2016 17:24:17 +0100 From: Peter Stephenson To: Zsh Hackers' List Subject: Re: Strange parameter visibility Message-id: <20160929172417.5022a014@pwslap01u.europe.root.pri> In-reply-to: <87bmzmtmzq.fsf@alfa.kjonca> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: quoted-printable X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsWy7djPc7qmDm/DDXY1CFkcbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujNavH1kLlvBUdO5xaWC8zNnFyMkhIWAisbD3LBOELSZx4d56 ti5GLg4hgWWMEnf+PmaEcHqZJGa+3MUC07Hxw0GEqrdz/zNBONOYJA493gOVOcMosfLNNRYI 5yyjxIJlT8C2sAioSvxbtZ4ZxGYTMJSYumk20BIODhEBbYn2j2IgYWEBTYkNKx+ygdi8AvYS L2ZvZwSxOYHik862soLY/AL6Elf/foI63F5i5pUzjBD1ghI/Jt8DO5UZqH7r7vXsELa2xJN3 F1hB7pEQ+M0m8f3qElaQvRICshKbDjBDzHGRePN8OZQtLPHq+BZ2CFtGorPjINSufkaJJ92+ EHNmMEqcPrODDSJhLdF3+yIjxDI+iUnbpjNDzOeV6GgTgijxkDh56ykjhO0o8f7XFpYJjIqz kJw9C8nZs5CcvYCReRWjSGppcW56arGhXnFibnFpXrpecn7uJkZgGjj97/j7HYxPm0MOMQpw MCrx8Aoovw0XYk0sK67MPcQowcGsJML7wwIoxJuSWFmVWpQfX1Sak1p8iFGag0VJnHfvgivh QgLpiSWp2ampBalFMFkmDk6pBsbKDXeDD3rNv/jhRVrRWd7jhz4mWR6qSPwxfwcP+/0V0/R3 nAj+GCXjrfRsbXJ1jHZxvr7f8fSVum+susJfKHwUv/yswPYV48Twtr9ZxldqeVzZ8lZp6Tn3 dYsJrpjfyqnYvZDpTJGkiFnol/JZb9i5xeVNDxixiN3vTPupn8CguKpE8tiLe0osxRmJhlrM RcWJAGmrkyv/AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCIsWRmVeSWpSXmKPExsVy+t/xa7rCDm/DDRZ+4LM42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twy2j9+pG1YAlPRecelwbGy5xdjJwcEgImEhs/HGSDsMUkLtxbD2RzcQgJLGGU eNrXwALhzGCSONu5lBnCOccoseXyd6jMWUaJHe9/sIL0swioSvxbtZ4ZxGYTMJSYumk2Yxcj B4eIgLZE+0cxkLCwgKbEhpUPwdbxCthLvJi9nRHE5gSKTzrbCjZGSKBOYsHfXnYQm19AX+Lq 309MEOfZS8y8coYRoldQ4sfkeywgNrOAusSkeYuYIWxtiSfvLkDNUZe4cXc3+wRG4VlIWmYh aZmFpGUBI/MqRpHU0uLc9NxiQ73ixNzi0rx0veT83E2MwBjaduzn5h2MlzYGH2IU4GBU4uEV UH4bLsSaWFZcmXuIUYKDWUmE94cFUIg3JbGyKrUoP76oNCe1+BCjKTBcJjJLiSbnA+M7ryTe 0MTQ3NLQyNjCwtzISEmct+TDlXAhgfTEktTs1NSC1CKYPiYOTqkGxs7TLi8nuRnY9V82/BV6 cLIt99ySNTtaFdlmaLdemSn8NYKvu/E520ano/v3M7n8ffvuKb9iir+yfdKJ2PwVc7qtZrzc u3VPO9thMZ8lXNZ7py8uE1je+stEPXJ99W5HbqHyW2F3AiPen+8p/LY7sWP9r+U1Rxqfa/lJ Xyh4fXFfFZfVkheHbJRYijMSDbWYi4oTAUgXFpG3AgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20160929162420eucas1p22b74d101c9b79466ba40d8f3ff64eadb X-Msg-Generator: CA X-Sender-IP: 182.198.249.179 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20160917181339eucas1p24d214aa618aa96b5a8ddfbf351598da6 X-RootMTR: 20160917181339eucas1p24d214aa618aa96b5a8ddfbf351598da6 References: <87bmzmtmzq.fsf@alfa.kjonca> On Sat, 17 Sep 2016 20:11:37 +0200 Kamil Jo=C5=84ca wrote: > --8<---------------cut here---------------start------------->8--- > %(x=3D1; x=3D2 | echo $x ; echo $x)=20 > 2 > 2 > --8<---------------cut here---------------end--------------->8--- >=20 > What there are "2"-s in second example? Try this. This isn't an optimisation gone awry --- we just plain miss out on checking that the LHS of the pipeline is supposed to run in the shell so we need to fork to do that, as we do in other cases. It's obviously never come up because the assigment is redundant, or should be. We might be able to renumber the WC_ codes to make this more efficient. pws diff --git a/Src/exec.c b/Src/exec.c index c79a278..e3915dd 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) >=3D WC_CURSH && (how & Z_SYNC)) { + if ((wc_code(code) >=3D WC_CURSH || wc_code(code) =3D=3D WC_ASSIGN) + && (how & Z_SYNC)) { int synch[2]; struct timeval bgtime; =20 diff --git a/Test/A01grammar.ztst b/Test/A01grammar.ztst index 921ff99..0b1085c 100644 --- a/Test/A01grammar.ztst +++ b/Test/A01grammar.ztst @@ -756,3 +756,10 @@ > print Stuff here >} >Stuff here + + x=3D1 + x=3D2 | echo $x + echo $x +0:Assignment-only current shell commands in LHS of pipelin +>1 +>1