vim-patch:8.1.0551: expression evaluation may repeat an error message

Problem:    Expression evaluation may repeat an error message. (Jason
            Franklin)
Solution:   Check for the value of did_emsg when giving an error
            for the :execute command.
8ff5af9544
This commit is contained in:
Jan Edmund Lazo
2018-11-29 21:19:02 -05:00
parent 5de5507ea6
commit f59ba0fad0

View File

@@ -19642,7 +19642,7 @@ void ex_execute(exarg_T *eap)
int ret = OK; int ret = OK;
char_u *p; char_u *p;
garray_T ga; garray_T ga;
int save_did_emsg; int save_did_emsg = did_emsg;
ga_init(&ga, 1, 80); ga_init(&ga, 1, 80);
@@ -19656,8 +19656,9 @@ void ex_execute(exarg_T *eap)
* has been cancelled due to an aborting error, an interrupt, or an * has been cancelled due to an aborting error, an interrupt, or an
* exception. * exception.
*/ */
if (!aborting()) if (!aborting() && did_emsg == save_did_emsg) {
EMSG2(_(e_invexpr2), p); EMSG2(_(e_invexpr2), p);
}
ret = FAIL; ret = FAIL;
break; break;
} }