diff --git a/src/eval.c b/src/eval.c index b50dbee41c..9ff9337765 100644 --- a/src/eval.c +++ b/src/eval.c @@ -21687,7 +21687,6 @@ handle_subscript( char_u *s; int len; typval_T functv; - partial_T *pt = NULL; while (ret == OK && (**arg == '[' @@ -21698,6 +21697,8 @@ handle_subscript( { if (**arg == '(') { + partial_T *pt = NULL; + /* need to copy the funcref so that we can clear rettv */ if (evaluate) { diff --git a/src/quickfix.c b/src/quickfix.c index eb6433eaf9..8dfad2ec84 100644 --- a/src/quickfix.c +++ b/src/quickfix.c @@ -3286,6 +3286,7 @@ ex_vimgrep(exarg_T *eap) int fcount; char_u **fnames; char_u *fname; + char_u *title; char_u *s; char_u *p; int fi; @@ -3354,6 +3355,7 @@ ex_vimgrep(exarg_T *eap) /* Get the search pattern: either white-separated or enclosed in // */ regmatch.regprog = NULL; + title = vim_strsave(*eap->cmdlinep); p = skip_vimgrep_pat(eap->arg, &s, &flags); if (p == NULL) { @@ -3390,7 +3392,7 @@ 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; @@ -3669,6 +3671,7 @@ ex_vimgrep(exarg_T *eap) } theend: + vim_free(title); vim_free(dirname_now); vim_free(dirname_start); vim_free(target_dir); diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim index d551febdf5..5982aeef1b 100644 --- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -317,6 +317,23 @@ func Test_errortitle() augroup! QfBufWinEnter endfunc +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 + function XqfTitleTests(cchar) let Xgetexpr = a:cchar . 'getexpr' if a:cchar == 'c' diff --git a/src/version.c b/src/version.c index 4e4c586f40..6ac897979b 100644 --- a/src/version.c +++ b/src/version.c @@ -763,6 +763,10 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1591, +/**/ + 1590, /**/ 1589, /**/