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

Possible zsh bug with unique tied vars in 4.0.4?

The following sequence of commands shows unexpected performance in
zsh when using tied variables and unique processing.  In brief, if
you have tied variables FOO and foo and typeset one of them to unique
(-U), you can use the other to assign non-unique values to the first.
This is counter-intuitive at best :-), and I can see no use for this
feature.  The manual page leads one strongly to believe that a single
variable is created which simply has two names and two presentations;
the experiment below shows that clearly there are other differences
as well.

In most cases this wouldn't matter as I would declare such variables

   $ typeset -Tx -U FOO foo

However, when applying -U to useful special vars like PATH you cannot
redeclare the overall type, nor can you simply do

   $ typeset -U PATH

as that leads to the anomalous performance as shown below.  One must
set uniqueness on both forms;

   $ typeset -U PATH
   $ typeset -U path

otherwise $PATH and $path start getting out of sync.

This lack of tieing of secondary variable characteristics may apply
to other items as well (justification, etc); I've not experimented.

I'm running zsh version 4.0.4 on FreeBDS 4.6 RC2.


superior$ typeset -Tx FOO foo
superior$ echo $FOO

superior$ echo $foo

superior$ FOO="a:b" 
superior$ echo $FOO
superior$ echo $foo
a b
superior$ foo=($foo a c)
superior$ echo $foo
a b a c
superior$ echo $FOO
superior$ typeset -U foo
superior$ echo $foo
a b c
superior$ echo $FOO
superior$ FOO="a:c:$FOO"
superior$ echo $FOO
superior$ echo $foo
a c a b c
superior$ foo=($foo)
superior$ echo $foo
a c b
superior$ echo $FOO
superior$ echo $ZSH_VERSION
superior$ uname -a
FreeBSD superior.inland-sea.com 4.6-RC FreeBSD 4.6-RC #8: Fri Jun  7 21:27:23 EDT 2002 root@xxxxxxxxxxxxxxxxxxxxxxx:/usr/src/sys/compile/SUPERIOR  i386

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