From 7c979f972ede6c47b734fe547873848de438ba54 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Mon, 20 May 2019 13:34:48 -0400 Subject: vim-patch:8.0.1519: getchangelist() does not use argument as bufname() Problem: Getchangelist() does not use argument as bufname(). Solution: Use get_buf_tv(). (Yegappan Lakshmanan, closes vim/vim#2641) https://github.com/vim/vim/commit/341a64c9cabff08e4a7dc8cd932a598e12134457 --- src/nvim/eval.c | 5 ++++- src/nvim/testdir/test_changelist.vim | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 7229b2f977..de510a8bca 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -9551,7 +9551,10 @@ f_getbufvar_end: static void f_getchangelist(typval_T *argvars, typval_T *rettv, FunPtr fptr) { tv_list_alloc_ret(rettv, 2); - const buf_T *const buf = find_buffer(&argvars[0]); + vim_ignored = tv_get_number(&argvars[0]); // issue errmsg if type error + emsg_off++; + const buf_T *const buf = tv_get_buf(&argvars[0], false); + emsg_off--; if (buf == NULL) { return; } diff --git a/src/nvim/testdir/test_changelist.vim b/src/nvim/testdir/test_changelist.vim index 0880fce840..dd6ea9600c 100644 --- a/src/nvim/testdir/test_changelist.vim +++ b/src/nvim/testdir/test_changelist.vim @@ -9,7 +9,7 @@ func Test_getchangelist() bwipe! enew call assert_equal([], getchangelist(10)) - call assert_equal([[], 0], getchangelist(bufnr('%'))) + call assert_equal([[], 0], getchangelist('%')) call writefile(['line1', 'line2', 'line3'], 'Xfile1.txt') call writefile(['line1', 'line2', 'line3'], 'Xfile2.txt') @@ -23,7 +23,7 @@ func Test_getchangelist() \ {'lnum' : 2, 'col' : 4, 'coladd' : 0}, \ {'lnum' : 4, 'col' : 4, 'coladd' : 0}, \ {'lnum' : 6, 'col' : 4, 'coladd' : 0}], 2], - \ getchangelist(bufnr('%'))) + \ getchangelist('%')) hide edit Xfile2.txt exe "normal 1GOline\u1.0" @@ -31,7 +31,7 @@ func Test_getchangelist() call assert_equal([[ \ {'lnum' : 1, 'col' : 6, 'coladd' : 0}, \ {'lnum' : 3, 'col' : 6, 'coladd' : 0}], 2], - \ getchangelist(bufnr('%'))) + \ getchangelist('%')) hide enew call assert_equal([[ -- cgit