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)
This commit is contained in:
10
src/search.c
10
src/search.c
@ -4062,7 +4062,7 @@ f_searchcount(typval_T *argvars, typval_T *rettv)
|
||||
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 @@ f_searchcount(typval_T *argvars, typval_T *rettv)
|
||||
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)
|
||||
{
|
||||
|
||||
@ -1533,6 +1533,20 @@ def Test_nr2char()
|
||||
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
|
||||
|
||||
@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1614,
|
||||
/**/
|
||||
1613,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user