From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26096 invoked by alias); 6 Aug 2018 09:39:28 -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: 43242 Received: (qmail 25043 invoked by uid 1010); 6 Aug 2018 09:39:27 -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 3.624614 secs); 06 Aug 2018 09:39:27 -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, SPF_HELO_PASS,SPF_PASS,T_DKIMWL_WL_HIGH,T_DKIM_INVALID 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 20180806092933euoutp02d2b8fc8ad9cc5c99d503ff774279f14d~IQZMQzCqx1974719747euoutp028 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1533547773; bh=I6eiT1krZxnol8hm6CWWY7LZwTjs5X9nEnaTkUThcH0=; h=Date:From:To:Subject:In-Reply-To:References:From; b=jgvNRtxyvCYab5651+0KLDrOKt7bu4ZupYvtbklya9H2QnUT8hEQmQl/QpaiWTwxC zq/L2ULQaflB61YfeAJULTN48pLGkKNMd3rKwZwBfcw8kr/pHLkAc7oc3wx7yncxnD dE/aYdsD0wS3HCC9QMmNAaAM8T0IdtFYn+PstRR4= X-AuditID: cbfec7f2-5e3ff70000001159-04-5b6814fc4cfa Date: Mon, 6 Aug 2018 10:29:29 +0100 From: Peter Stephenson To: Subject: Re: [PATCH 2/5] _hg: declare appropriate local parameters for ->string form In-Reply-To: <20180806092032.uizmxvlc2oku2ik6@tarpaulin.shahaf.local2> Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsWy7djPc7p/RDKiDTZPErE42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGVOXTmEsuMFT8fDOHMYGxrucXYycHBICJhJfv7UwdTFycQgJ rGCUmPPtDSuE08cksXfDCUaQKiGBXiaJ7RfVuhg5wDrWnTWGqFnOKPG0aTdCzbMf5RCJ04wS z56fZoFwzjNK/J2/CKyKRUBFYkrLdjYQm03AUGLqptlgcREBSYlrzafBbGGBMIndPctZQGxO ATeJpVd6GUE28wsISVxotoU4217i6J6TTCA2r4CgxMmZT8DKmQXkJba/ncMMsldC4DObxPkd Z1ghisokbt08zwzR7CLRPmUCC4QtLPHq+BZ2CFtG4v/O+UwQze2MEmsmvWaHcHoYJTYdvcMI UWUt0Xf7IthFzAKaEut36UOCxVHi538bCJNP4sZbQYh7+CQmbZvODBHmlehoE4KYoSaxo2kr 4wRG5VlIPpiF5INZCOMXMDKvYhRPLS3OTU8tNsxLLdcrTswtLs1L10vOz93ECEwDp/8d/7SD 8eulpEOMAhyMSjy8HOwZ0UKsiWXFlbmHGCU4mJVEeFfMTo8W4k1JrKxKLcqPLyrNSS0+xCjN waIkzsunlRYtJJCeWJKanZpakFoEk2Xi4JRqYFx14kKn/iR1pkQ7r4X+B/QkWT6FlzmvPzTb UPjEVbaM+/7PG3+1lfVptb5+/Sy9MuDfjTWZy/gkvF5GOH7PFCxWmZlrfcVZ7+WN++77JTcW rKi+dcFlr/6dD90tj+a1Gx5tC1z5TCbGVvvZsmsHm9vC1Oq4DlZ7PjEts5kSfF7fv2T2KxbN ZUosxRmJhlrMRcWJAPFBB7z/AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e/4Xd3fIhnRBic6pCwONj9kcmD0WHXw A1MAY5SeTVF+aUmqQkZ+cYmtUrShhZGeoaWFnpGJpZ6hsXmslZGpkr6dTUpqTmZZapG+XYJe xtSlUxgLbvBUPLwzh7GB8S5nFyMHh4SAicS6s8ZdjFwcQgJLGSVmvL/H2sXICRSXkfh05SM7 hC0s8edaFxtEUTeTxP87c5khnNOMEn+3PGeEcM4zSiy8OBOsnUVARWJKy3Y2EJtNwFBi6qbZ jCC2iICkxLXm02C2sECYxO6e5SwgNq+As8SquVuYQWxOATeJpVd6oYa+Z5R4u/4xK8it/AJC EheabSFOspc4uuckE0SvoMTJmU/A5jAL6EicWHWMGcKWl9j+dg7zBEbhWUjKZiEpm4WkbAEj 8ypGkdTS4tz03GJDveLE3OLSvHS95PzcTYzAqNh27OfmHYyXNgYfYhTgYFTi4d3AkhEtxJpY VlyZe4hRgoNZSYR3xez0aCHelMTKqtSi/Pii0pzU4kOMpsDAmMgsJZqcD4zYvJJ4Q1NDcwtL Q3Njc2MzCyVx3vMGlVFCAumJJanZqakFqUUwfUwcnFINwHhacPPEbcsupq2aQXcZ/904yLpz chLDk/k+z+R17QUTzM8Gzw5JNXDZN/P9cdub6bvbk390ZvtzPIl33Ppz542jAsFSk/tzdx0v iSgR3rDLicvS/meikOFlk8PhC7S/FwgXmC2YKZ8uEpauxDzrqFKTzNeHIfXbi/efW+lZdP5D 1SGNJfyflFiKMxINtZiLihMBMqAg4qACAAA= Message-Id: <20180806092931eucas1p1c89ebf9f2ee4f5bb40ac2c650cf4a6f2~IQZLFzTOa0396203962eucas1p1k@eucas1p1.samsung.com> X-CMS-MailID: 20180806092931eucas1p1c89ebf9f2ee4f5bb40ac2c650cf4a6f2 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20180806092113epcas2p1be3488679902085a99d66331745e15d4 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180806092113epcas2p1be3488679902085a99d66331745e15d4 References: <20180806072813.5051-1-av6@dwimlabs.net> <20180806072813.5051-3-av6@dwimlabs.net> <20180806092032.uizmxvlc2oku2ik6@tarpaulin.shahaf.local2> On Mon, 6 Aug 2018 09:20:32 +0000 Daniel Shahaf wrote: > Anton Shestakov wrote on Mon, Aug 06, 2018 at 15:28:10 +0800: > > && ret=0 is also needed (not sure why, the help page doesn't explain > > it), otherwise completing `hg diff -` doesn't look right. > > Completion functions are supposed to return 0 if they added at least > one match and non-zero otherwise. It's common for completion > functions to have the following form: > > local ret=1 > _foo && ret=0 > return ret > > (usually with some code before/after the call to _foo) > > Simply adding '&&ret=0' without declaring 'ret' local is a bug: it > sets the variable in the caller's scope. Furthermore, if 'ret' were > declared local, setting it to 0 without using it afterwards would > naturally have no effect. > > I'm not sure what the correct fix is. I don't see why it isn't just a local question in _hg_cmd_revert? It needs to declare ret and combine the effect with the stuff in the following block, then return ret explicitly. I wouldn't be surprised if _hg_cmd_resolve just above needed something similar. > To -workers, couldn't we write a wrapper such as the following: > > _added_matches_p() { > local nmatches=$compstate[nmatches] > "$@" > (( nmatches < $compstate[nmatches] )) > } > > to reduce the need to manage $ret in every single layer of the > callstack? Are you suggesting avoiding looking at the return value, but looking at what its effect would have been at the point where you would have looked it? pws