# HG changeset patch # User Bram Moolenaar # Date 1576619103 -3600 # Node ID cf051bdefb3f860a279223a9c9424084c9a3e16f # Parent 0a2d1ed58482cb7f5b941f8785fb8cdf1673c9e4 patch 8.2.0019: cannot number of lines of another buffer Commit: https://github.com/vim/vim/commit/a9e9679de3ef082ee29868ab404283dfc53258f2 Author: Bram Moolenaar 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) diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- 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. diff --git a/src/evalbuffer.c b/src/evalbuffer.c --- 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)); 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 @@ -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 diff --git a/src/version.c b/src/version.c --- 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,