changeset 22405:0ef3ae4ec70e v8.2.1751

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 <Bram@vim.org> 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.
author Bram Moolenaar <Bram@vim.org>
date Sat, 26 Sep 2020 22:45:04 +0200
parents 784337b701c8
children 4b657770c9b7
files src/evalfunc.c src/testdir/test_search.vim src/testdir/test_terminal2.vim src/typval.c src/version.c
diffstat 5 files changed, 10 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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('.'))
--- 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))
 
--- 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);
--- 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,