summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 4a3cf99124..a525678354 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -7999,6 +7999,7 @@ ex_echo(exarg_T *eap)
int needclr = TRUE;
int atstart = TRUE;
char_u numbuf[NUMBUFLEN];
+ int did_emsg_before = did_emsg;
if (eap->skip)
++emsg_skip;
@@ -8016,7 +8017,7 @@ ex_echo(exarg_T *eap)
* has been cancelled due to an aborting error, an interrupt, or an
* exception.
*/
- if (!aborting())
+ if (!aborting() && did_emsg == did_emsg_before)
EMSG2(_(e_invexpr2), p);
need_clr_eos = FALSE;
break;