0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.0846: using assert_fails() may cause hit-enter prompt

Problem:    Using assert_fails() may cause hit-enter prompt.
Solution:   Set no_wait_return. (closes #11522)
This commit is contained in:
Bram Moolenaar 2022-11-09 00:44:30 +00:00
parent 4e7590ec00
commit f220643c26
3 changed files with 11 additions and 3 deletions

View File

@ -338,6 +338,12 @@ func Test_assert_fails_in_try_block()
endtry
endfunc
func Test_assert_fails_in_timer()
" should not cause a hit-enter prompt, which isn't actually checked here
call timer_start(0, {-> assert_fails('call', 'E471:')})
sleep 10m
endfunc
func Test_assert_beeps()
new
call assert_equal(0, assert_beeps('normal h'))

View File

@ -592,7 +592,6 @@ f_assert_exception(typval_T *argvars, typval_T *rettv)
void
f_assert_fails(typval_T *argvars, typval_T *rettv)
{
char_u *cmd;
garray_T ga;
int save_trylevel = trylevel;
int called_emsg_before = called_emsg;
@ -608,13 +607,13 @@ f_assert_fails(typval_T *argvars, typval_T *rettv)
&& check_for_opt_string_arg(argvars, 4) == FAIL)))))
return;
cmd = tv_get_string_chk(&argvars[0]);
// trylevel must be zero for a ":throw" command to be considered failed
trylevel = 0;
suppress_errthrow = TRUE;
in_assert_fails = TRUE;
++no_wait_return;
char_u *cmd = tv_get_string_chk(&argvars[0]);
do_cmdline_cmd(cmd);
// reset here for any errors reported below
@ -758,6 +757,7 @@ theend:
did_emsg = FALSE;
got_int = FALSE;
msg_col = 0;
--no_wait_return;
need_wait_return = FALSE;
emsg_on_display = FALSE;
msg_scrolled = 0;

View File

@ -695,6 +695,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
846,
/**/
845,
/**/