summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-05-15 21:56:34 +0200
committerBram Moolenaar <Bram@vim.org>2018-05-15 21:56:34 +0200
commit78ddc06bdd5c59cffdbb61eed7dcb5dcc4a17f19 (patch)
tree13144f5a3e548e7ed02527cfc14a7eca724bf9c9
parent8776889b5befd8eba66f4ad32282db36f85392a6 (diff)
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.txt14
-rw-r--r--src/quickfix.c10
-rw-r--r--src/testdir/test_quickfix.vim7
-rw-r--r--src/version.c2
4 files changed, 23 insertions, 10 deletions
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index 83379b81a5..5f2a4ddf2b 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 98360d0199..f8bfa41e33 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 985b281291..c3850ce1f4 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 788ba2462e..145167dabd 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,