0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.0.0484: :lhelpgrep does not fail after a successful one

Problem:    Using :lhelpgrep with an argument that should fail does not
            produce an error if the previous :helpgrep worked.
Solution:   Use another way to detect that autocommands made the quickfix info
            invalid. (Yegappan Lakshmanan)
This commit is contained in:
Bram Moolenaar
2017-03-19 14:19:50 +01:00
parent f79225ed4f
commit ee85df3763
3 changed files with 150 additions and 40 deletions

View File

@@ -5077,6 +5077,7 @@ ex_helpgrep(exarg_T *eap)
char_u *lang;
#endif
qf_info_T *qi = &ql_info;
qf_info_T *save_qi;
int new_qi = FALSE;
win_T *wp;
#ifdef FEAT_AUTOCMD
@@ -5130,6 +5131,9 @@ ex_helpgrep(exarg_T *eap)
}
}
/* Autocommands may change the list. Save it for later comparison */
save_qi = qi;
regmatch.regprog = vim_regcomp(eap->arg, RE_MAGIC + RE_STRING);
regmatch.rm_ic = FALSE;
if (regmatch.regprog != NULL)
@@ -5262,7 +5266,7 @@ ex_helpgrep(exarg_T *eap)
{
apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
curbuf->b_fname, TRUE, curbuf);
if (!new_qi && qi != &ql_info && qf_find_buf(qi) == NULL)
if (!new_qi && qi != save_qi && qf_find_buf(qi) == NULL)
/* autocommands made "qi" invalid */
return;
}