From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2016 invoked by alias); 14 Dec 2017 10:37:05 -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: 42123 Received: (qmail 10353 invoked by uid 1010); 14 Dec 2017 10:37:05 -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(-6.9/5.0):. Processed in 6.450298 secs); 14 Dec 2017 10:37:05 -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 mailout2.w1.samsung.com 20171214102832euoutp02d26b395fe81ef3c0af9a7c9c115b77d0~AImm0uwk62034320343euoutp02C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1513247312; bh=k06UN22/ZtT1R60eiBMBjd6vc77VOLpDo32+JWpxRKA=; h=Date:From:To:Subject:In-reply-to:References:From; b=KwrvPUvorxvDOnjjqLb3rlXhtKg52ug6acEDW6SprZVKb2wcYjnFKYxNLDswb5z/5 s/aR2wDfWkFhzvZyKXzrnRejgDMyaAJQbYjd1wX5vy1iaYLoTmof0r9pncLNYbE6/a E+vceJZ7xPdHyRGoWBppkY9O8oksov8Bbh+C9kTA= X-AuditID: cbfec7f5-f79d06d0000031c7-ea-5a32524e6583 Date: Thu, 14 Dec 2017 10:28:27 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: [BUG] Strange auto-load behaviour when function name contains hyphen Message-id: <20171214102827.78f302fd@pwslap01u.europe.root.pri> In-reply-to: <20171214100142.27516153@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+NgFnrHIsWRmVeSWpSXmKPExsWy7djPc7p+QUZRBod7rSwONj9kcmD0WHXw A1MAYxSXTUpqTmZZapG+XQJXxv3dXUwFv3krvrTOYG1gPMfVxcjJISFgItF/dwMLhC0mceHe erYuRi4OIYGljBLH35xlh3B6mSSebehih+nYsKSFESKxDKiqbzUjSEJIYBqTxMV+BYjEJkaJ 1QsWsEI4Zxkl5t2+D9bOIqAq0bFyL9hCNgFDiambZoN1iwiIS5xdex4sLiwQLLGmZxVYnFfA XuLIh+VsIDangIPE1EfnwOL8AvoSV/9+YoI4yV5i5pUzUPWCEj8m3wObwyygI7Ft22N2CFte YvOat8wQ9XPYJC6cFoewXSS+nNkMDQBhiVfHt0C9KSNxeXI3VLyfUeJJty/IMxICMxglTp/Z wQaRsJbou32REWIBn8SkbdOBFnAAxXklOtqEIEo8JPavaYCa6Shxfss0aNAdYZT4tPYa4wRG hVlI7p6F5O5ZSO5ewMi8ilEktbQ4Nz212FSvODG3uDQvXS85P3cTIzAVnP53/OsOxqXHrA4x CnAwKvHwbtA1jBJiTSwrrsw9xCjBwawkwqs2ESjEm5JYWZValB9fVJqTWnyIUZqDRUmc1zaq LVJIID2xJDU7NbUgtQgmy8TBKdXA6B3/9sFJW8fu/sBg1cWuDC4r3M1u/b257WTM9PlbL+gt v7Le/4u4wuUIQYM+fil+8aVOMY7uC4UrJxQ9uZq+gtX33p9C1webjs/+9M3CizFxjtOnj1u2 pWzmOKbxW+C6FEM/r72mt61txeFzMz//udfysKpTKnyP6UxFp49lzMw83VaOaqYqSizFGYmG WsxFxYkAMCvj5wEDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPLMWRmVeSWpSXmKPExsVy+t/xy7p+QUZRBv9milgcbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujPu7u5gKfvNWfGmdwdrAeI6ri5GTQ0LARGLDkhZGCFtM4sK9 9WxdjFwcQgJLGCUW/Wplh3BmMEl8bVzNBFIlJLCJUeLACjMI+yyjxJvrBSA2i4CqRMfKvSwg NpuAocTUTbPBpooIiEucXXseLC4sECyxpmcVWJxXwF7iyIflbCA2p4CDxNRH5xghlh1jlDg2 pw1sGb+AvsTVv5+YIM6zl5h55QxUs6DEj8n3wIYyC2hJbN7WxAphy0tsXvOWGeI4dYkbd3ez T2AUnoWkZRaSlllIWhYwMq9iFEktLc5Nzy020itOzC0uzUvXS87P3cQIDOZtx35u2cHY9S74 EKMAB6MSD+8GXcMoIdbEsuLK3EOMEhzMSiK8ahOBQrwpiZVVqUX58UWlOanFhxilOViUxHl7 96yOFBJITyxJzU5NLUgtgskycXBKNTDu+yzxQs/IXeTKHDmDvstM7uKZJxZNmff2c/RGE12n royGb2k/EjPkZwbdEL6p/sE/VNv/Q8vl36aZdQsuZh5Q3sd6dsqFUw7ftrbsb3S03Pzlc6jS z9ULjQLsSj8VXRBScbl+ZZGc8942g0b71C8fXlRLr1sYMDF2/q206vltglIzPrrN77ZVYinO SDTUYi4qTgQAp0riCWICAAA= X-CMS-MailID: 20171214102830eucas1p2e7df3672c7298fe500bee4c049046355 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20171214064805epcas2p196a185a6c3c5e66640833d8dfa15d593 X-RootMTR: 20171214064805epcas2p196a185a6c3c5e66640833d8dfa15d593 References: <990A7EB2-C4BA-4E3D-99B3-7DA40846CBD1@dana.is> <20171214100142.27516153@pwslap01u.europe.root.pri> On Thu, 14 Dec 2017 10:01:42 +0000 Peter Stephenson wrote: > + if (*ptr1 != *ptr2 && *ptr1 != Dash && *ptr1 != '-') Bart noticed the error here. I stared at for ages without noticing. pws diff --git a/Src/exec.c b/Src/exec.c index fc6d02d..eda1015 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -5669,11 +5669,13 @@ doshfunc(Shfunc shfunc, LinkList doshargs, int noreturnval) funcsave->fstack.caller = funcstack ? funcstack->name : dupstring(funcsave->argv0 ? funcsave->argv0 : argzero); funcsave->fstack.lineno = lineno; + funcsave->fstack.flineno = shfunc->lineno; + if (funcstack) + funcsave->fstack.flineno += funcstack->flineno; funcsave->fstack.prev = funcstack; funcsave->fstack.tp = FS_FUNC; funcstack = &funcsave->fstack; - funcsave->fstack.flineno = shfunc->lineno; funcsave->fstack.filename = getshfuncfile(shfunc); prog = shfunc->funcdef; @@ -5932,6 +5934,7 @@ stripkshdef(Eprog prog, char *name) { Wordcode pc; wordcode code; + char *ptr1, *ptr2; if (!prog) return NULL; @@ -5942,8 +5945,23 @@ stripkshdef(Eprog prog, char *name) return prog; pc++; code = *pc++; - if (wc_code(code) != WC_FUNCDEF || - *pc != 1 || strcmp(name, ecrawstr(prog, pc + 1, NULL))) + if (wc_code(code) != WC_FUNCDEF || *pc != 1) + return prog; + + /* + * See if name of function requested (name) is same as + * name of function in word code. name may still have "-" + * tokenised. + */ + ptr1 = name; + ptr2 = ecrawstr(prog, pc + 1, NULL); + while (*ptr1 && *ptr2) { + if (*ptr1 != *ptr2 && *ptr1 != Dash && *ptr2 != '-') + break; + ptr1++; + ptr2++; + } + if (*ptr1 || *ptr2) return prog; {