git-grep: Bail out when -P is used with -F or -E
[gitweb.git] / builtin / grep.c
index 6831975104b35aa1c94d251d525f7f11702a757b..8f2602653ee1e017c326a726aa485dd17abd03df 100644 (file)
@@ -925,9 +925,11 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 
        if (!opt.pattern_list)
                die(_("no pattern given."));
+       if (opt.regflags != REG_NEWLINE && opt.pcre)
+               die(_("cannot mix --extended-regexp and --perl-regexp"));
        if (!opt.fixed && opt.ignore_case)
                opt.regflags |= REG_ICASE;
-       if ((opt.regflags != REG_NEWLINE) && opt.fixed)
+       if ((opt.regflags != REG_NEWLINE || opt.pcre) && opt.fixed)
                die(_("cannot mix --fixed-strings and regexp"));
 
 #ifndef NO_PTHREADS