summaryrefslogtreecommitdiffstats
path: root/src/vim9execute.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vim9execute.c')
-rw-r--r--src/vim9execute.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/vim9execute.c b/src/vim9execute.c
index eb0e1db638..c9ae709d63 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -1071,8 +1071,15 @@ call_def_function(
{
// 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