Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: zsh3.0.0 bug: $=a split
- X-seq: zsh-workers 2042
- From: Zoltan Hidvegi <hzoli@xxxxxxxxxx>
- To: A.Main@xxxxxxxxxxxxxxxxx (Zefram)
- Subject: Re: zsh3.0.0 bug: $=a split
- Date: Wed, 21 Aug 1996 20:35:15 +0200 (MET DST)
- Cc: huyle@xxxxxxxxxxxxxxxxxxxxxxxx, zsh-workers@xxxxxxxxxxxxxxx
- In-reply-to: <19648.199608162352@xxxxxxxxxxxxxxxxxxxxxxx> from Zefram at "Aug 17, 96 00:52:23 am"
- Organization: Dept. of Comp. Sci., Eotvos University, Budapest, Hungary
- Phone: (36 1)2669833 ext: 2667, home phone: (36 1) 2752368
[I'm back earlier than I promised but do not expect too much from me in the
next two days... :-) ]
Zefram wrote:
> >Now, I need the parentheses or need to declare i as an array, but
> >before i would automatically be set to an array:
>
> That's mentioned about two pages down Etc/NEWS, but in the context of
> globbing. Globbing in assignments can be turned on with GLOB_ASSIGN,
> but there's no option to do field splitting to generate an array.
> You'll just have to use parentheses, which works with older zsh
> versions anyway.
>
> Zoltan: should GLOB_ASSIGN be extended to generate arrays based on
> field splitting too? Or do we now want to remove this option
> entirely?
I do not like GLOB_ASSIGN and I really feel that it should be completely
removed. Zsh-2.5.0 handled such situations much worse than 3.0.0. If foo
was an array with zero or one elements, after a
foo=$foo
assignment it changed to a scalar. Otherwise it remaned an array. After
foo=*
foo was array if * expanded to more than 1 files otherwise foo become a
scalar. That piece of code which did that also caused `ambiguous' error
message from zsh in some other situations (I could not tell now any but
that may happen every time singsubst() is called).
In an assignment,
foo=$bar
it may seem to be logical for foo to become an array if bar is an array but
what should happen if I write foo=/$bar? Internally the RHS is evaluated
and after that it is not possible to tell if the result came from an array
expansion or word splitting or globbing etc. glob_assign only enables
globbing after the other expansions. The other expansions will still
produce a single word.
Zoltan
Messages sorted by:
Reverse Date,
Date,
Thread,
Author