diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-11-28 20:38:37 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-11-28 20:38:37 +0100 |
commit | 76a6345433bc2a600689397fb28165a2e5793720 (patch) | |
tree | 445a832b355fa2803004a1de2d1f1b6276f56305 /src/eval.c | |
parent | 10efcd5b0259659cd9a152a7a342deb5d56a8eb5 (diff) |
patch 8.1.0550: expression evaluation may repeat an error messagev8.1.0550
Problem: Expression evaluation may repeat an error message. (Jason
Franklin)
Solution: Increment did_emsg and check for the value when giving an error
for the echo command.
Diffstat (limited to 'src/eval.c')
-rw-r--r-- | src/eval.c | 3 |
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; |