From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15623 invoked from network); 21 Apr 1998 11:40:59 -0000 Received: from math.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 21 Apr 1998 11:40:59 -0000 Received: (from list@localhost) by math.gatech.edu (8.8.5/8.8.5) id HAA02838; Tue, 21 Apr 1998 07:36:41 -0400 (EDT) Resent-Date: Tue, 21 Apr 1998 07:36:41 -0400 (EDT) Message-Id: <199804211136.NAA24726@sgi.ifh.de> To: zsh-workers@math.gatech.edu (Zsh hackers list) Subject: Re: zsh-3.1.2-zefram4 In-reply-to: "Andrew Main"'s message of "Mon, 20 Apr 1998 20:49:37 MST." <199804201949.UAA21486@taos.demon.co.uk> Date: Tue, 21 Apr 1998 13:36:37 +0200 From: Peter Stephenson Resent-Message-ID: <"1C8AK2.0.Hi.8J8Fr"@math> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3851 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu Andrew Main wrote: > Precedence. ^ binds tighter than /, | and so on. ~ binds looser than > anything except |. You made a ^ immediately after a ( bind looser > than *anything*, which made "(^foo|bar)" and "((|)^foo|bar)" behave > differently. Now I remember what was hiding in `I've forgotten exactly what I did'. > >`(foo~bar)BAZ' is actually treated as > >> `fooBAZ~barBAZ', rather than the exclusion being properly localised. > >?????? How could it possibly mean anything else? > > It matters when what follows the parentheses has more than one way to > match. This includes the case of having two negations in the pattern or, > and this is the killer, a negation inside a loop. Consider "(*~foo)b*" > versus "*b*~foob*" -- "foobb" should match the former ("foob" matches > "(*~foo)") but not the latter. I've got it now. Maybe I can even broadly see how to fix it. -- Peter Stephenson Tel: +39 50 844536 WWW: http://www.ifh.de/~pws/ Gruppo Teorico, Dipartimento di Fisica Piazza Torricelli 2, 56100 Pisa, Italy