diff options
author | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-08 09:38:14 -0400 |
---|---|---|
committer | Jan Edmund Lazo <janedmundlazo@hotmail.com> | 2018-09-08 10:43:30 -0400 |
commit | 1790f81f56087e45f24e82fb8d5f99a9e0f59d49 (patch) | |
tree | 704526b74328fad6b1743a29b11fafcdf7cf27f7 | |
parent | 9bf2741ba4dda8f7b0864858daaad52e596dd856 (diff) | |
download | rneovim-1790f81f56087e45f24e82fb8d5f99a9e0f59d49.tar.gz rneovim-1790f81f56087e45f24e82fb8d5f99a9e0f59d49.tar.bz2 rneovim-1790f81f56087e45f24e82fb8d5f99a9e0f59d49.zip |
vim-patch:8.0.1029: return value of getqflist() is inconsistent
Problem: Return value of getqflist() is inconsistent. (Lcd47)
Solution: Always return an "items" entry.
https://github.com/vim/vim/commit/da73253a0b908bad03ddcd625fe3fb32008efbf6
-rw-r--r-- | src/nvim/quickfix.c | 7 | ||||
-rw-r--r-- | src/nvim/testdir/test_quickfix.vim | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c index 1c03bd2d42..ec11e5d849 100644 --- a/src/nvim/quickfix.c +++ b/src/nvim/quickfix.c @@ -4131,19 +4131,20 @@ static int qf_get_list_from_text(dictitem_T *di, dict_T *retdict) && di->di_tv.vval.v_string != NULL) || (di->di_tv.v_type == VAR_LIST && di->di_tv.vval.v_list != NULL)) { + list_T *l = tv_list_alloc(kListLenMayKnow); qf_info_T *qi = xmalloc(sizeof(*qi)); memset(qi, 0, sizeof(*qi)); qi->qf_refcount++; if (qf_init_ext(qi, 0, NULL, NULL, &di->di_tv, p_efm, true, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0) { - list_T *l = tv_list_alloc(kListLenMayKnow); (void)get_errorlist(qi, NULL, 0, l); - tv_dict_add_list(retdict, S_LEN("items"), l); - status = OK; qf_free(qi, 0); } xfree(qi); + + tv_dict_add_list(retdict, S_LEN("items"), l); + status = OK; } return status; diff --git a/src/nvim/testdir/test_quickfix.vim b/src/nvim/testdir/test_quickfix.vim index c2c4f0bfdd..c6324b1dc2 100644 --- a/src/nvim/testdir/test_quickfix.vim +++ b/src/nvim/testdir/test_quickfix.vim @@ -2518,7 +2518,7 @@ func XgetListFromText(cchar) call assert_equal(30, l[1].lnum) call assert_equal({}, g:Xgetlist({'text' : 10})) - call assert_equal({}, g:Xgetlist({'text' : []})) + call assert_equal([], g:Xgetlist({'text' : []}).items) " Make sure that the quickfix stack is not modified call assert_equal(0, g:Xgetlist({'nr' : '$'}).nr) |