updated for version 7.0195
diff --git a/src/quickfix.c b/src/quickfix.c
index f9278a2..ba6bcf0 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -2575,8 +2575,10 @@
grep_internal(cmdidx)
cmdidx_T cmdidx;
{
- return ((cmdidx == CMD_grep || cmdidx == CMD_lgrep
- || cmdidx == CMD_grepadd || cmdidx == CMD_lgrepadd)
+ return ((cmdidx == CMD_grep
+ || cmdidx == CMD_lgrep
+ || cmdidx == CMD_grepadd
+ || cmdidx == CMD_lgrepadd)
&& STRCMP("internal",
*curbuf->b_p_gp == NUL ? p_gp : curbuf->b_p_gp) == 0);
}
@@ -2598,12 +2600,12 @@
switch (eap->cmdidx)
{
- case CMD_make: au_name = (char_u *)"make"; break;
- case CMD_lmake: au_name = (char_u *)"lmake"; break;
- case CMD_grep: au_name = (char_u *)"grep"; break;
- case CMD_lgrep: au_name = (char_u *)"lgrep"; break;
- case CMD_grepadd: au_name = (char_u *)"grepadd"; break;
- case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
+ case CMD_make: au_name = (char_u *)"make"; break;
+ case CMD_lmake: au_name = (char_u *)"lmake"; break;
+ case CMD_grep: au_name = (char_u *)"grep"; break;
+ case CMD_lgrep: au_name = (char_u *)"lgrep"; break;
+ case CMD_grepadd: au_name = (char_u *)"grepadd"; break;
+ case CMD_lgrepadd: au_name = (char_u *)"lgrepadd"; break;
default: break;
}
if (au_name != NULL)
@@ -2908,7 +2910,7 @@
}
#endif
- if (eap->cmdidx == CMD_grep
+ if (eap->cmdidx == CMD_lgrep
|| eap->cmdidx == CMD_lvimgrep
|| eap->cmdidx == CMD_lgrepadd
|| eap->cmdidx == CMD_lvimgrepadd)
@@ -2939,7 +2941,7 @@
goto theend;
}
- if ((eap->cmdidx != CMD_grepadd && eap->cmdidx != CMD_lgrepadd &&
+ if ((eap->cmdidx != CMD_grepadd && eap->cmdidx != CMD_lgrepadd &&
eap->cmdidx != CMD_vimgrepadd && eap->cmdidx != CMD_lvimgrepadd)
|| qi->qf_curlist == qi->qf_listcount)
/* make place for a new list */
@@ -3476,10 +3478,15 @@
|| eap->line2 < 1 || eap->line2 > buf->b_ml.ml_line_count)
EMSG(_(e_invrange));
else
- qf_init_ext(qi, NULL, buf, NULL, p_efm,
- (eap->cmdidx == CMD_cbuffer
- || eap->cmdidx == CMD_lbuffer),
- eap->line1, eap->line2);
+ {
+ int buffer_cmd = (eap->cmdidx == CMD_cbuffer
+ || eap->cmdidx == CMD_lbuffer);
+
+ if (qf_init_ext(qi, NULL, buf, NULL, p_efm, buffer_cmd,
+ eap->line1, eap->line2) > 0
+ && buffer_cmd)
+ qf_jump(qi, 0, 0, eap->forceit); /* display first error */
+ }
}
}
@@ -3673,8 +3680,7 @@
if (eap->cmdidx == CMD_lhelpgrep)
{
/* If the help window is not opened or if it already points to the
- * correct location list, then free the new location list
- */
+ * correct location list, then free the new location list. */
if (!curwin->w_buffer->b_help || curwin->w_llist == qi)
{
if (new_qi)