# HG changeset patch # User Bram Moolenaar # Date 1612026904 -3600 # Node ID 8b682f6f370912fa19a98de2b42b3b3c14e1a8a9 # Parent 0470364133439506fc7b54dfd0cc9e31614be402 patch 8.2.2430: :vimgrep expands wildcards twice Commit: https://github.com/vim/vim/commit/f8c6a1718007432812184c28495e8d27ee6c0395 Author: Bram Moolenaar Date: Sat Jan 30 18:09:06 2021 +0100 patch 8.2.2430: :vimgrep expands wildcards twice Problem: :vimgrep expands wildcards twice. Solution: Do not expand wildcards a second time. diff --git a/src/arglist.c b/src/arglist.c --- a/src/arglist.c +++ b/src/arglist.c @@ -315,10 +315,10 @@ get_arglist_exp( return FAIL; if (wig == TRUE) i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data, - fcountp, fnamesp, EW_FILE|EW_NOTFOUND); + fcountp, fnamesp, EW_FILE|EW_NOTFOUND|EW_NOTWILD); else i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data, - fcountp, fnamesp, EW_FILE|EW_NOTFOUND); + fcountp, fnamesp, EW_FILE|EW_NOTFOUND|EW_NOTWILD); ga_clear(&ga); return i; diff --git a/src/quickfix.c b/src/quickfix.c --- a/src/quickfix.c +++ b/src/quickfix.c @@ -6053,7 +6053,7 @@ vgr_process_args( return FAIL; } - // parse the list of arguments + // Parse the list of arguments, wildcards have already been expanded. if (get_arglist_exp(p, &args->fcount, &args->fnames, TRUE) == FAIL) return FAIL; if (args->fcount == 0) diff --git a/src/testdir/test_quickfix.vim b/src/testdir/test_quickfix.vim --- a/src/testdir/test_quickfix.vim +++ b/src/testdir/test_quickfix.vim @@ -2865,6 +2865,13 @@ func Test_vimgrep() call XvimgrepTests('l') endfunc +func Test_vimgrep_wildcards_expanded_once() + new X[id-01] file.txt + call setline(1, 'some text to search for') + vimgrep text % + bwipe! +endfunc + " Test for incsearch highlighting of the :vimgrep pattern " This test used to cause "E315: ml_get: invalid lnum" errors. func Test_vimgrep_incsearch() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2430, +/**/ 2429, /**/ 2428,