Mercurial > vim
changeset 13948:2ed1585c6467 v8.0.1844
patch 8.0.1844: superfluous quickfix code, missing examples
commit https://github.com/vim/vim/commit/78ddc06bdd5c59cffdbb61eed7dcb5dcc4a17f19
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue May 15 21:56:34 2018 +0200
patch 8.0.1844: superfluous quickfix code, missing examples
Problem: Superfluous quickfix code, missing examples.
Solution: Remove unneeded code. Add a few examples. Add a bit more
testing. (Yegappan Lakshmanan, closes #2916)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 15 May 2018 22:00:07 +0200 |
parents | f50511179eee |
children | a607f9751fee |
files | runtime/doc/quickfix.txt src/quickfix.c src/testdir/test_quickfix.vim src/version.c |
diffstat | 4 files changed, 23 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -608,6 +608,12 @@ using these functions are below: " get the identifier of the current quickfix list :let qfid = getqflist({'id' : 0}).id + " get the identifier of the fourth quickfix list in the stack + :let qfid = getqflist({'nr' : 4, 'id' : 0}).id + + " check whether a quickfix list with a specific identifier exists + :if getqflist({'id' : qfid}).id == qfid + " get the index of the current quickfix list in the stack :let qfnum = getqflist({'nr' : 0}).nr @@ -653,6 +659,11 @@ The setqflist() and setloclist() functio attributes of a quickfix and location list respectively. Some examples for using these functions are below: > + " create an empty quickfix list with a title and a context + :let t = 'Search results' + :let c = {'cmd' : 'grep'} + :call setqflist([], ' ', {'title' : t, 'context' : c}) + " set the title of the current quickfix list :call setqflist([], 'a', {'title' : 'Mytitle'}) @@ -671,6 +682,9 @@ using these functions are below: \ {'filename' : 'b.txt', 'lnum' : 20, 'text' : "Orange"}] :call setqflist([], 'a', {'id' : qfid, 'items' : newItems}) + " empty a quickfix list specified by an identifier + :call setqflist([], 'r', {'id' : qfid, 'items' : []}) + " free all the quickfix lists in the stack :call setqflist([], 'f')
--- a/src/quickfix.c +++ b/src/quickfix.c @@ -5798,16 +5798,6 @@ qf_setprop_items(qf_info_T *qi, int qf_i title_save = vim_strsave(qi->qf_lists[qf_idx].qf_title); retval = qf_add_entries(qi, qf_idx, di->di_tv.vval.v_list, title_save, action == ' ' ? 'a' : action); - if (action == 'r') - { - /* - * When replacing the quickfix list entries using - * qf_add_entries(), the title is set with a ':' prefix. - * Restore the title with the saved title. - */ - vim_free(qi->qf_lists[qf_idx].qf_title); - qi->qf_lists[qf_idx].qf_title = vim_strsave(title_save); - } vim_free(title_save); return retval;
--- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -1185,6 +1185,13 @@ func Test_efm2() call assert_equal(1, len(l), string(l)) call assert_equal('|| msg2', l[0].text) + " When matching error lines, case should be ignored. Test for this. + set noignorecase + let l=getqflist({'lines' : ['Xtest:FOO10:Line 20'], 'efm':'%f:foo%l:%m'}) + call assert_equal(10, l.items[0].lnum) + call assert_equal('Line 20', l.items[0].text) + set ignorecase& + new | only let &efm = save_efm endfunc