Mercurial > vim
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);