summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-26 22:39:24 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-26 22:39:24 +0200
commitbade44e5cad1b08c85d4a8ba08d94a30458dddfb (patch)
tree758f453eb1dc06f23a248f936e19dce249f1b6e8
parent3697c9bbae755831d3cf2f11179aaff29e343f51 (diff)
patch 8.2.1751: using 2 where bool is expected may throw an errorv8.2.1751
Problem: Using 2 where bool is expected may throw an error. Solution: Make this backwards compatible.
-rw-r--r--src/evalfunc.c4
-rw-r--r--src/testdir/test_search.vim3
-rw-r--r--src/testdir/test_terminal2.vim4
-rw-r--r--src/typval.c2
-rw-r--r--src/version.c2
5 files changed, 10 insertions, 5 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index afc8977532..b387c8ccce 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1982,7 +1982,7 @@ f_deepcopy(typval_T *argvars, typval_T *rettv)
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 *rettv)
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
index ca06c34b47..e39458f71f 100644
--- 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
index 87d1e35652..64310f6254 100644
--- 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
index 1db0d77c4e..5151f724dc 100644
--- a/src/typval.c
+++ b/src/typval.c
@@ -177,7 +177,7 @@ tv_get_bool_or_number_chk(typval_T *varp, int *denote, int want_bool)
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
index a8b907d828..90ec322f4d 100644
--- 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,