summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2012-06-29 12:57:06 +0200
committerBram Moolenaar <bram@vim.org>2012-06-29 12:57:06 +0200
commit655dcdfda67d5721fa3dcd7aeeccf60b4534ef3a (patch)
treeefd21dedace22631685835830f2d41a66e960beb
parent0b850946d90df0e15e44942ed306dff2b0c4ebd2 (diff)
downloadvim-655dcdfda67d5721fa3dcd7aeeccf60b4534ef3a.tar.gz
updated for version 7.3.570v7.3.570v7-3-570
Problem: ":vimgrep" does not obey 'wildignore'. Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat)
-rw-r--r--src/ex_cmds2.c14
-rw-r--r--src/proto/ex_cmds2.pro2
-rw-r--r--src/quickfix.c2
-rw-r--r--src/spell.c2
-rw-r--r--src/version.c2
5 files changed, 15 insertions, 7 deletions
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index 5bc82425..d3bf04fa 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1850,22 +1850,28 @@ get_arglist(gap, str)
#if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO)
/*
* Parse a list of arguments (file names), expand them and return in
- * "fnames[fcountp]".
+ * "fnames[fcountp]". When "wig" is TRUE, removes files matching 'wildignore'.
* Return FAIL or OK.
*/
int
-get_arglist_exp(str, fcountp, fnamesp)
+get_arglist_exp(str, fcountp, fnamesp, wig)
char_u *str;
int *fcountp;
char_u ***fnamesp;
+ int wig;
{
garray_T ga;
int i;
if (get_arglist(&ga, str) == FAIL)
return FAIL;
- i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
- fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+ if (wig == TRUE)
+ i = expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
+ fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+ else
+ i = gen_expand_wildcards(ga.ga_len, (char_u **)ga.ga_data,
+ fcountp, fnamesp, EW_FILE|EW_NOTFOUND);
+
ga_clear(&ga);
return i;
}
diff --git a/src/proto/ex_cmds2.pro b/src/proto/ex_cmds2.pro
index dc3bb790..e4406d16 100644
--- a/src/proto/ex_cmds2.pro
+++ b/src/proto/ex_cmds2.pro
@@ -42,7 +42,7 @@ int check_changed_any __ARGS((int hidden));
int check_fname __ARGS((void));
int buf_write_all __ARGS((buf_T *buf, int forceit));
int get_arglist __ARGS((garray_T *gap, char_u *str));
-int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp));
+int get_arglist_exp __ARGS((char_u *str, int *fcountp, char_u ***fnamesp, int wig));
void set_arglist __ARGS((char_u *str));
void check_arg_idx __ARGS((win_T *win));
void ex_args __ARGS((exarg_T *eap));
diff --git a/src/quickfix.c b/src/quickfix.c
index bbcebe4e..a1c4fe5c 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -3189,7 +3189,7 @@ ex_vimgrep(eap)
;
/* parse the list of arguments */
- if (get_arglist_exp(p, &fcount, &fnames) == FAIL)
+ if (get_arglist_exp(p, &fcount, &fnames, TRUE) == FAIL)
goto theend;
if (fcount == 0)
{
diff --git a/src/spell.c b/src/spell.c
index f0f258a7..ea47b1b2 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -8553,7 +8553,7 @@ ex_mkspell(eap)
}
/* Expand all the remaining arguments (e.g., $VIMRUNTIME). */
- if (get_arglist_exp(arg, &fcount, &fnames) == OK)
+ if (get_arglist_exp(arg, &fcount, &fnames, FALSE) == OK)
{
mkspell(fcount, fnames, ascii, eap->forceit, FALSE);
FreeWild(fcount, fnames);
diff --git a/src/version.c b/src/version.c
index 95e57663..e60a4bed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 570,
+/**/
569,
/**/
568,