From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3846 invoked from network); 14 Jan 2002 19:03:18 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 14 Jan 2002 19:03:18 -0000 Received: (qmail 20790 invoked by alias); 14 Jan 2002 19:03:13 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 16456 Received: (qmail 20779 invoked from network); 14 Jan 2002 19:03:12 -0000 From: "Bart Schaefer" Message-Id: <1020114190307.ZM18938@candle.brasslantern.com> Date: Mon, 14 Jan 2002 19:03:07 +0000 In-Reply-To: <13601.1011033792@csr.com> Comments: In reply to Peter Stephenson "Re: PATCH: updated _zstyle and cleanup of related stuff" (Jan 14, 6:43pm) References: <13601.1011033792@csr.com> X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.dk (Zsh hackers list) Subject: Re: PATCH: updated _zstyle and cleanup of related stuff MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jan 14, 6:43pm, Peter Stephenson wrote: } Subject: Re: PATCH: updated _zstyle and cleanup of related stuff } } "Bart Schaefer" wrote: } > See the thread beginning with zsh-workers/15950. } } I think we can do (#q) as proposed there, except as I already said, I'd } prefer simply to ignore (#q) where it isn't treated as a glob qualifier Hm. Where, exactly, would it not be treated as one? You mean that, at least for now, you won't implement my `*(#qG)/*(#q.^G)' example? } i.e. gets through to the pattern code, since it means you no longer need to } rewrite glob patterns to test against the filenames, which I consider a } highly desirable feature. I'm not sure I follow that. } Causing an error if the (#q) gets through to the pattern code would be } fairly simple, however. In fact, it should be no work at all? At the moment: schaefer<501> setopt extendedglob schaefer<502> echo foo(#q)bar zsh: bad pattern: foo(#q)bar } The natural rule for bareglobs is that they work if and only if they appear } at the end, if and only if BAREGLOBQUAL is set, so (.)(#q*) is just one } qualifier, but (#q*)(.) is two. I agree. } The only hairy bit of implementing this is that we'll need an extra level } of logic to handle the logical and of different qualifiers. As I said, I } don't think the rule of applying them `as if they appeared in a single } list' is rational --- treating (#q/,*)(#qW) as (#q/,*W) doesn't seem to } make sense to me. I agree with that, too. It should be treated as (#q/W,*W), I think. Just distribute the ANDs over the ORs when combining them. -- 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