patch 8.2.4494: the find_tags() function is much too long
Problem: The find_tags() function is much too long.
Solution: Refactor the function. (Yegappan Lakshmanan, closes #9869)
diff --git a/src/quickfix.c b/src/quickfix.c
index 10fc4e0..db60717 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -5013,6 +5013,8 @@
int res;
char_u *au_name = NULL;
int_u save_qfid;
+ char_u *errorformat = p_efm;
+ int newlist = TRUE;
// Redirect ":grep" to ":vimgrep" if 'grepprg' is "internal".
if (grep_internal(eap->cmdidx))
@@ -5059,11 +5061,13 @@
incr_quickfix_busy();
- res = qf_init(wp, fname, (eap->cmdidx != CMD_make
- && eap->cmdidx != CMD_lmake) ? p_gefm : p_efm,
- (eap->cmdidx != CMD_grepadd
- && eap->cmdidx != CMD_lgrepadd),
- qf_cmdtitle(*eap->cmdlinep), enc);
+ if (eap->cmdidx != CMD_make && eap->cmdidx != CMD_lmake)
+ errorformat = p_gefm;
+ if (eap->cmdidx == CMD_grepadd || eap->cmdidx == CMD_lgrepadd)
+ newlist = FALSE;
+
+ res = qf_init(wp, fname, errorformat, newlist, qf_cmdtitle(*eap->cmdlinep),
+ enc);
if (wp != NULL)
{
qi = GET_LOC_LIST(wp);