Skip to content

Commit 036c2cf

Browse files
committed
patch 8.2.1602: Vim9: cannot use 'true" with getbufinfo()
Problem: Vim9: cannot use 'true" with getbufinfo(). Solution: Use dict_get_bool(). (closes #6873)
1 parent 2df4731 commit 036c2cf

3 files changed

Lines changed: 14 additions & 15 deletions

File tree

src/evalbuffer.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -624,21 +624,11 @@ f_getbufinfo(typval_T *argvars, typval_T *rettv)
624624

625625
if (sel_d != NULL)
626626
{
627-
dictitem_T *di;
628-
629627
filtered = TRUE;
630-
631-
di = dict_find(sel_d, (char_u *)"buflisted", -1);
632-
if (di != NULL && tv_get_number(&di->di_tv))
633-
sel_buflisted = TRUE;
634-
635-
di = dict_find(sel_d, (char_u *)"bufloaded", -1);
636-
if (di != NULL && tv_get_number(&di->di_tv))
637-
sel_bufloaded = TRUE;
638-
639-
di = dict_find(sel_d, (char_u *)"bufmodified", -1);
640-
if (di != NULL && tv_get_number(&di->di_tv))
641-
sel_bufmodified = TRUE;
628+
sel_buflisted = dict_get_bool(sel_d, (char_u *)"buflisted", FALSE);
629+
sel_bufloaded = dict_get_bool(sel_d, (char_u *)"bufloaded", FALSE);
630+
sel_bufmodified = dict_get_bool(sel_d, (char_u *)"bufmodified",
631+
FALSE);
642632
}
643633
}
644634
else if (argvars[0].v_type != VAR_UNKNOWN)

src/testdir/test_vim9_func.vim

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1493,9 +1493,16 @@ def Test_bufname()
14931493
close
14941494
enddef
14951495

1496-
def Test_gebufinfo()
1496+
def Test_getbufinfo()
14971497
let bufinfo = getbufinfo(bufnr())
14981498
assert_equal(bufinfo, getbufinfo('%'))
1499+
1500+
edit Xtestfile1
1501+
hide edit Xtestfile2
1502+
hide enew
1503+
getbufinfo(#{bufloaded: true, buflisted: true, bufmodified: false})
1504+
->len()->assert_equal(3)
1505+
bwipe Xtestfile1 Xtestfile2
14991506
enddef
15001507

15011508
def Fibonacci(n: number): number

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -754,6 +754,8 @@ static char *(features[]) =
754754

755755
static int included_patches[] =
756756
{ /* Add new patch number below this line */
757+
/**/
758+
1602,
757759
/**/
758760
1601,
759761
/**/

0 commit comments

Comments
 (0)