updated for version 7.3.403 v7.3.403
authorBram Moolenaar <Bram@vim.org>
Fri, 20 Jan 2012 12:39:07 +0000 (13:39 +0100)
committerBram Moolenaar <Bram@vim.org>
Fri, 20 Jan 2012 12:39:07 +0000 (13:39 +0100)
Problem:    ":helpgrep" does not trigger QuickFixCmd* autocommands.
Solution:   Trigger the autocommands. (Christian Brabandt)

src/quickfix.c
src/version.c

index fdf245685f9126d4a5c98c9d613959a00c22c15e..d23b03e2e0f8896a78463a91023b9faf146c790c 100644 (file)
@@ -3878,16 +3878,35 @@ ex_helpgrep(eap)
     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_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,6 +4055,17 @@ ex_helpgrep(eap)
     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);
index 7aa17efe1692f8dbf51cd9b521e1105e7e1c1c8c..7fc230282438640a6c5f17af2512dfa32c1f5463 100644 (file)
@@ -714,6 +714,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    403,
 /**/
     402,
 /**/