]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.0846: using assert_fails() may cause hit-enter prompt v9.0.0846
authorBram Moolenaar <Bram@vim.org>
Wed, 9 Nov 2022 00:44:30 +0000 (00:44 +0000)
committerBram Moolenaar <Bram@vim.org>
Wed, 9 Nov 2022 00:44:30 +0000 (00:44 +0000)
Problem:    Using assert_fails() may cause hit-enter prompt.
Solution:   Set no_wait_return. (closes #11522)

src/testdir/test_assert.vim
src/testing.c
src/version.c

index 89ac0128404bb138e6a999c3811205381227223b..42dd6a9d6a96924dd1978a3d660ebb8925bd4275 100644 (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'))
index 7bb14e1b57f0101a6509f8c992e17f449c711bb2..d76d098ee01f79ebab3b1f2232b8cb6bd4f02a87 100644 (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;
index 097fcf6abf74e83eb5b6ec1ecd30102d7ebcf4e6..f305f3cc716bad48ff6d1634b947890c0408ebc7 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    846,
 /**/
     845,
 /**/