mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.1660: assert_fails() does not fail inside try/catch
Problem: Assert_fails() does not fail inside try/catch. Solution: Set trylevel to zero. (Ozaki Kiichi, closes #4639)
This commit is contained in:
@@ -9910,10 +9910,14 @@ assert_fails(typval_T *argvars)
|
|||||||
char_u *cmd = tv_get_string_chk(&argvars[0]);
|
char_u *cmd = tv_get_string_chk(&argvars[0]);
|
||||||
garray_T ga;
|
garray_T ga;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
int save_trylevel = trylevel;
|
||||||
|
|
||||||
|
// trylevel must be zero for a ":throw" command to be considered failed
|
||||||
|
trylevel = 0;
|
||||||
called_emsg = FALSE;
|
called_emsg = FALSE;
|
||||||
suppress_errthrow = TRUE;
|
suppress_errthrow = TRUE;
|
||||||
emsg_silent = TRUE;
|
emsg_silent = TRUE;
|
||||||
|
|
||||||
do_cmdline_cmd(cmd);
|
do_cmdline_cmd(cmd);
|
||||||
if (!called_emsg)
|
if (!called_emsg)
|
||||||
{
|
{
|
||||||
@@ -9939,10 +9943,11 @@ assert_fails(typval_T *argvars)
|
|||||||
assert_append_cmd_or_arg(&ga, argvars, cmd);
|
assert_append_cmd_or_arg(&ga, argvars, cmd);
|
||||||
assert_error(&ga);
|
assert_error(&ga);
|
||||||
ga_clear(&ga);
|
ga_clear(&ga);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
trylevel = save_trylevel;
|
||||||
called_emsg = FALSE;
|
called_emsg = FALSE;
|
||||||
suppress_errthrow = FALSE;
|
suppress_errthrow = FALSE;
|
||||||
emsg_silent = FALSE;
|
emsg_silent = FALSE;
|
||||||
|
@@ -166,6 +166,12 @@ func Test_assert_fail_fails()
|
|||||||
call remove(v:errors, 0)
|
call remove(v:errors, 0)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_assert_fails_in_try_block()
|
||||||
|
try
|
||||||
|
call assert_equal(0, assert_fails('throw "error"'))
|
||||||
|
endtry
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_assert_beeps()
|
func Test_assert_beeps()
|
||||||
new
|
new
|
||||||
call assert_equal(0, assert_beeps('normal h'))
|
call assert_equal(0, assert_beeps('normal h'))
|
||||||
|
@@ -777,6 +777,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 */
|
||||||
|
/**/
|
||||||
|
1660,
|
||||||
/**/
|
/**/
|
||||||
1659,
|
1659,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user