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


*** ../vim-7.3.569/src/ex_cmds2.c	2012-06-20 15:48:53.000000000 +0200
--- src/ex_cmds2.c	2012-06-29 12:43:34.000000000 +0200
***************
*** 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;
  }
*** ../vim-7.3.569/src/proto/ex_cmds2.pro	2011-05-19 18:26:34.000000000 +0200
--- src/proto/ex_cmds2.pro	2012-06-29 12:43:49.000000000 +0200
***************
*** 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));
*** ../vim-7.3.569/src/quickfix.c	2012-06-01 18:34:37.000000000 +0200
--- src/quickfix.c	2012-06-29 12:43:49.000000000 +0200
***************
*** 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)
      {
*** ../vim-7.3.569/src/spell.c	2012-06-01 17:49:51.000000000 +0200
--- src/spell.c	2012-06-29 12:43:49.000000000 +0200
***************
*** 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);
*** ../vim-7.3.569/src/version.c	2012-06-29 12:54:32.000000000 +0200
--- src/version.c	2012-06-29 12:56:12.000000000 +0200
***************
*** 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    ///
