summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evalbuffer.c18
-rw-r--r--src/testdir/test_vim9_func.vim9
-rw-r--r--src/version.c2
3 files changed, 14 insertions, 15 deletions
diff --git a/src/evalbuffer.c b/src/evalbuffer.c
index 4ca68c8bb..34155b9cb 100644
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -624,21 +624,11 @@ f_getbufinfo(typval_T *argvars, typval_T *rettv)
if (sel_d != NULL)
{
- dictitem_T *di;
-
filtered = TRUE;
-
- di = dict_find(sel_d, (char_u *)"buflisted", -1);
- if (di != NULL && tv_get_number(&di->di_tv))
- sel_buflisted = TRUE;
-
- di = dict_find(sel_d, (char_u *)"bufloaded", -1);
- if (di != NULL && tv_get_number(&di->di_tv))
- sel_bufloaded = TRUE;
-
- di = dict_find(sel_d, (char_u *)"bufmodified", -1);
- if (di != NULL && tv_get_number(&di->di_tv))
- sel_bufmodified = TRUE;
+ sel_buflisted = dict_get_bool(sel_d, (char_u *)"buflisted", FALSE);
+ sel_bufloaded = dict_get_bool(sel_d, (char_u *)"bufloaded", FALSE);
+ sel_bufmodified = dict_get_bool(sel_d, (char_u *)"bufmodified",
+ FALSE);
}
}
else if (argvars[0].v_type != VAR_UNKNOWN)
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 7cc323c1e..7303db997 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1493,9 +1493,16 @@ def Test_bufname()
close
enddef
-def Test_gebufinfo()
+def Test_getbufinfo()
let bufinfo = getbufinfo(bufnr())
assert_equal(bufinfo, getbufinfo('%'))
+
+ edit Xtestfile1
+ hide edit Xtestfile2
+ hide enew
+ getbufinfo(#{bufloaded: true, buflisted: true, bufmodified: false})
+ ->len()->assert_equal(3)
+ bwipe Xtestfile1 Xtestfile2
enddef
def Fibonacci(n: number): number
diff --git a/src/version.c b/src/version.c
index ab9c0c41d..9a58f113c 100644
--- 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 */
/**/
+ 1602,
+/**/
1601,
/**/
1600,