Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Libtool/zsh quoting problem



    Hi David :)

 * David <david@xxxxxxxxxxxx> dixit:
> On Feb 10 at 09:46:30, DervishD wrote:
> >     But the problem is a bit more subtle ;) Look at the "libtool"
> > invocation:
> 
> I know. Libtool is quoting positional parameters which has shell
> metacharacters in them. But it's no working because the string is
> already split in that point. I've been looking at the libtool
> script and i think the problem is in a 'for arg in' that it's
> failing with zsh in doing the right splitting.

    That's weird, because zsh doesn't split arguments at spaces in
arguments to the for loop, unless SH_WORDSPLIT is set.

    Anyway, not doing that splitting is the right thing to do if I
understand correctly the SUS standard :?

    Obviously, Bash doesn't do that splitting no matter if invoked as
/bin/sh or not. The problem is that libtool shouldn't be assuming
that the splitting is not done.
 
> > > Is there any option in zsh to avoid this problem?
> > 
> >     Not that I know of, because I think that SH_WORDSPLIT doesn't
> > apply here.
> 
> No, i've already tested that option.

    Please note that if you just did:

    setopt SH_WORDSPLIT
    make

    that won't work!. The option will be reset as soon as zsh is
invoked again as /bin/sh because it will be running in "sh" emulation
mode (so to say).

    You can try to set SH_WORDSPLIT in your RC files only when zsh is
invoked as /bin/sh, but anyway I think that the behaviour of libtool
is wrong regarding word splitting assumptions. Maybe a standard
expertise in this list can clarify that, but anyway in SUS you can
read that the list given to the "for" loop is expanded (chapter 2 of
"Shell & Utilities", tag 02_09_04_03). Expansion consists on
parameter expansion, command substitution, arithmetic expansion and
field splitting, so the list MUST be expanded on the value of IFS
unless quoted.

    I think that both bash and zsh doesn't do such splitting
internally, but zsh forces such splitting if SH_WORDSPLIT is set.

    Do you want me to take a look at libtool sources? If yes, which
version are you using?
 
    Raúl Núñez de Arenas Coronado

-- 
Linux Registered User 88736 | http://www.dervishd.net
http://www.pleyades.net & http://www.gotesdelluna.net
It's my PC and I'll cry if I want to... RAmen!



Messages sorted by: Reverse Date, Date, Thread, Author