aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-11 00:05:53 -0400
committerJan Edmund Lazo <jan.lazo@mail.utoronto.ca>2020-10-11 01:24:54 -0400
commit4a54472098b3c321f5d51eba7e4e69e791517927 (patch)
treec083b53a97b7536c4f36b761997d94dbac877491
parentbdd0c31fb0078f92cc74e14ba94e77ae6be3cae1 (diff)
downloadrneovim-4a54472098b3c321f5d51eba7e4e69e791517927.tar.gz
rneovim-4a54472098b3c321f5d51eba7e4e69e791517927.tar.bz2
rneovim-4a54472098b3c321f5d51eba7e4e69e791517927.zip
vim-patch:8.2.1101: no error when using wrong arguments for setqflist()
Problem: No error when using wrong arguments for setqflist() or setloclist(). Solution: Check for the error. https://github.com/vim/vim/commit/be7a50c22f63478a6e64fe6b932a847830191b95
-rw-r--r--src/nvim/quickfix.c6
-rw-r--r--src/nvim/testdir/test_quickfix.vim3
-rw-r--r--test/functional/viml/errorlist_spec.lua2
3 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index ab05938c12..c0e32a2b13 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -6362,6 +6362,12 @@ int set_errorlist(win_T *wp, list_T *list, int action, char_u *title,
return OK;
}
+ // A dict argument cannot be specified with a non-empty list argument
+ if (list != NULL && tv_list_len(list) != 0 && what != NULL) {
+ EMSG2(_(e_invarg2), _("cannot have both a list and a \"what\" argument"));
+ return FAIL;
+ }
+
incr_quickfix_busy();
if (what != NULL) {
diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim
index a8dd383e8c..f9e79919e9 100644
--- a/src/nvim/testdir/test_quickfix.vim
+++ b/src/nvim/testdir/test_quickfix.vim
@@ -2173,6 +2173,9 @@ func Xproperty_tests(cchar)
call assert_equal(['Colors'], newl2.context)
call assert_equal('Line10', newl2.items[0].text)
call g:Xsetlist([], 'f')
+
+ " Cannot specify both a non-empty list argument and a dict argument
+ call assert_fails("call g:Xsetlist([{}], ' ', {})", 'E475:')
endfunc
func Test_qf_property()
diff --git a/test/functional/viml/errorlist_spec.lua b/test/functional/viml/errorlist_spec.lua
index c5390cbd12..9acc61e398 100644
--- a/test/functional/viml/errorlist_spec.lua
+++ b/test/functional/viml/errorlist_spec.lua
@@ -27,7 +27,7 @@ describe('setqflist()', function()
setqflist({''}, 'r', 'foo')
command('copen')
eq('foo', get_cur_win_var('quickfix_title'))
- setqflist({''}, 'r', {['title'] = 'qf_title'})
+ setqflist({}, 'r', {['title'] = 'qf_title'})
eq('qf_title', get_cur_win_var('quickfix_title'))
end)