patch 8.2.1953: Vim9: extra "unknown" error after other error
Problem: Vim9: extra "unknown" error after other error.
Solution: Restore did_emsg count after EXEC instruction. (closes #7254)
Improve error message from assert_fails()
diff --git a/src/vim9execute.c b/src/vim9execute.c
index eb0e1db..c9ae709 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1071,8 +1071,15 @@
{
// execute Ex command line
case ISN_EXEC:
- SOURCING_LNUM = iptr->isn_lnum;
- do_cmdline_cmd(iptr->isn_arg.string);
+ {
+ int save_did_emsg = did_emsg;
+
+ SOURCING_LNUM = iptr->isn_lnum;
+ do_cmdline_cmd(iptr->isn_arg.string);
+ // do_cmdline_cmd() will reset did_emsg, but we want to
+ // keep track of the count to compare with did_emsg_before.
+ did_emsg += save_did_emsg;
+ }
break;
// execute Ex command from pieces on the stack