Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [SOLVED] Libtool/zsh quoting problem: a zsh... bug?
- X-seq: zsh-workers 22229
- From: Wayne Davison <wayned@xxxxxxxxxxxxxxxxxxxxx>
- To: Andrey Borzenkov <arvidjaar@xxxxxxxxxx>
- Subject: Re: [SOLVED] Libtool/zsh quoting problem: a zsh... bug?
- Date: Sat, 11 Feb 2006 10:14:40 -0800
- Cc: Zsh-workers <zsh-workers@xxxxxxxxxx>
- In-reply-to: <200602111321.48602.arvidjaar@xxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <20060209233201.GA5875@fargo> <20060211093607.GD10579@DervishD> <200602111321.48602.arvidjaar@xxxxxxxxxx>
On Sat, Feb 11, 2006 at 01:21:43PM +0300, Andrey Borzenkov wrote:
> See this thread: <http://www.zsh.org/mla/workers/2002/msg00542.html>; there
> was an attempt to fix it in 16949 but apparently it was incomplete and never
> went in.
I just took a look at that code using Peter's old patch as a start, and
the assertion that the quotes have been stripped out is not quite true:
there are still Dnull and Snull characters remaining which indicate that
there used to be a double- or single-quotes present. This allows us to
check the string. An overly simple version is this:
--- subst.c 6 Feb 2006 11:57:06 -0000 1.44
+++ subst.c 11 Feb 2006 18:07:23 -0000
@@ -2012,6 +2012,8 @@ paramsubst(LinkList l, LinkNode n, char
*/
multsub(&val, (aspar ? NULL : &aval), &isarr, NULL);
copied = 1;
+ if (spbreak && (*s == Dnull || *s == Snull))
+ spbreak = 0;
}
break;
case ':':
This will turn off word-splitting if the string started with a single or
a double quote. This is incomplete because the arg may be something
more complicated (such as: 'one' 'two' 'three four'), but it seems
better than what we have now.
One question I have is what to do about ${=1:"$@"}? In the patch above,
I chose to let the double quotes override the '='. If that is not
desired, change the new "if" to only trigger disallow an spbreak of 2:
+ if (spbreak == 1 && (*s == Dnull || *s == Snull))
..wayne..
Messages sorted by:
Reverse Date,
Date,
Thread,
Author