changeset 21381:95e6fb6a5c86 v8.2.1241

patch 8.2.1241: cannot use getbufinfo() as a method Commit: https://github.com/vim/vim/commit/6434fc574dfbde11461e70e5a62712370edf38e6 Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Sat, 18 Jul 2020 22:30:04 +0200
parents 17c6dd970b13
children 22083c0131d2
files runtime/doc/eval.txt src/evalfunc.c src/testdir/test_bufwintabinfo.vim src/version.c
diffstat 4 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- 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}
--- 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},
--- 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"])
--- 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,