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

Re: Directory stack and pushd/popd in zsh-2.6-beta17



> Then to questions. I noticed that in this release popd builtin doesn't work
> as it used to. It really doesn't change the working directory. I tried it
> with and without pushd command ( I have autopushd option set ), but the
> result was the same. I also tried to unset autopushd option and without my
> chpwd function. I checked what is happening to the directory stack and
> here is something funny:
> 

Shoot!  This is my fault I think. At least it seems to be if you have
CHASE_LINKS set. 

The problem appears to be that I changed cd_get_dest to return the "targetted"
entry on the directory stack.  For cd and pushd this is fine. But for popd, that's
the directory to be killed, not to be changed to.  So the code is going through
the machinations of changing to this wrong dir, but the day is saved in bin_cd(),
which actually changes to the correct dir, *except* if CHASE_LINKS is set.

I'll try to work out a fix this weekend.  It might involve restructuring that
whole section of code, since the way it's split into multiple functions is
actually rather unhelpful. 

Just in case I'm about to screw up, could someone tell me what that code at the end
of bin_cd() ( stat() and stat() and notequal and chdir() ) is supposed to catch?
I can't see why the previous functions shouldn't do the job properly.

Sorry about this. Any input or suggestions from anyone who cares to look at it
happily taken on board...

Anthony





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