# HG changeset patch # User Bram Moolenaar # Date 1595104204 -7200 # Node ID 95e6fb6a5c86f1108d925cd78e475cc26b15e447 # Parent 17c6dd970b131b8efe80653160c001af64a9cfa5 patch 8.2.1241: cannot use getbufinfo() as a method Commit: https://github.com/vim/vim/commit/6434fc574dfbde11461e70e5a62712370edf38e6 Author: Bram Moolenaar Date: Sat Jul 18 22:24:22 2020 +0200 patch 8.2.1241: cannot use getbufinfo() as a method Problem: Cannot use getbufinfo() as a method. Solution: Support using getbufinfo() as a method. (closes https://github.com/vim/vim/issues/6458) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -4929,8 +4929,11 @@ getbufinfo([{dict}]) < To get buffer-local options use: > getbufvar({bufnr}, '&option_name') - -< +< + Can also be used as a |method|: > + GetBufnr()->getbufinfo() +< + *getbufline()* getbufline({expr}, {lnum} [, {end}]) Return a |List| with the lines starting from {lnum} to {end} diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -611,7 +611,7 @@ static funcentry_T global_functions[] = {"function", 1, 3, FEARG_1, ret_f_function, f_function}, {"garbagecollect", 0, 1, 0, ret_void, f_garbagecollect}, {"get", 2, 3, FEARG_1, ret_any, f_get}, - {"getbufinfo", 0, 1, 0, ret_list_dict_any, f_getbufinfo}, + {"getbufinfo", 0, 1, FEARG_1, ret_list_dict_any, f_getbufinfo}, {"getbufline", 2, 3, FEARG_1, ret_list_string, f_getbufline}, {"getbufvar", 2, 3, FEARG_1, ret_any, f_getbufvar}, {"getchangelist", 0, 1, FEARG_1, ret_list_any, f_getchangelist}, diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim --- a/src/testdir/test_bufwintabinfo.vim +++ b/src/testdir/test_bufwintabinfo.vim @@ -23,6 +23,9 @@ func Test_getbufwintabinfo() call assert_equal('vim', l[0].variables.editor) call assert_notequal(-1, index(l[0].windows, '%'->bufwinid())) + let l = '%'->getbufinfo() + call assert_equal(bufnr('%'), l[0].bufnr) + " Test for getbufinfo() with 'bufmodified' call assert_equal(0, len(getbufinfo({'bufmodified' : 1}))) call setbufline('Xtestfile1', 1, ["Line1"]) diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 1241, +/**/ 1240, /**/ 1239,