patch 8.2.3946: when an internal error makes Vim exit the error is not seen
Problem: When an internal error makes Vim exit the error is not seen.
Solution: Add the error to the test output.
diff --git a/src/message.c b/src/message.c
index 7e98d0b..8768065 100644
--- a/src/message.c
+++ b/src/message.c
@@ -824,10 +824,13 @@
iemsg(char *s)
{
if (!emsg_not_now())
+ {
emsg_core((char_u *)s);
#ifdef ABORT_ON_INTERNAL_ERROR
- abort();
+ set_vim_var_string(VV_ERRMSG, (char_u *)s, -1);
+ abort();
#endif
+ }
}
#ifndef PROTO // manual proto with __attribute__
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 912bc20..d4c42f3 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -304,6 +304,7 @@
func EarlyExit(test)
" It's OK for the test we use to test the quit detection.
if a:test != 'Test_zz_quit_detected()'
+ call add(v:errors, v:errmsg)
call add(v:errors, 'Test caused Vim to exit: ' . a:test)
endif
diff --git a/src/version.c b/src/version.c
index a04c91c..25e40bf 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3946,
+/**/
3945,
/**/
3944,