patch 8.2.2097: Vim9: using :silent! when calling a function prevents abort
Problem: Vim9: using :silent! when calling a function prevents abortng that
function.
Solution: Add emsg_silent_def and did_emsg_def.
diff --git a/src/message.c b/src/message.c
index 43e7e5e..e4f96d0 100644
--- a/src/message.c
+++ b/src/message.c
@@ -697,6 +697,12 @@
}
redir_write(s, -1);
}
+#ifdef FEAT_EVAL
+ // Only increment did_emsg_def when :silent! wasn't used inside the
+ // :def function.
+ if (emsg_silent == emsg_silent_def)
+ ++did_emsg_def;
+#endif
#ifdef FEAT_JOB_CHANNEL
ch_log(NULL, "ERROR silent: %s", (char *)s);
#endif