forked from aniani/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.
This commit is contained in:
@@ -7999,6 +7999,7 @@ ex_echo(exarg_T *eap)
|
|||||||
int needclr = TRUE;
|
int needclr = TRUE;
|
||||||
int atstart = TRUE;
|
int atstart = TRUE;
|
||||||
char_u numbuf[NUMBUFLEN];
|
char_u numbuf[NUMBUFLEN];
|
||||||
|
int did_emsg_before = did_emsg;
|
||||||
|
|
||||||
if (eap->skip)
|
if (eap->skip)
|
||||||
++emsg_skip;
|
++emsg_skip;
|
||||||
@@ -8016,7 +8017,7 @@ ex_echo(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 == did_emsg_before)
|
||||||
EMSG2(_(e_invexpr2), p);
|
EMSG2(_(e_invexpr2), p);
|
||||||
need_clr_eos = FALSE;
|
need_clr_eos = FALSE;
|
||||||
break;
|
break;
|
||||||
|
@@ -636,7 +636,7 @@ emsg(char_u *s)
|
|||||||
if (cause_errthrow(s, severe, &ignore) == TRUE)
|
if (cause_errthrow(s, severe, &ignore) == TRUE)
|
||||||
{
|
{
|
||||||
if (!ignore)
|
if (!ignore)
|
||||||
did_emsg = TRUE;
|
++did_emsg;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -689,7 +689,7 @@ emsg(char_u *s)
|
|||||||
beep_flush(); /* also includes flush_buffers() */
|
beep_flush(); /* also includes flush_buffers() */
|
||||||
else
|
else
|
||||||
flush_buffers(FLUSH_MINIMAL); // flush internal buffers
|
flush_buffers(FLUSH_MINIMAL); // flush internal buffers
|
||||||
did_emsg = TRUE; // flag for DoOneCmd()
|
++did_emsg; // flag for DoOneCmd()
|
||||||
#ifdef FEAT_EVAL
|
#ifdef FEAT_EVAL
|
||||||
did_uncaught_emsg = TRUE;
|
did_uncaught_emsg = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
@@ -28,7 +28,6 @@ undefined var3 on former level:
|
|||||||
Error detected while processing function Foo[2]..Bar[2]..Bazz:
|
Error detected while processing function Foo[2]..Bar[2]..Bazz:
|
||||||
line 3:
|
line 3:
|
||||||
E121: Undefined variable: var3
|
E121: Undefined variable: var3
|
||||||
E15: Invalid expression: var3
|
|
||||||
here var3 is defined with "another var":
|
here var3 is defined with "another var":
|
||||||
another var
|
another var
|
||||||
|
|
||||||
@@ -36,7 +35,6 @@ undefined var2 on former level
|
|||||||
Error detected while processing function Foo[2]..Bar:
|
Error detected while processing function Foo[2]..Bar:
|
||||||
line 3:
|
line 3:
|
||||||
E121: Undefined variable: var2
|
E121: Undefined variable: var2
|
||||||
E15: Invalid expression: var2
|
|
||||||
here var2 is defined with 10:
|
here var2 is defined with 10:
|
||||||
10
|
10
|
||||||
|
|
||||||
|
@@ -792,6 +792,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
550,
|
||||||
/**/
|
/**/
|
||||||
549,
|
549,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user