From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20965 invoked from network); 17 Jun 2000 19:46:33 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 17 Jun 2000 19:46:33 -0000 Received: (qmail 18087 invoked by alias); 17 Jun 2000 19:46:25 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 11961 Received: (qmail 18079 invoked from network); 17 Jun 2000 19:46:23 -0000 From: "Bart Schaefer" Message-Id: <1000617194616.ZM12513@candle.brasslantern.com> Date: Sat, 17 Jun 2000 19:46:16 +0000 In-Reply-To: <1000617193154.ZM12252@candle.brasslantern.com> Comments: In reply to "Bart Schaefer" "Re: PATCH: make _urls magicequalsubst aware" (Jun 17, 7:31pm) References: <1000617193154.ZM12252@candle.brasslantern.com> X-Mailer: Z-Mail (5.0.0 30July97) To: zsh-workers@sunsite.auc.dk Subject: PATCH: magicequalsubst (Re: PATCH: make _urls magicequalsubst aware) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii On Jun 17, 7:31pm, Bart Schaefer wrote: } Subject: Re: PATCH: make _urls magicequalsubst aware } } On Jun 18, 3:34am, Tanaka Akira wrote: } } Subject: PATCH: make _urls magicequalsubst aware } } } } Hm. `g:=glob' should be quoted. } } g:=glob should have ANYTHING of `g:' and EXPRESSION of `glob'. There's } no expansion to be peformed on `glob'. How is the `=' getting taken to } be part of the EXPRESSION? This fixes that, so 11959 is now unecessary but harmless. Index: Src/subst.c =================================================================== @@ -307,7 +307,7 @@ mod_export void filesub(char **namptr, int assign) { - char *sub = NULL, *str, *ptr; + char *eql = NULL, *sub = NULL, *str, *ptr; int len; filesubstr(namptr, assign); @@ -316,7 +316,7 @@ return; if (assign & PF_TYPESET) { - if ((*namptr)[1] && (sub = strchr(*namptr + 1, Equals))) { + if ((*namptr)[1] && (eql = sub = strchr(*namptr + 1, Equals))) { str = sub + 1; if ((sub[1] == Tilde || sub[1] == Equals) && filesubstr(&str, assign)) { sub[1] = '\0'; @@ -330,7 +330,9 @@ while ((sub = strchr(ptr, ':'))) { str = sub + 1; len = sub - *namptr; - if ((sub[1] == Tilde || sub[1] == Equals) && filesubstr(&str, assign)) { + if (sub > eql && + (sub[1] == Tilde || sub[1] == Equals) && + filesubstr(&str, assign)) { sub[1] = '\0'; *namptr = dyncat(*namptr, str); } -- 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