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 endtry
endfunc 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() func Test_assert_beeps()
new new
call assert_equal(0, assert_beeps('normal h')) call assert_equal(0, assert_beeps('normal h'))

View File

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

View File

@ -695,6 +695,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 */
/**/
846,
/**/ /**/
845, 845,
/**/ /**/