From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9609 invoked by alias); 13 Jul 2017 16:08: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: X-Seq: 41420 Received: (qmail 13846 invoked from network); 13 Jul 2017 16:08:53 -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(-5.0/5.0):. Processed in 1.775676 secs); 13 Jul 2017 16:08: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=-5.0 required=5.0 tests=RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS 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: pass (ns1.primenet.com.au: SPF record at _spf.samsung.com designates 210.118.77.14 as permitted sender) X-AuditID: cbfec7ef-f796a6d00000373c-bb-59679b0fab12 Date: Thu, 13 Jul 2017 17:08:40 +0100 From: Peter Stephenson To: Peter Stephenson , zsh-workers@zsh.org Subject: Re: strange behavior in zsh 5.3.1 Message-id: <20170713170840.0e06c473@pwslap01u.europe.root.pri> In-reply-to: <20170713162621.0a2fd57a@pwslap01u.europe.root.pri> 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+NgFnrDIsWRmVeSWpSXmKPExsWy7djPc7r8s9MjDd4sNbE42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGec+Tmct6OGpmDRPpIHxAmcXIyeHhICJxJ4VE9ggbDGJC/fW A9lcHEICyxgl7u14yArh9DJJtM78zQbTsW9FF0LVi+WPoKqmMUlM+PqYGcI5wyjxbvNeqLKz jBIrF85kAulnEVCVeHV7JQuIzSZgKDF102xGEFtEwEWia9oXdhBbWEBLYvLWi6wgNq+AvUTv nSNA9RwcnAIOErs/84KE+QX0Ja7+/cQEcZK9xMwrZxghygUlfky+BzaeWUBHYtu2x+wQtrzE 5jVvwY6TEPjPJnGqdQ8byEwJAVmJTQeYIea4SCw93s8IYQtLvDq+hR3ClpG4PLmbBcLuZ5R4 0u0LMWcGo8TpMzug4WIt0Xf7IiPEMj6JSdumM0PM55XoaBOCKPGQ2DJ/JVS5o8SxWa/ZJzAq zkJy9iwkZ89CcvYCRuZVjCKppcW56anFhnrFibnFpXnpesn5uZsYgWng9L/j73cwPm0OOcQo wMGoxMP7Y2J6pBBrYllxZe4hRgkOZiUR3qUzgUK8KYmVValF+fFFpTmpxYcYpTlYlMR5eU9d ixASSE8sSc1OTS1ILYLJMnFwSjUwdprqvBa4c3D+ixU8k6eevh9wqKNc/9x+5aT6oHDzl8xx 336dyQ6bvWvFRuf2I08ajzt7uC1Oe9T9ZNZNQYnOr7ONzO3PnMp4erzF4wfXaT8ZqeS/7z22 x2x0Uli6MdxNp8Wv7+qByj1SBTWuZQIvdrMcP7JWsdglLTOmQ+vZz6Ongpxt3B70K7EUZyQa ajEXFScCAPZrO4L/AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsVy+t/xy7o8s9MjDRa9VLQ42PyQyYHRY9XB D0wBjFFuNhmpiSmpRQqpecn5KZl56bZKoSFuuhZKCnmJuam2ShG6viFBSgpliTmlQJ6RARpw cA5wD1bSt0twyzj3cTprQQ9PxaR5Ig2MFzi7GDk5JARMJPat6GKDsMUkLtxbD2RzcQgJLGGU uNF+hB3CmcEksaNlM1TmHKPEpt+NTBDOWUaJ1RePMYP0swioSry6vZIFxGYTMJSYumk2I4gt IuAi0TXtCzuILSygJTF560VWEJtXwF6i984RoHoODk4BB4ndn3khZt5hlOh7/QBsDr+AvsTV v5+YIO6zl5h55QwjRK+gxI/J98BqmIFmbt7WxAphy0tsXvMW7B4hAXWJG3d3s09gFJ6FpGUW kpZZSFoWMDKvYhRJLS3OTc8tNtIrTswtLs1L10vOz93ECIyibcd+btnB2PUu+BCjAAejEg/v j4npkUKsiWXFlbmHGCU4mJVEeJfOBArxpiRWVqUW5ccXleakFh9iNAUGzERmKdHkfGCE55XE G5oYmlsaGhlbWJgbGSmJ8079cCVcSCA9sSQ1OzW1ILUIpo+Jg1OqgbE856DkFpZNwTx+S1rS Xorv5V3Mdev+ZOYzk01MI07xTZ63TPHW07nmeYsYDs1PX8XJOOHb5I8blF9Ka14L8JStF1vw Wb/yY5K7bFTW1yZT+eDd3j3HGtckmgZOyVmx3/Bm+Lf5YhqBh74+CLF0+utc1rZftWrC8Q0m odMUdH78/xjyR7ezOEqJpTgj0VCLuag4EQAD60KbuAIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170713160844eucas1p2d4f685879b8f3a1f84dcfc997e7615db 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: 20170713150750epcas3p2abec52da71e68ecb3e6a48f349831ab4 X-RootMTR: 20170713150750epcas3p2abec52da71e68ecb3e6a48f349831ab4 References: <20170713162621.0a2fd57a@pwslap01u.europe.root.pri> On Thu, 13 Jul 2017 16:26:21 +0100 Peter Stephenson wrote: > On Thu, 13 Jul 2017 17:06:34 +0200 > Francesco Giordano wrote: > > > echo {1..10}{1.. > > Definitely a bug in brace handling, which the shell even picks up in > debug mode... > > glob.c:2248: BUG: unmatched brace in xpandbraces() > > I'm guessing the existing pair of braces make it cavalier about > interpreting the last one. It's slightly more complicated than that... the first expansion takes place, then the second should find there isn't a pair of braces left. However, we're not checking for the null at the end of the string properly, and if we skip that we find a brace a bit later on in memory. It's not supposed to do that. pws diff --git a/Src/glob.c b/Src/glob.c index af5d082..c9ec97e 100644 --- a/Src/glob.c +++ b/Src/glob.c @@ -2194,6 +2194,8 @@ bracechardots(char *str, convchar_t *c1p, convchar_t *c2p) pnext[0] != '.' || pnext[1] != '.') return 0; pnext += 2; + if (!*pnext) + return 0; if (itok(*pnext)) { if (*pnext == Inbrace) return 0; diff --git a/Test/D09brace.ztst b/Test/D09brace.ztst index 3e667a8..580ed43 100644 --- a/Test/D09brace.ztst +++ b/Test/D09brace.ztst @@ -112,3 +112,7 @@ print -r left{[..]}right 0:{char..char} ranges with tokenized characters >left[right left\right left]right + + print -r {1..10}{.. +0:Unmatched braces after matched braces are left alone. +>1{.. 2{.. 3{.. 4{.. 5{.. 6{.. 7{.. 8{.. 9{.. 10{..