patch 9.0.0397: :defer not tested with exceptions and ":qa!"
Problem: :defer not tested with exceptions and ":qa!".
Solution: Test :defer works when exceptions are thrown and when ":qa!" is
used. Invoke the deferred calls on exit.
diff --git a/src/structs.h b/src/structs.h
index 8fab297..e627719 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1753,7 +1753,11 @@
linenr_T breakpoint; // next line with breakpoint or zero
int dbg_tick; // debug_tick when breakpoint was set
int level; // top nesting level of executed function
+
garray_T fc_defer; // functions to be called on return
+ ectx_T *fc_ectx; // execution context for :def function, NULL
+ // otherwise
+
#ifdef FEAT_PROFILE
proftime_T prof_child; // time spent in a child
#endif