From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24505 invoked from network); 6 Jun 2000 04:09:19 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 6 Jun 2000 04:09:19 -0000 Received: (qmail 197 invoked by alias); 6 Jun 2000 04:08:57 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11763 Received: (qmail 190 invoked from network); 6 Jun 2000 04:08:55 -0000 From: "Bart Schaefer" Message-Id: <1000606040813.ZM25973@candle.brasslantern.com> Date: Tue, 6 Jun 2000 04:08:13 +0000 In-Reply-To: <393C2510.5F7D3880@u.genie.co.uk> Comments: In reply to Oliver Kiddle "PATCH: _urls and _rpm" (Jun 5, 11:09pm) References: <393C2510.5F7D3880@u.genie.co.uk> X-Mailer: Z-Mail (5.0.0 30July97) To: Zsh workers Subject: zparseopts (Re: PATCH: _urls and _rpm) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jun 5, 11:09pm, Oliver Kiddle wrote: } Subject: PATCH: _urls and _rpm } } It would be useful if zparseopts returned 0 only if it found the option } specified so I didn't need to use (( $#glob )) but we'd have to decide } how it would act with more than one option specified. No, that's no good. The whole point of calling it zparseOPTS is that the things it is parsing are *optional*. It returns nonzero only for things that are real mistakes. } +zparseopts -D -E 'g:=glob' ^ ^ Why the quotes? } +(( $#glob )) || glob=( -g '*(^/)' ) You could use : ${(A)=glob:=-g '*(^/)'} instead. What I can't decide is whether I like the behavior of emptying the array when no matching option is found. E.g. sometimes I think I'd like to be able to say glob=(-g '*(^/)') zparseopts -D -E g:=glob and have $glob be unchanged unless a -g really was given. Then I think about it some more and decide maybe not. Then I think about it some more and ... -- Bart Schaefer Brass Lantern Enterprises http://www.well.com/user/barts http://www.brasslantern.com Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net