From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29778 invoked by alias); 11 Dec 2017 12:01:53 -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: List-Unsubscribe: X-Seq: 42110 Received: (qmail 4767 invoked by uid 1010); 11 Dec 2017 12:01:53 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.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.11):SA:0(-6.9/5.0):. Processed in 4.214369 secs); 11 Dec 2017 12:01:53 -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=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,T_DKIM_INVALID, T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20171211120142euoutp01219195f82908dd7d1770a84bd6e350e9~-O8G1IL_10063500635euoutp017 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1512993703; bh=8OxALAiwJ1izoRryViUj4E/uZ1EUGlamSSpp8X562AY=; h=Date:From:To:Subject:In-reply-to:References:From; b=J5JDuuQdINnnfXIWn3PIr02qSDrwZAzP7zWDiiqJ8WFYs+rVjTalCwBYteR8AjFvX AXgESXP+2kSNZi9FlAYy4Y9HYihZoh0WJ7XYaoHM5vCSRmy1mjIJoM7bT6YAAGd0Yl A6HouwByTDLAkLy0Uq0mqZ1kSjM/EAdOYRBWogDk= X-AuditID: cbfec7f1-f793a6d00000326b-eb-5a2e73a6a283 Date: Mon, 11 Dec 2017 12:01:38 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: [BUG] Redirect between two parameter assignments causes misbehaviour Message-id: <20171211120138.4a2ff2ea@pwslap01u.europe.root.pri> In-reply-to: <86CB677F-70BF-43B2-8F6D-E8F0AC4C43A3@dana.is> 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="US-ASCII" Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsWy7djPc7rLivWiDHbMFLY42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGT/P72UuOMJe8fzOM8YGxjusXYycHBICJhIzNi1lhLDFJC7c W8/WxcjFISSwlFHiwPF1rBBOL5NEw6UJLF2MHGAdX1abQMSXMUrsnfUZqmMak8Spry+ZIZwz jBK7psxkhHDOMkrMn/SKBWQJi4CqxJ9Fq9hBbDYBQ4mpm2aDLRcREJc4u/Y8WI2wQLDEmiOL mUBsXgF7ib3fZ4PVcwpYSzy/swGshl9AX+Lq309MEIfbS8y8coYRol5Q4sfke2A1zAI6Etu2 PWaHsOUlNq95C3adhMACNonNG3eyQDS7SDz9uJwNwhaWeHV8CzuELSPR2XEQakE/o8STbl+I 5hmMEqfP7IBqsJbou32REWIDn8SkbdOZIYHEK9HRJgRR4iGx6O51qF2OEquntEFDpY9RYtLy uawTGBVmITl8FpLDZyE5fAEj8ypGkdTS4tz01GIjveLE3OLSvHS95PzcTYzAZHD63/GPOxjf n7A6xCjAwajEw7tgtm6UEGtiWXFl7iFGCQ5mJRFeUz+gEG9KYmVValF+fFFpTmrxIUZpDhYl cV7bqLZIIYH0xJLU7NTUgtQimCwTB6dUA+Pmh5L2ComWzXvfLHuo6b+pWkOa9xdjxD4JDfln dXofjgTW3942LWX79m9iGt15hkxHnyotYQrREn/xSrePdf/v/Ws5H/rtuHs4e8XMp7odLUs3 2G6orvm692lXQRGP9QrDhfJa56rYLU6zmGn6VWqLXpp1P9hJ8ajWoXuXYl99PP87JvjblAAl luKMREMt5qLiRACvQT6zAgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPLMWRmVeSWpSXmKPExsVy+t/xy7pLi/WiDDo+m1gcbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujJ/n9zIXHGGveH7nGWMD4x3WLkYODgkBE4kvq026GDmBTDGJ C/fWs4HYQgJLGCVeLHXuYuQCsmcwSayat5sNwjnHKLHv4RRGCOcso8T09S3sIC0sAqoSfxat ArPZBAwlpm6azQhiiwiIS5xde54FxBYWCJZYc2QxE4jNK2Avsff7bLB6TgFried3NrBADJ3A KPFrwlGwO/gF9CWu/v3EBHGfvcTMK2cYIZoFJX5Mvgc2lFlAS2LztiZWCFteYvOat8wQP6hL 3Li7m30Co/AsJC2zkLTMQtKygJF5FaNIamlxbnpusaFecWJucWleul5yfu4mRmAwbzv2c/MO xksbgw8xCnAwKvHwLpitGyXEmlhWXJl7iFGCg1lJhNfUDyjEm5JYWZValB9fVJqTWnyIUZqD RUmct3fP6kghgfTEktTs1NSC1CKYLBMHp1QDozHnyp/ObmbHVWetK9kv+uLRHf25zQdlg3Y5 OXtvfangser054KjB6+29FRd+aBV4OZWlDHhzO0Ci9s/zf+JMMvtSRV8wO0787OE5BqmwgV3 vVTUtSSDmKZM6WDkbVU6+jj9l30u+1GTi26dN3PvL9wV/M9BbfH+wKy4tPz8dcdqZM5ZHPkd rcRSnJFoqMVcVJwIAEpcOTliAgAA X-CMS-MailID: 20171211120141eucas1p2b6b74d8ffc4f599607755806a58705ed X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20171211001958epcas4p39fe7f2605374e3ea973e19b62beb9a9c X-RootMTR: 20171211001958epcas4p39fe7f2605374e3ea973e19b62beb9a9c References: <86CB677F-70BF-43B2-8F6D-E8F0AC4C43A3@dana.is> On Sun, 10 Dec 2017 18:19:18 -0600 dana wrote: > The following command produces no output (and returns with 0): > > % a=b 2> /dev/null c=d env This is certainly documented to work. As redirections at the start work OK I think the fix is as simple as this. diff --git a/Src/parse.c b/Src/parse.c index 5fe3ebd..6af2550 100644 --- a/Src/parse.c +++ b/Src/parse.c @@ -1848,6 +1848,10 @@ par_simple(int *cmplx, int nr) incmdpos = oldcmdpos; isnull = 0; assignments = 1; + } else if (IS_REDIROP(tok)) { + *cmplx = c = 1; + nr += par_redir(&r, NULL); + continue; } else break; zshlex(); diff --git a/Test/A04redirect.ztst b/Test/A04redirect.ztst index cb82751..b8105cf 100644 --- a/Test/A04redirect.ztst +++ b/Test/A04redirect.ztst @@ -622,3 +622,10 @@ >FOO >HERE >} + + a=b 2>/dev/null c=d + print $a + print $c +0:Redirect in the middle of assignments +>b +>d