Mercurial > vim
changeset 31022:9a5e540510cf v9.0.0846
patch 9.0.0846: using assert_fails() may cause hit-enter prompt
Commit: https://github.com/vim/vim/commit/f220643c260d55d21a841a3c4032daadc41bc50b
Author: Bram Moolenaar <Bram@vim.org>
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)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 09 Nov 2022 01:45:03 +0100 |
parents | 57cf55d34f57 |
children | 698c297dd652 |
files | src/testdir/test_assert.vim src/testing.c src/version.c |
diffstat | 3 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- 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'))
--- 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;