changeset 22043:4bc644f4dd2d v8.2.1571

patch 8.2.1571: Vim9: count() third argument cannot be "true" Commit: https://github.com/vim/vim/commit/119f5572306c4abba91eaf446c0c52637db223e8 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 2 21:31:22 2020 +0200 patch 8.2.1571: Vim9: count() third argument cannot be "true" Problem: Vim9: count() third argument cannot be "true". Solution: use tv_get_bool_chk(). (closes https://github.com/vim/vim/issues/6818)
author Bram Moolenaar <Bram@vim.org>
date Wed, 02 Sep 2020 21:45:03 +0200
parents 190d0dee74f7
children b70b9b4bcf4e
files src/list.c src/testdir/test_vim9_func.vim src/typval.c src/version.c
diffstat 4 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/list.c
+++ b/src/list.c
@@ -2167,7 +2167,7 @@ f_count(typval_T *argvars, typval_T *ret
     int		error = FALSE;
 
     if (argvars[2].v_type != VAR_UNKNOWN)
-	ic = (int)tv_get_number_chk(&argvars[2], &error);
+	ic = (int)tv_get_bool_chk(&argvars[2], &error);
 
     if (argvars[0].v_type == VAR_STRING)
     {
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1492,6 +1492,11 @@ def Fibonacci(n: number): number
   endif
 enddef
 
+def Test_count()
+  assert_equal(3, count('ABC ABC ABC', 'b', true))
+  assert_equal(0, count('ABC ABC ABC', 'b', false))
+enddef
+
 def Test_recursive_call()
   assert_equal(6765, Fibonacci(20))
 enddef
--- a/src/typval.c
+++ b/src/typval.c
@@ -283,7 +283,6 @@ tv_get_bool(typval_T *varp)
 tv_get_bool_chk(typval_T *varp, int *denote)
 {
     return tv_get_bool_or_number_chk(varp, denote, TRUE);
-
 }
 
 #ifdef FEAT_FLOAT
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1571,
+/**/
     1570,
 /**/
     1569,