updated for version 7.0026
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 3e5870b..3304167 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2114,7 +2114,7 @@
*/
if ((ea.cmdidx == CMD_make
|| ea.cmdidx == CMD_grep || ea.cmdidx == CMD_grepadd)
- && !grep_internal(&ea))
+ && !grep_internal(ea.cmdidx))
{
char_u *new_cmdline;
char_u *program;
@@ -3164,7 +3164,13 @@
p++;
xp->xp_pattern = p;
- if (argt & XFILE)
+ if ((argt & XFILE)
+#ifdef FEAT_QUICKFIX
+ || cmdidx == CMD_vimgrep
+ || cmdidx == CMD_vimgrepadd
+ || grep_internal(cmdidx)
+#endif
+ )
{
int in_quote = FALSE;
char_u *bow = NULL; /* Beginning of word */
@@ -4204,14 +4210,19 @@
p = eap->arg;
#ifdef FEAT_QUICKFIX
- if (eap->cmdidx == CMD_vimgrep
- || eap->cmdidx == CMD_vimgrepadd
- || grep_internal(eap))
+ if (*p != NUL && (eap->cmdidx == CMD_vimgrep
+ || eap->cmdidx == CMD_vimgrepadd
+ || grep_internal(eap->cmdidx)))
{
/* Skip over the pattern. */
- p = skip_regexp(p + 1, *p, TRUE, NULL);
- if (*p == *eap->arg)
- ++p;
+ if (vim_isIDc(*p))
+ p = skiptowhite(p);
+ else
+ {
+ p = skip_regexp(p + 1, *p, TRUE, NULL);
+ if (*p == *eap->arg)
+ ++p;
+ }
}
#endif