| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.570 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.570 |
| Problem: ":vimgrep" does not obey 'wildignore'. |
| Solution: Apply 'wildignore' and 'suffixes' to ":vimgrep". (Ingo Karkat) |
| Files: src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/quickfix.c, src/spell.c |
| |
| |
| |
| |
| |
| *** 1850,1871 **** |
| #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO) |
| /* |
| * Parse a list of arguments (file names), expand them and return in |
| ! * "fnames[fcountp]". |
| * Return FAIL or OK. |
| */ |
| int |
| ! get_arglist_exp(str, fcountp, fnamesp) |
| char_u *str; |
| int *fcountp; |
| char_u ***fnamesp; |
| { |
| 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); |
| ga_clear(&ga); |
| return i; |
| } |
| --- 1850,1877 ---- |
| #if defined(FEAT_QUICKFIX) || defined(FEAT_SYN_HL) || defined(PROTO) |
| /* |
| * Parse a list of arguments (file names), expand them and return in |
| ! * "fnames[fcountp]". When "wig" is TRUE, removes files matching 'wildignore'. |
| * Return FAIL or OK. |
| */ |
| int |
| ! 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; |
| ! 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; |
| } |
| |
| |
| |
| *** 42,48 **** |
| 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)); |
| void set_arglist __ARGS((char_u *str)); |
| void check_arg_idx __ARGS((win_T *win)); |
| void ex_args __ARGS((exarg_T *eap)); |
| --- 42,48 ---- |
| 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 wig)); |
| void set_arglist __ARGS((char_u *str)); |
| void check_arg_idx __ARGS((win_T *win)); |
| void ex_args __ARGS((exarg_T *eap)); |
| |
| |
| |
| *** 3189,3195 **** |
| ; |
| |
| /* parse the list of arguments */ |
| ! if (get_arglist_exp(p, &fcount, &fnames) == FAIL) |
| goto theend; |
| if (fcount == 0) |
| { |
| --- 3189,3195 ---- |
| ; |
| |
| /* parse the list of arguments */ |
| ! if (get_arglist_exp(p, &fcount, &fnames, TRUE) == FAIL) |
| goto theend; |
| if (fcount == 0) |
| { |
| |
| |
| |
| *** 8553,8559 **** |
| } |
| |
| /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */ |
| ! if (get_arglist_exp(arg, &fcount, &fnames) == OK) |
| { |
| mkspell(fcount, fnames, ascii, eap->forceit, FALSE); |
| FreeWild(fcount, fnames); |
| --- 8553,8559 ---- |
| } |
| |
| /* Expand all the remaining arguments (e.g., $VIMRUNTIME). */ |
| ! if (get_arglist_exp(arg, &fcount, &fnames, FALSE) == OK) |
| { |
| mkspell(fcount, fnames, ascii, eap->forceit, FALSE); |
| FreeWild(fcount, fnames); |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 570, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 70. ISDN lines are added to your house on a hourly basis |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |