grep-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Grep-devel] Proposed patch: remove DFA_CASE_FOLD


From: arnold
Subject: [Grep-devel] Proposed patch: remove DFA_CASE_FOLD
Date: Tue, 29 Nov 2016 03:49:52 -0700
User-agent: Heirloom mailx 12.4 7/29/08

Hi.

Regex already gives us RE_ICASE.  dfa.c can just use that instead
of DFA_CASE_FOLD.

For me this passes all tests.

Thanks,

Arnold
--------------------------------------
diff --git a/lib/dfa.c b/lib/dfa.c
index 673ef95..69eb16f 100644
--- a/lib/dfa.c
+++ b/lib/dfa.c
@@ -3992,7 +3992,7 @@ dfasyntax (struct dfa *dfa, struct localeinfo const 
*linfo,
   dfa->canychar = -1;
   dfa->lex.cur_mb_len = 1;
   dfa->syntax.syntax_bits_set = true;
-  dfa->syntax.case_fold = (dfaopts & DFA_CASE_FOLD) != 0;
+  dfa->syntax.case_fold = (bits & RE_ICASE) != 0;
   dfa->syntax.anchor = (dfaopts & DFA_ANCHOR) != 0;
   dfa->syntax.eolbyte = dfaopts & DFA_EOL_NUL ? '\0' : '\n';
   dfa->syntax.syntax_bits = bits;
diff --git a/lib/dfa.h b/lib/dfa.h
index 9787d76..500ee76 100644
--- a/lib/dfa.h
+++ b/lib/dfa.h
@@ -58,11 +58,8 @@ enum
        possibly true for other apps.  */
     DFA_ANCHOR = 1 << 0,
 
-    /* Ignore case while matching.  */
-    DFA_CASE_FOLD = 1 << 1,
-
     /* '\0' in data is end-of-line, instead of the traditional '\n'.  */
-    DFA_EOL_NUL = 1 << 2
+    DFA_EOL_NUL = 1 << 1
   };
 
 /* Initialize or reinitialize a DFA.  This must be called before
diff --git a/src/dfasearch.c b/src/dfasearch.c
index ded9917..7eec4d8 100644
--- a/src/dfasearch.c
+++ b/src/dfasearch.c
@@ -121,8 +121,7 @@ GEAcompile (char const *pattern, size_t size, reg_syntax_t 
syntax_bits)
   if (match_icase)
     syntax_bits |= RE_ICASE;
   re_set_syntax (syntax_bits);
-  int dfaopts = ((match_icase ? DFA_CASE_FOLD : 0)
-                 | (eolbyte ? 0 : DFA_EOL_NUL));
+  int dfaopts = (eolbyte ? 0 : DFA_EOL_NUL);
   dfasyntax (dfa, &localeinfo, syntax_bits, dfaopts);
 
   /* For GNU regex, pass the patterns separately to detect errors like



reply via email to

[Prev in Thread] Current Thread [Next in Thread]