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

ksh autoloading



-----BEGIN PGP SIGNED MESSAGE-----

This patch makes autoloading work *exactly* like ksh -- at least, it does
in ksh emulation mode.  There is a new option, KSH_AUTOLOAD (the 110th
option if all my recent ones are accepted), which makes the function
definition file just be sourced, regardless of what (if anything) it does.

The autoloading mechanism is also changed.  Rather than sorting out the
autoloading when looking up the function definition, the autoloading
*is* the definition -- a special type of command, used only in undefined
functions.  When this command gets executed, it autoloads and then calls
the function.  What this buys, other than simplicity and maintainability,
is that in the KSH_AUTOLOAD case it sources the file in the context of the
function execution, as ksh does.  In fact, the file can even declare local
parameters, that are still in scope during the first function execution,
but go out of scope thereafter.

There is one remaining incompatibility between ksh and zsh autoloading.
In ksh, if a command can't be found in $PATH, it is treated as
an autoloaded function and searched for in $FPATH as a fallback.
I'll implement this in a separate patch.

This patch depends on my previous autoloading patch, of course.

 -zefram

begin 644 autoload_patch.gz
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
B6#W2Y:TEQ684J\8<H_94H[FBTAS$DM%Z\=_4Y80:(C\`````
`
end

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: ascii

iQCVAwUBMz9tknD/+HJTpU/hAQHjZgQAhPHc5ysXCTYTVbGI4543WqPEpm2d+THE
+MzTSOJScCJ3ki78cHVtpMJ3xRhTF9lh8PX05dKV0UJYOai5QLARgtd7Dc1QxgyF
pnPHfaJBfij8AiA4QRc6uVknHja+JBlXzA+quWt0t4tivOqAGZw7nTJ0+8x1j5qi
qWvydubJoEo=
=8CMI
-----END PGP SIGNATURE-----



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