From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21736 invoked by alias); 11 Dec 2017 09:41:32 -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: 42108 Received: (qmail 4707 invoked by uid 1010); 11 Dec 2017 09:41:32 -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.122573 secs); 11 Dec 2017 09:41:32 -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 20171211094121euoutp015c369a974868646e76707076eefaf08a~-NBjSqcl83054530545euoutp01u DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1512985281; bh=ep45hZ65WSCkQBbEBm3ppD6Ft9xBzgKmu/H7NQV6Apc=; h=Date:From:To:Subject:In-reply-to:References:From; b=UAJdxwMHf4G+Jg5AlLAxEnUYxWn24pDdOjApTz6B1+lqtCIslvPmTQJcAbHDIyhE6 6gE2hkIok/HCqB1OJxFnXItcBpbQnS0RoLzBHrzU+HPb5KRFXzfKLJKkiF0jUsaoV+ tXg2V6g2UUGfk8Qj8r0Toedna8vBEa5rFY2Z7L8k= X-AuditID: cbfec7f4-f790c6d0000075d3-d1-5a2e52c0eaba Date: Mon, 11 Dec 2017 09:41:16 +0000 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: [BUG] Anonymous functions cause funcfiletrace to produce function-relative line numbers Message-id: <20171211094116.48e29012@pwslap01u.europe.root.pri> In-reply-to: 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+NgFnrHIsWRmVeSWpSXmKPExsWy7djP87oHgvSiDHq3SlscbH7I5MDoserg B6YAxigum5TUnMyy1CJ9uwSujCNLvrIV/OKpWLHdpIHxJmcXIyeHhICJxI/Fq9kgbDGJC/fW g9lCAksZJY5OVOpi5AKye5kkzjzZygTT8GnGEjaIxDJGiXWnLzFBONOYJP5PncIK4ZxhlLjw tZ0RwjnLKPH97XNGkH4WAVWJB30gVZwcbAKGElM3zQaLiwiIS5xde54FxBYWSJPY/fArWJxX wF6if/drsDingLVEx8FT7CA2v4C+xNW/n6BuspeYeeUMVL2gxI/J98DqmQV0JLZte8wOYctL bF7zlhnkIAmBOWwS19d8YoVodpE4/u09NASEJV4d38IOYctIXJ7czQJh9zNKPOn2hWiewShx +swOqAZrib7bFxkhNvBJTNo2HWgDB1CcV6KjTQiixEPizOcVUHMcJdZvPQcNlT5GieuNxxkn MCrMQnL4LCSHz0Jy+AJG5lWMIqmlxbnpqcUmesWJucWleel6yfm5mxiBqeD0v+NfdjAuPmZ1 iFGAg1GJh3fBbN0oIdbEsuLK3EOMEhzMSiK8pn5AId6UxMqq1KL8+KLSnNTiQ4zSHCxK4ry2 UW2RQgLpiSWp2ampBalFMFkmDk6pBkb9aGnZyL+yUT/uuZ1ydlOctLJh0cbs25v6DnyecahA RXOyxA7bl7t/PGItMpv5aLlFuKn0G8lvs//m2zSvvpwqWbP8pect+U/PtPY6aMR1Gcty7f11 ZPNincntHwzyT3Rzmm6K/jBVcx+/96lG01T2s5dUShQkq1oCyhdP6lE7ZHfWNiKQ/74SS3FG oqEWc1FxIgBdO8upAQMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrHLMWRmVeSWpSXmKPExsVy+t/xy7r7g/SiDCYs0rA42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGUeWfGUr+MVTsWK7SQPjTc4uRk4OCQETiU8zlrBB2GISF+6t B7OFBJYwSjy+nNXFyAVkz2CSWP11MguEc45RYumeGSwQVWcZJWa81gSxWQRUJR70TWEFsdkE DCWmbprNCGKLCIhLnF17HqxeWCBNYvfDr2BxXgF7if7dr8HinALWEh0HT7FDLJjAKPHzz1Ym kAS/gL7E1b+fmCDOs5eYeeUMVLOgxI/J98CamQW0JDZva2KFsOUlNq95ywxxnLrEjbu72Scw Cs9C0jILScssJC0LGJlXMYqklhbnpucWG+kVJ+YWl+al6yXn525iBIbytmM/t+xg7HoXfIhR gINRiYd3wWzdKCHWxLLiytxDjBIczEoivKZ+QCHelMTKqtSi/Pii0pzU4kOM0hwsSuK8vXtW RwoJpCeWpGanphakFsFkmTg4pRoY12jesH+Z6vtafdISR65TX95+uZ57seDdxO1dM9+ZTHNp /Zu52zpi2bmIpvN3ym9avZW+ubHnXITXsgeJ/cteKbv0Jnus2FxkPC97VnXr4fURi+56HVjz jp31le0uw+ur5CZuXXv56ay9nh7KR545ON2SnLqzseL3xdvnjrbpn004mR5tcLzhaoYSS3FG oqEWc1FxIgAqVku+YQIAAA== X-CMS-MailID: 20171211094119eucas1p1825ca8c90296bf52c992ed600babaf99 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20171210232854epcas2p2f9d4f0ac2ad31feb5a54d61da49e7140 X-RootMTR: 20171210232854epcas2p2f9d4f0ac2ad31feb5a54d61da49e7140 References: On Sun, 10 Dec 2017 17:28:03 -0600 dana wrote: > I was experimenting with line-number tracing today and i found that anonymous > functions have an undesirable effect on funcfiletrace: > > % cat -n tracetest.zsh > 1 # > 2 foo() { > 3 # > 4 # > 5 # > 6 # > 7 # > 8 () { () { print -rC2 -- $functrace $funcfiletrace } } > 9 } > 10 foo > % zsh tracetest.zsh > (anon):0 tracetest.zsh:6 > foo:6 tracetest.zsh:8 > tracetest.zsh:10 tracetest.zsh:10 > > Note that the top call from (anon) is listed as tracetest.zsh:6 (actually the > relative line number within the function foo) rather than the expected > tracetest.zsh:8 (the absolute line number within the file). I don't think this is just anonymous functions; I think the problem is the temptation to use nested functions is just greater with anonymous functions. Perhaps...? pws diff --git a/Src/exec.c b/Src/exec.c index fc6d02d..03b7f3d 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -5669,11 +5669,11 @@ 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 = funcstack->flineno + shfunc->lineno; 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;