To: vim_dev@googlegroups.com
Subject: Patch 7.3.403
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.403
Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
Solution:   Trigger the autocommands. (Christian Brabandt)
Files:	    src/quickfix.c


*** ../vim-7.3.402/src/quickfix.c	2012-01-20 13:28:28.000000000 +0100
--- src/quickfix.c	2012-01-20 13:37:10.000000000 +0100
***************
*** 3878,3893 ****
      qf_info_T	*qi = &ql_info;
      int		new_qi = FALSE;
      win_T	*wp;
! 
!     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
!     save_cpo = p_cpo;
!     p_cpo = empty_option;
  
  #ifdef FEAT_MULTI_LANG
      /* Check for a specified language */
      lang = check_help_lang(eap->arg);
  #endif
  
      if (eap->cmdidx == CMD_lhelpgrep)
      {
  	/* Find an existing help window */
--- 3878,3912 ----
      qf_info_T	*qi = &ql_info;
      int		new_qi = FALSE;
      win_T	*wp;
! #ifdef FEAT_AUTOCMD
!     char_u	*au_name =  NULL;
! #endif
  
  #ifdef FEAT_MULTI_LANG
      /* Check for a specified language */
      lang = check_help_lang(eap->arg);
  #endif
  
+ #ifdef FEAT_AUTOCMD
+     switch (eap->cmdidx)
+     {
+ 	case CMD_helpgrep:  au_name = (char_u *)"helpgrep"; break;
+ 	case CMD_lhelpgrep: au_name = (char_u *)"lhelpgrep"; break;
+ 	default: break;
+     }
+     if (au_name != NULL)
+     {
+ 	apply_autocmds(EVENT_QUICKFIXCMDPRE, au_name,
+ 					       curbuf->b_fname, TRUE, curbuf);
+ 	if (did_throw || force_abort)
+ 	    return;
+     }
+ #endif
+ 
+     /* Make 'cpoptions' empty, the 'l' flag should not be used here. */
+     save_cpo = p_cpo;
+     p_cpo = empty_option;
+ 
      if (eap->cmdidx == CMD_lhelpgrep)
      {
  	/* Find an existing help window */
***************
*** 4036,4041 ****
--- 4055,4071 ----
      qf_update_buffer(qi);
  #endif
  
+ #ifdef FEAT_AUTOCMD
+     if (au_name != NULL)
+     {
+ 	apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
+ 					       curbuf->b_fname, TRUE, curbuf);
+ 	if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
+ 	    /* autocommands made "qi" invalid */
+ 	    return;
+     }
+ #endif
+ 
      /* Jump to first match. */
      if (qi->qf_lists[qi->qf_curlist].qf_count > 0)
  	qf_jump(qi, 0, 0, FALSE);
*** ../vim-7.3.402/src/version.c	2012-01-20 13:28:28.000000000 +0100
--- src/version.c	2012-01-20 13:30:37.000000000 +0100
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     403,
  /**/

-- 
Looking at Perl through Lisp glasses, Perl looks atrocious.

 /// 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    ///
