diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-05-15 21:56:34 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-05-15 21:56:34 +0200 |
commit | 78ddc06bdd5c59cffdbb61eed7dcb5dcc4a17f19 (patch) | |
tree | 13144f5a3e548e7ed02527cfc14a7eca724bf9c9 | |
parent | 8776889b5befd8eba66f4ad32282db36f85392a6 (diff) | |
download | vim-git-78ddc06bdd5c59cffdbb61eed7dcb5dcc4a17f19.tar.gz |
patch 8.0.1844: superfluous quickfix code, missing examplesv8.0.1844
Problem: Superfluous quickfix code, missing examples.
Solution: Remove unneeded code. Add a few examples. Add a bit more
testing. (Yegappan Lakshmanan, closes #2916)
-rw-r--r-- | runtime/doc/quickfix.txt | 14 | ||||
-rw-r--r-- | src/quickfix.c | 10 | ||||
-rw-r--r-- | src/testdir/test_quickfix.vim | 7 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 23 insertions, 10 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 83379b81a..5f2a4ddf2 100644 --- 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() functions can be used to set the various 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') diff --git a/src/quickfix.c b/src/quickfix.c index 98360d019..f8bfa41e3 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -5798,16 +5798,6 @@ qf_setprop_items(qf_info_T *qi, int qf_idx, dictitem_T *di, int action) 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; diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim index 985b28129..c3850ce1f 100644 --- 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 diff --git a/src/version.c b/src/version.c index 788ba2462..145167dab 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1844, +/**/ 1843, /**/ 1842, |