Mercurial > vim
changeset 12299:f4d00472e617 v8.0.1029
patch 8.0.1029: return value of getqflist() is inconsistent
commit https://github.com/vim/vim/commit/da73253a0b908bad03ddcd625fe3fb32008efbf6
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 31 20:58:02 2017 +0200
patch 8.0.1029: return value of getqflist() is inconsistent
Problem: Return value of getqflist() is inconsistent. (Lcd47)
Solution: Always return an "items" entry.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 31 Aug 2017 21:00:04 +0200 |
parents | cf4149250bce |
children | 0214fd92157b |
files | src/quickfix.c src/testdir/test_quickfix.vim src/version.c |
diffstat | 3 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -4653,6 +4653,11 @@ qf_get_list_from_text(dictitem_T *di, di || (di->di_tv.v_type == VAR_LIST && di->di_tv.vval.v_list != NULL)) { + list_T *l = list_alloc(); + + if (l == NULL) + return FAIL; + qi = (qf_info_T *)alloc((unsigned)sizeof(qf_info_T)); if (qi != NULL) { @@ -4662,17 +4667,13 @@ qf_get_list_from_text(dictitem_T *di, di 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 = list_alloc(); - if (l != NULL) - { - (void)get_errorlist(qi, NULL, 0, l); - dict_add_list(retdict, "items", l); - status = OK; - } + (void)get_errorlist(qi, NULL, 0, l); qf_free(qi, 0); } free(qi); } + dict_add_list(retdict, "items", l); + status = OK; } return status;
--- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -2536,7 +2536,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)