Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [bug] shwordsplit not working on $@ when $# > 1
On Mon, 8 Aug 2016 12:16:26 +0100
Stephaneo Chazelas <stephane.chazelas@xxxxxxxxx> wrote:
> It looks like the elements of $@ only undergo splitting when $#
> is 1:
>
> ~$ zsh -o shwordsplit -c 'IFS=:; echo $@' zsh a:b
> a b
> ~$ zsh -o shwordsplit -c 'IFS=:; echo $@' zsh a:b c
> a:b c
The variable isarr from the value entry v->isarr is negative, so we
don't go into the loop that does joining and splitting as that
explicitly asks for (isarr >= 0). (It was 0 for a scalar, hence the
first case above.)
Setting this negative is apparently deliberate:
/* "$foo[@]"-style substitution
* Only sign bit is significant
*/
#define SCANPM_ISVAR_AT ((int)(((unsigned int)-1)<<15))
This seems to conflict with the use of isarr in paramsubst(); that's
documented but I think only because I tried to decode the code. I don't
know what this SCANPM_ISVAR_AT is doing. Perhaps it needs converting to
something else at some point?
pws
Messages sorted by:
Reverse Date,
Date,
Thread,
Author