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

Re: PATCH: function copy

On Mon, Jul 15, 2019 at 1:00 PM Peter Stephenson
<p.w.stephenson@xxxxxxxxxxxx> wrote:
> I've had this lying around for a while, wondering if there's more to it,
> but I can't think of it.
> The point is that it's very easy internally to provide an interface to
> tweak standard functions to add arbitrary code before and after --- we
> have most of the support for this internally, and just lack the means to
> add a different name for a function, which this adds.

Emacs calls this "advice" and allows before/around/after variations
which can be added without having to redefine the existing function.
I have a half-finished (that may be optimistic) module to provide this
for ZLE widgets.  Handling the before/after is not too bad, but for
"around" you need a way to say "call the original function HERE" which
you can then embed in another function that becomes the "around" (and
which is called in place of the original everywhere except HERE).

The other thing that would be really helpful in order to do it "your
way" would be local functions, so that when the calling context exits,
_std_fn reverts to its old definition and _my_fn disappears.  Hacking
this by making the entire $functions array local is error-prone.

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