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/eval.c b/src/eval.c
index 6b2d86b..5ec5b8a 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -263,8 +263,9 @@
if (partial->pt_func != NULL
&& partial->pt_func->uf_def_status != UF_NOT_COMPILED)
{
+ // FIXME: should create a funccal and link it in current_funccal.
if (call_def_function(partial->pt_func, argc, argv,
- partial, rettv) == FAIL)
+ partial, NULL, rettv) == FAIL)
return FAIL;
}
else