summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <bram@vim.org>2012-01-20 13:39:07 +0100
committerBram Moolenaar <bram@vim.org>2012-01-20 13:39:07 +0100
commit19ea125db44b4a09c6d1763354bd18510229380a (patch)
tree8f76f9c810bb2f69ac5a3bcde958c7485aff0f9e
parentf356cd83e9ae21fb4f75a05b6030984f6fd076a7 (diff)
downloadvim-19ea125db44b4a09c6d1763354bd18510229380a.tar.gz
updated for version 7.3.403v7.3.403v7-3-403
Problem: ":helpgrep" does not trigger QuickFixCmd* autocommands. Solution: Trigger the autocommands. (Christian Brabandt)
-rw-r--r--src/quickfix.c38
-rw-r--r--src/version.c2
2 files changed, 36 insertions, 4 deletions
diff --git a/src/quickfix.c b/src/quickfix.c
index fdf24568..d23b03e2 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -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);
diff --git a/src/version.c b/src/version.c
index 7aa17efe..7fc23028 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 */
/**/
+ 403,
+/**/
402,
/**/
401,