aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/quickfix.c4
-rw-r--r--src/nvim/version.c2
-rw-r--r--test/functional/legacy/quickfix_spec.lua22
3 files changed, 26 insertions, 2 deletions
diff --git a/src/nvim/quickfix.c b/src/nvim/quickfix.c
index f23037613b..d6697902ef 100644
--- a/src/nvim/quickfix.c
+++ b/src/nvim/quickfix.c
@@ -2970,6 +2970,7 @@ void ex_vimgrep(exarg_T *eap)
/* Get the search pattern: either white-separated or enclosed in // */
regmatch.regprog = NULL;
+ char_u *title = vim_strsave(*eap->cmdlinep);
p = skip_vimgrep_pat(eap->arg, &s, &flags);
if (p == NULL) {
EMSG(_(e_invalpat));
@@ -3001,7 +3002,7 @@ void ex_vimgrep(exarg_T *eap)
&& eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
|| qi->qf_curlist == qi->qf_listcount) {
// make place for a new list
- qf_new_list(qi, *eap->cmdlinep);
+ qf_new_list(qi, title != NULL ? title : *eap->cmdlinep);
} else if (qi->qf_lists[qi->qf_curlist].qf_count > 0) {
// Adding to existing list, find last entry.
for (prevp = qi->qf_lists[qi->qf_curlist].qf_start;
@@ -3229,6 +3230,7 @@ void ex_vimgrep(exarg_T *eap)
}
theend:
+ xfree(title);
xfree(dirname_now);
xfree(dirname_start);
xfree(target_dir);
diff --git a/src/nvim/version.c b/src/nvim/version.c
index 055a997cd4..67487ed253 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -853,7 +853,7 @@ static int included_patches[] = {
// 1594 NA
// 1593 NA
1592,
- // 1591,
+ 1591,
// 1590,
// 1589,
1588,
diff --git a/test/functional/legacy/quickfix_spec.lua b/test/functional/legacy/quickfix_spec.lua
index 7657b8641b..8faaa7b535 100644
--- a/test/functional/legacy/quickfix_spec.lua
+++ b/test/functional/legacy/quickfix_spec.lua
@@ -389,6 +389,23 @@ describe('helpgrep', function()
augroup! testgroup
endfunction
+
+ func Test_vimgreptitle()
+ augroup QfBufWinEnter
+ au!
+ au BufWinEnter * :let g:a=get(w:, 'quickfix_title', 'NONE')
+ augroup END
+ try
+ vimgrep /pattern/j file
+ catch /E480/
+ endtry
+ copen
+ call assert_equal(': vimgrep /pattern/j file', g:a)
+ augroup QfBufWinEnter
+ au!
+ augroup END
+ augroup! QfBufWinEnter
+ endfunc
]])
end)
@@ -447,6 +464,11 @@ describe('helpgrep', function()
eq(':setqflist()', eval('g:foo'))
end)
+ it('does not truncate quickfix title', function()
+ call('Test_vimgreptitle')
+ expected_empty()
+ end)
+
it('errors when an autocommand closes the location list\'s window', function()
call('Test_locationlist_curwin_was_closed')
expected_empty()