changeset 18916:cf051bdefb3f v8.2.0019

patch 8.2.0019: cannot number of lines of another buffer Commit: https://github.com/vim/vim/commit/a9e9679de3ef082ee29868ab404283dfc53258f2 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Dec 17 22:40:15 2019 +0100 patch 8.2.0019: cannot number of lines of another buffer Problem: Cannot number of lines of another buffer. Solution: Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto, closes #5370)
author Bram Moolenaar <Bram@vim.org>
date Tue, 17 Dec 2019 22:45:03 +0100
parents 0a2d1ed58482
children b042d6cbc493
files runtime/doc/eval.txt src/evalbuffer.c src/testdir/test_bufwintabinfo.vim src/version.c
diffstat 4 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -4796,6 +4796,8 @@ getbufinfo([{dict}])
 					{only with the |+viminfo| feature}
 			listed		TRUE if the buffer is listed.
 			lnum		current line number in buffer.
+			linecount	number of lines in the buffer (only
+					valid when loaded)
 			loaded		TRUE if the buffer is loaded.
 			name		full path to the file in the buffer.
 			signs		list of signs placed in the buffer.
--- a/src/evalbuffer.c
+++ b/src/evalbuffer.c
@@ -545,6 +545,7 @@ get_buffer_info(buf_T *buf)
     dict_add_string(dict, "name", buf->b_ffname);
     dict_add_number(dict, "lnum", buf == curbuf ? curwin->w_cursor.lnum
 						     : buflist_findlnum(buf));
+    dict_add_number(dict, "linecount", buf->b_ml.ml_line_count);
     dict_add_number(dict, "loaded", buf->b_ml.ml_mfp != NULL);
     dict_add_number(dict, "listed", buf->b_p_bl);
     dict_add_number(dict, "changed", bufIsChanged(buf));
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -154,3 +154,13 @@ function Test_getbufinfo_lastused()
   call assert_equal(getbufinfo('Xtestfile2')[0].lastused, 7654321)
   call test_settime(0)
 endfunc
+
+func Test_getbufinfo_lines()
+  new Xfoo
+  call setline(1, ['a', 'bc', 'd'])
+  let bn = bufnr('%')
+  hide
+  call assert_equal(3, getbufinfo(bn)[0]["linecount"])
+  edit Xfoo
+  bw!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    19,
+/**/
     18,
 /**/
     17,