# HG changeset patch # User Bram Moolenaar # Date 1601153104 -7200 # Node ID 0ef3ae4ec70ed8eea60d3290b41bc68eab91e0d2 # Parent 784337b701c8062293281900cba71f52e54a40bb patch 8.2.1751: using 2 where bool is expected may throw an error Commit: https://github.com/vim/vim/commit/bade44e5cad1b08c85d4a8ba08d94a30458dddfb Author: Bram Moolenaar Date: Sat Sep 26 22:39:24 2020 +0200 patch 8.2.1751: using 2 where bool is expected may throw an error Problem: Using 2 where bool is expected may throw an error. Solution: Make this backwards compatible. diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -1982,7 +1982,7 @@ f_deepcopy(typval_T *argvars, typval_T * if (argvars[1].v_type != VAR_UNKNOWN) noref = (int)tv_get_bool_chk(&argvars[1], NULL); if (noref < 0 || noref > 1) - emsg(_(e_invarg)); + semsg(_(e_using_number_as_bool_nr), noref); else { copyID = get_copyID(); @@ -8193,7 +8193,7 @@ f_strchars(typval_T *argvars, typval_T * if (argvars[1].v_type != VAR_UNKNOWN) skipcc = (int)tv_get_bool(&argvars[1]); if (skipcc < 0 || skipcc > 1) - emsg(_(e_invarg)); + semsg(_(e_using_number_as_bool_nr), skipcc); else { func_mb_ptr2char_adv = skipcc ? mb_ptr2char_adv : mb_cptr2char_adv; diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim --- a/src/testdir/test_search.vim +++ b/src/testdir/test_search.vim @@ -290,6 +290,9 @@ func Test_searchpair() new call setline(1, ['other code', 'here [', ' [', ' " cursor here', ' ]]']) + " should not give an error for using "42" + call assert_equal(0, searchpair('a', 'b', 'c', '', 42)) + 4 call assert_equal(3, searchpair('\[', '', ']', 'bW')) call assert_equal([0, 3, 2, 0], getpos('.')) diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim --- a/src/testdir/test_terminal2.vim +++ b/src/testdir/test_terminal2.vim @@ -560,8 +560,8 @@ func Test_term_gettty() endif endif - call assert_fails('call term_gettty(buf, 2)', 'E1023:') - call assert_fails('call term_gettty(buf, -1)', 'E1023:') + call assert_fails('call term_gettty(buf, 2)', 'E475:') + call assert_fails('call term_gettty(buf, -1)', 'E475:') call assert_equal('', term_gettty(buf + 1)) diff --git a/src/typval.c b/src/typval.c --- a/src/typval.c +++ b/src/typval.c @@ -177,7 +177,7 @@ tv_get_bool_or_number_chk(typval_T *varp switch (varp->v_type) { case VAR_NUMBER: - if (want_bool && varp->vval.v_number != 0 + if (in_vim9script() && want_bool && varp->vval.v_number != 0 && varp->vval.v_number != 1) { semsg(_(e_using_number_as_bool_nr), varp->vval.v_number); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1751, +/**/ 1750, /**/ 1749,