grep.c: reuse "icase" variable
[gitweb.git] / grep.c
diff --git a/grep.c b/grep.c
index af920c45425cddc2778cdf627c28adf6e7138fb7..906406a182b72dec378e623840ea09d3f1f59b08 100644 (file)
--- a/grep.c
+++ b/grep.c
@@ -329,6 +329,8 @@ static void compile_pcre_regexp(struct grep_pat *p, const struct grep_opt *opt)
                        p->pcre_tables = pcre_maketables();
                options |= PCRE_CASELESS;
        }
+       if (is_utf8_locale() && has_non_ascii(p->pattern))
+               options |= PCRE_UTF8;
 
        p->pcre_regexp = pcre_compile(p->pattern, options, &error, &erroffset,
                                      p->pcre_tables);
@@ -452,10 +454,7 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt)
                p->fixed = 0;
 
        if (p->fixed) {
-               if (opt->regflags & REG_ICASE || p->ignore_case)
-                       p->kws = kwsalloc(tolower_trans_tbl);
-               else
-                       p->kws = kwsalloc(NULL);
+               p->kws = kwsalloc(icase ? tolower_trans_tbl : NULL);
                kwsincr(p->kws, p->pattern, p->patternlen);
                kwsprep(p->kws);
                return;