patch 8.2.1614: Vim9: cannot pass "true" to searchcount()
Problem: Vim9: cannot pass "true" to searchcount().
Solution: Use tv_get_bool_chk(). (closes #6854)
diff --git a/src/search.c b/src/search.c
index 7391ab0..c1da58b 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4062,7 +4062,7 @@
char_u *pattern = NULL;
int maxcount = SEARCH_STAT_DEF_MAX_COUNT;
long timeout = SEARCH_STAT_DEF_TIMEOUT;
- int recompute = TRUE;
+ int recompute = FALSE;
searchstat_T stat;
if (rettv_dict_alloc(rettv) == FAIL)
@@ -4098,13 +4098,7 @@
if (error)
return;
}
- di = dict_find(dict, (char_u *)"recompute", -1);
- if (di != NULL)
- {
- recompute = tv_get_number_chk(&di->di_tv, &error);
- if (error)
- return;
- }
+ recompute = dict_get_bool(dict, (char_u *)"recompute", recompute);
di = dict_find(dict, (char_u *)"pattern", -1);
if (di != NULL)
{
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index b3b6b32..6aa9f36 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1533,6 +1533,20 @@
assert_equal('a', nr2char(97, true))
enddef
+def Test_searchcount()
+ new
+ setline(1, "foo bar")
+ :/foo
+ assert_equal(#{
+ exact_match: 1,
+ current: 1,
+ total: 1,
+ maxcount: 99,
+ incomplete: 0,
+ }, searchcount(#{recompute: true}))
+ bwipe!
+enddef
+
def Fibonacci(n: number): number
if n < 2
return n
diff --git a/src/version.c b/src/version.c
index 4b9100c..750e287 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1614,
+/**/
1613,
/**/
1612,