diff options
-rw-r--r-- | src/nvim/quickfix.c | 4 | ||||
-rw-r--r-- | src/nvim/version.c | 2 | ||||
-rw-r--r-- | test/functional/legacy/quickfix_spec.lua | 22 |
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() |