mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.1.0550: expression evaluation may repeat an error message
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.
76a6345433
This commit is contained in:
parent
a9e368a705
commit
5de5507ea6
@ -19538,6 +19538,7 @@ void ex_echo(exarg_T *eap)
|
||||
typval_T rettv;
|
||||
bool needclr = true;
|
||||
bool atstart = true;
|
||||
const int did_emsg_before = did_emsg;
|
||||
|
||||
if (eap->skip)
|
||||
++emsg_skip;
|
||||
@ -19552,7 +19553,7 @@ void ex_echo(exarg_T *eap)
|
||||
// Report the invalid expression unless the expression evaluation
|
||||
// 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;
|
||||
|
@ -505,7 +505,7 @@ int emsg(const char_u *s_)
|
||||
*/
|
||||
if (cause_errthrow((char_u *)s, severe, &ignore) == true) {
|
||||
if (!ignore) {
|
||||
did_emsg = true;
|
||||
did_emsg++;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@ -554,7 +554,7 @@ int emsg(const char_u *s_)
|
||||
} else {
|
||||
flush_buffers(FLUSH_MINIMAL); // flush internal buffers
|
||||
}
|
||||
did_emsg = true; // flag for DoOneCmd()
|
||||
did_emsg++; // flag for DoOneCmd()
|
||||
}
|
||||
|
||||
emsg_on_display = true; // remember there is an error message
|
||||
|
@ -121,7 +121,6 @@ describe('108', function()
|
||||
Error detected while processing function Foo[2]..Bar[2]..Bazz:
|
||||
line 3:
|
||||
E121: Undefined variable: var3
|
||||
E15: Invalid expression: var3
|
||||
here var3 is defined with "another var":
|
||||
another var
|
||||
|
||||
@ -129,7 +128,6 @@ describe('108', function()
|
||||
Error detected while processing function Foo[2]..Bar:
|
||||
line 3:
|
||||
E121: Undefined variable: var2
|
||||
E15: Invalid expression: var2
|
||||
here var2 is defined with 10:
|
||||
10
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user