Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [zsh 4.0.1-pre-2 bug] named directories disappear
- X-seq: zsh-workers 13891
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxx
- Subject: Re: [zsh 4.0.1-pre-2 bug] named directories disappear
- Date: Tue, 3 Apr 2001 10:16:36 +0200 (MET DST)
- In-reply-to: "Bart Schaefer"'s message of Mon, 2 Apr 2001 17:01:53 +0000
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
[ moved to -workers ]
Bart Schaefer wrote:
> On Apr 2, 4:48pm, Vincent Lefevre wrote:
> } Subject: [zsh 4.0.1-pre-2 bug] named directories disappear
> }
> } The named directory ~out was defined, but it has disappeared:
> }
> } greux:~> echo ~out
> } zsh: no such user or named directory: out
>
> bug () {
> hash -d out=$HOME
> echo ~out
> local out
> out=(oops)
> ( echo ~out )
> : Without the subshell above, this line is never reached
> }
>
> The local variable "out" is used by _pids, so that named directory will be
> stomped whenever you complete process IDs.
>
> On the other hand, if you actually set the global variable "out":
>
> unbug () {
> out=$HOME
> bug
> echo ~out
> }
>
> The named directory still gets stomped, but is automatically restored any
> time you refer to it.
That's caused by adduserdir() in utils.c. The test in utils.c:533
succeeds when the local variable is set and then the namedir-entry is
removed.
I'm not sure how we should solve this. Maybe just make `hash -d x=...'
set the parameter `x', too? Once one has done the above, one can't
set $x anymore anyway.
Or maybe the other way round? Use a flag in nameddirtab entries that
says that the entry was added with `hash -d ...' and don't change or
remove such entries when the corresponding parameter is modified?
Bye
Sven
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author