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

Re: How to set exit trap from inner function?



On Thu, Feb 23, 2023 at 6:10 PM Sebastian Gniazdowski
<sgniazdowski@xxxxxxxxx> wrote:
>
> I want to automatically clear all functions created from outer function.
>
> Any ideas on having such auto-unset-funcs function?

Unclear what side-effect messing about with localtraps may have on
this, but you can use one EXIT trap to set another EXIT trap:

inner () {
  trap "print FROM INNER: \$0; trap 'print FROM OUTER: \$0' EXIT" EXIT
}
outer () {
  inner
}

% outer
FROM INNER: outer
FROM OUTER: Src/zsh


Getting the quoting right for something more complicated, is left as
an exercise.




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