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

Re: pushd



>(Baroque idea:  Have `emulate' take a version number and set the options
>to behave like that version of zsh.  No, I'm not serious.)

I've considered previously what the implications of this would be.  A
*complete* emulation could be quite mind-boggling: after emulating,
say, zsh-3.0.0 you can't get back, because 3.0.0 doesn't know how to
emulate versions.  You would only ever be able to move the emulation
back in time.  Would we have to emulate bugs as well?

And if we're going to do this, my vote on the interface goes to an
assignable ZSH_VERSION parameter.  (So your scripts can start with
"emulate zsh; ZSH_VERSION=3.1.3".)

Oh, what was the reasoning behind requiring "(UID=123; foo)" where
"UID=123 foo" used to work?  I liked the exporting syntax.

Back to more practical matters:

>At the moment I've reached the limit of my comprehension of how all of
>this works.  Too many functions seem to be freeing nodes from the stack
>-- most notably, bin_cd() frees the top node if cd_get_dest() fails, but
>I don't understand why.  I'm beginning to worry that even the patches I
>sent yesterday don't work as they should (or rather, that they work only
>because both zsfree() and getlinknode() ignore null pointers).

I have to say, the cd functions are a real mess.  There are at least
some comments now, but still it can be difficult to comprehend -- there
are *six* locations from which chdir() is called.  I think a complete
rewrite is in order.

-zefram



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