From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28595 invoked by alias); 13 Sep 2016 08:30:02 -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: 39305 Received: (qmail 12438 invoked from network); 13 Sep 2016 08:30:02 -0000 X-Qmail-Scanner-Diagnostics: from mailout4.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.14):SA:0(-2.2/5.0):. Processed in 0.450006 secs); 13 Sep 2016 08:30:02 -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=-2.2 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: cbfec7f1-f79f46d0000008eb-5f-57d7b9019014 Date: Tue, 13 Sep 2016 09:29:51 +0100 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: zsh heredoc crash Message-id: <20160913092951.7b222097@pwslap01u.europe.root.pri> In-reply-to: <20160912232522.GA16602@fujitsu.shahaf.local2> 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+NgFnrDIsWRmVeSWpSXmKPExsWy7djP87qMO6+HGxydLWFxsPkhkwOjx6qD H5gCGKO4bFJSczLLUov07RK4MjpaZrMXrGWr6DhwnrGB8T1LFyMnh4SAicStu8eZIGwxiQv3 1rOB2EICSxkl9s906mLkArJ7mSTmrX4H13B32g1GiMQyRolHXVdYIJxpTBKbLpxhgWg/wyhx 6qcSROIso8T078vAEiwCqhJzVjwG28cmYCgxddNsRhBbREBc4uza82A1wgJyEte/rgCr4RWw l/hw9yk7iM0pYC3xbtMqsPv4BfQlrv79BHW3vcTMK2cYIeoFJX5Mvgc2h1lAR2LbtsfsELa8 xOY1b5lBDpIQ+M8m0bvlAlARB5AjK7HpADPEHBeJ9t3vWSFsYYlXx7ewQ9gyEpcnd0O9388o 8aTbF2LODEaJ02d2sEEkrCX6bl9khFjGJzFp23RmiPm8Eh1tQhAlHhIfzvxihLAdJU7O/cY+ gVFxFpKzZyE5exaSsxcwMq9iFEktLc5NTy020itOzC0uzUvXS87P3cQITAOn/x3/uIPx/Qmr Q4wCHIxKPLwNq6+FC7EmlhVX5h5ilOBgVhLhTdp2PVyINyWxsiq1KD++qDQntfgQozQHi5I4 754FV8KFBNITS1KzU1MLUotgskwcnFINjJI/t2+PnWrl8HdxwhJZm4TC66Ldlx8LyyWKhb1T L1DaW956S+GRUMqT7b8rdM1+XHUUiPk4Of5vqOq8v+LWy09ErWLOT6k6FtWtKndw4bwPnzN2 mzd+Zr0xwXar8C3DAsfdafWqvrVPr/g8X246beIB1ZK6xNclps/+616/3L3vvqDswjiRp0os xRmJhlrMRcWJAL40clT/AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOIsWRmVeSWpSXmKPExsVy+t/xa7oXdlwPNzhyncfiYPNDJgdGj1UH PzAFMEa52WSkJqakFimk5iXnp2TmpdsqhYa46VooKeQl5qbaKkXo+oYEKSmUJeaUAnlGBmjA wTnAPVhJ3y7BLaOjZTZ7wVq2io4D5xkbGN+zdDFyckgImEjcnXaDEcIWk7hwbz1bFyMXh5DA EkaJrXefMkI4M5gk9l+8BOWcY5TYvPkQM4RzllFiXeMCsFksAqoSc1Y8ZgKx2QQMJaZumg02 V0RAXOLs2vNgNcICchLXv64Aq+EVsJf4cPcpO4jNKWAt8W7TKqjd95kk5r9ZAtbML6AvcfXv JyaIA+0lZl45wwjRLCjxY/I9sKHMAloSm7c1sULY8hKb17xlBrGFBNQlbtzdzT6BUXgWkpZZ SFpmIWlZwMi8ilEktbQ4Nz232EivODG3uDQvXS85P3cTIzCSth37uWUHY9e74EOMAhyMSjy8 DauvhQuxJpYVV+YeYpTgYFYS4U3adj1ciDclsbIqtSg/vqg0J7X4EKMpMGQmMkuJJucDozyv JN7QxNDc0tDI2MLC3MhISZx36ocr4UIC6YklqdmpqQWpRTB9TBycUg2MDuoW83MEjQR+tOyo 5NpWFRd91eR2EF/Cktup7d1r5nsGc2mslNdk+iC9wHH+J6E9PQea2g1naUxlnc28zrP04Kdj Z21cr8RV3AoR+Z/Us7SiapLQLYkr2V5/DlreEnl3rd83/sbk2IBnr9dsTeXrS+3Z+jrk9i0W 0Sf7/h/mUtx/tVvI/sBzJZbijERDLeai4kQAJN57tLoCAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20160913082952eucas1p2383f7668114c8f782d59f2e38f515017 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 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: 20160912232639eucas1p14a2672585f9eddbcbc1d5d8212dc6401 X-RootMTR: 20160912232639eucas1p14a2672585f9eddbcbc1d5d8212dc6401 References: <25855010.qczLe9GZ8n@kdudka-nb> <20160909173515.4cb8392e@pwslap01u.europe.root.pri> <160909180250.ZM19582@torch.brasslantern.com> <20160912232522.GA16602@fujitsu.shahaf.local2> On Mon, 12 Sep 2016 23:25:22 +0000 Daniel Shahaf wrote: > There seems to be a logic error in gethere(): > > if (!errflag) { > /* Retain any user interrupt error */ > errflag = ef | (errflag & ERRFLAG_INT); > } I think the intention is the following: - If there's a (synchronous) error from parsestr(), return that. - If there isn't, keep the previous error status, but also keep any (asynchronous) interrupt flag. pws diff --git a/Src/exec.c b/Src/exec.c index 2e251b9..cfd633a 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -4034,7 +4034,7 @@ gethere(char **strp, int typ) parsestr(&buf); - if (!errflag) { + if (!(errflag & ERRFLAG_ERROR)) { /* Retain any user interrupt error */ errflag = ef | (errflag & ERRFLAG_INT); }