forked from aniani/vim
patch 8.2.1610: Vim9: cannot pass "true" to list2str() and str2list()
Problem: Vim9: cannot pass "true" to list2str() and str2list(). Solution: Use tv_get_bool_chk(). (closes #6877)
This commit is contained in:
@@ -7982,7 +7982,7 @@ f_str2list(typval_T *argvars, typval_T *rettv)
|
||||
return;
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
utf8 = (int)tv_get_number_chk(&argvars[1], NULL);
|
||||
utf8 = (int)tv_get_bool_chk(&argvars[1], NULL);
|
||||
|
||||
p = tv_get_string(&argvars[0]);
|
||||
|
||||
|
@@ -1397,7 +1397,7 @@ f_list2str(typval_T *argvars, typval_T *rettv)
|
||||
return; // empty list results in empty string
|
||||
|
||||
if (argvars[1].v_type != VAR_UNKNOWN)
|
||||
utf8 = (int)tv_get_number_chk(&argvars[1], NULL);
|
||||
utf8 = (int)tv_get_bool_chk(&argvars[1], NULL);
|
||||
|
||||
CHECK_LIST_MATERIALIZE(l);
|
||||
ga_init2(&ga, 1, 80);
|
||||
|
@@ -1522,6 +1522,13 @@ def Test_has()
|
||||
assert_equal(1, has('eval', true))
|
||||
enddef
|
||||
|
||||
def Test_list2str_str2list_utf8()
|
||||
let s = "\u3042\u3044"
|
||||
let l = [0x3042, 0x3044]
|
||||
assert_equal(l, str2list(s, true))
|
||||
assert_equal(s, list2str(l, true))
|
||||
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 */
|
||||
/**/
|
||||
1610,
|
||||
/**/
|
||||
1609,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user