# HG changeset patch # User Bram Moolenaar # Date 1667954703 -3600 # Node ID 9a5e540510cfd073180a3b8a25d08aba7284399c # Parent 57cf55d34f5781c16e9144a9edf2251a01f9bbbd patch 9.0.0846: using assert_fails() may cause hit-enter prompt Commit: https://github.com/vim/vim/commit/f220643c260d55d21a841a3c4032daadc41bc50b Author: Bram Moolenaar Date: Wed Nov 9 00:44:30 2022 +0000 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 https://github.com/vim/vim/issues/11522) diff --git a/src/testdir/test_assert.vim b/src/testdir/test_assert.vim --- a/src/testdir/test_assert.vim +++ b/src/testdir/test_assert.vim @@ -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')) diff --git a/src/testing.c b/src/testing.c --- a/src/testing.c +++ b/src/testing.c @@ -592,7 +592,6 @@ f_assert_exception(typval_T *argvars, ty 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 && 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; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 846, +/**/ 845, /**/ 844,