From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 6860 invoked from network); 17 Jul 2003 09:32:26 -0000 Received: from sunsite.dk (130.225.247.90) by ns1.primenet.com.au with SMTP; 17 Jul 2003 09:32:25 -0000 Received: (qmail 6580 invoked by alias); 17 Jul 2003 09:32:21 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 18864 Received: (qmail 6570 invoked from network); 17 Jul 2003 09:32:20 -0000 Received: from localhost (HELO sunsite.dk) (127.0.0.1) by localhost with SMTP; 17 Jul 2003 09:32:20 -0000 X-MessageWall-Score: 0 (sunsite.dk) Received: from [62.189.183.235] by sunsite.dk (MessageWall 1.0.8) with SMTP; 17 Jul 2003 9:32:19 -0000 Received: from EXCHANGE02.csr.com (unverified) by MAILSWEEPER01.cambridgesiliconradio.com (Content Technologies SMTPRS 4.3.10) with ESMTP id for ; Thu, 17 Jul 2003 10:31:40 +0100 Received: from csr.com ([192.168.144.127]) by EXCHANGE02.csr.com with Microsoft SMTPSVC(5.0.2195.5329); Thu, 17 Jul 2003 10:31:05 +0100 To: zsh-workers@sunsite.dk Subject: Re: Bug in ${(Q)...} In-reply-to: "Bart Schaefer"'s message of "Sun, 13 Jul 2003 17:24:18 -0000." <1030713172418.ZM4800@candle.brasslantern.com> Date: Thu, 17 Jul 2003 10:32:14 +0100 Message-ID: <27877.1058434334@csr.com> From: Peter Stephenson X-OriginalArrivalTime: 17 Jul 2003 09:31:05.0870 (UTC) FILETIME=[2598D2E0:01C34C46] Bart Schaefer wrote: > On Jul 12, 7:38pm, Philippe Troin wrote: > } Subject: Bug in ${(Q)...} > } > } % setopt extended_glob > } % echo $ZSH_VERSION "<${(Q)${$(print hello)/%hello#}}>" > } 4.0.6 < > > } > } Shouldn't that be: > } 4.0.6 <> > } > } (no space) > > So I'm not sure if this is really a problem with (Q) in paramsubst(), or > if it's deeper, in parse_subst_string(), and it just happens that (Q) > makes it visible. I think the fix is the following. I've never quite followed the logic of using a string consisting only of a Nularg to represent an empty string, but it occurs sporadically. Index: Src/lex.c =================================================================== RCS file: /cvsroot/zsh/zsh/Src/lex.c,v retrieving revision 1.24 diff -u -r1.24 lex.c --- Src/lex.c 6 Oct 2002 18:38:14 -0000 1.24 +++ Src/lex.c 17 Jul 2003 09:29:06 -0000 @@ -1512,7 +1512,7 @@ { int c, l = strlen(s), err, olen; - if (! *s) + if (!*s || !strcmp(s, nulstring)) return 0; lexsave(); untokenize(s); -- Peter Stephenson Software Engineer CSR Ltd., Science Park, Milton Road, Cambridge, CB4 0WH, UK Tel: +44 (0)1223 692070 ********************************************************************** The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer. **********************************************************************