grep: fix --fixed-strings combined with expression.
authorJunio C Hamano <junkio@cox.net>
Wed, 27 Sep 2006 23:42:53 +0000 (16:42 -0700)
committerJunio C Hamano <junkio@cox.net>
Wed, 27 Sep 2006 23:42:53 +0000 (16:42 -0700)
"git grep --fixed-strings -e GIT --and -e VERSION .gitignore"
misbehaved because we did not notice this needs to grab lines
that have the given two fixed strings at the same time.

Signed-off-by: Junio C Hamano <junkio@cox.net>
grep.c

diff --git a/grep.c b/grep.c
index 2c740bd..c411ddd 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -138,16 +138,13 @@ void compile_grep_patterns(struct grep_opt *opt)
 {
        struct grep_pat *p;
 
-       if (opt->fixed)
-               return;
-
-       /* First compile regexps */
        for (p = opt->pattern_list; p; p = p->next) {
                switch (p->token) {
                case GREP_PATTERN: /* atom */
                case GREP_PATTERN_HEAD:
                case GREP_PATTERN_BODY:
-                       compile_regexp(p, opt);
+                       if (!opt->fixed)
+                               compile_regexp(p, opt);
                        break;
                default:
                        opt->extended = 1;