summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-11-29 19:49:02 +0200
committerArnold D. Robbins <arnold@skeeve.com>2016-11-29 19:49:02 +0200
commit4931b67d7efa50576cea9f3045cc9d70ea779f2e (patch)
treeedc95611ecf3aa9e54043a4ba9852a0124174bfb
parentb2aca8c7877af71e056210030ba2d8354a47d43f (diff)
downloadgawk-4931b67d7efa50576cea9f3045cc9d70ea779f2e.tar.gz
Use RE_ICASE instead of DFA_CASE_FOLD in dfa.c and re.c.
-rw-r--r--ChangeLog6
-rw-r--r--dfa.c2
-rw-r--r--dfa.h5
-rw-r--r--re.c4
4 files changed, 9 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 0209b816..051e83ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-29 Arnold D. Robbins <arnold@skeeve.com>
+
+ * dfa.c (dfasyntax): Use RE_ICASE instead of DFA_CASE_FOLD.
+ * dfa.h (DFA_CASE_FOLD): Removed.
+ * re.c (make_regexp): Use RE_ICASE for regex and dfa. Yay!
+
2016-11-28 Arnold D. Robbins <arnold@skeeve.com>
Make gawk compile on HP-UX 11.33.
diff --git a/dfa.c b/dfa.c
index b735445f..cd7dce65 100644
--- a/dfa.c
+++ b/dfa.c
@@ -4018,7 +4018,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/dfa.h b/dfa.h
index 8608b108..0fd9b2c9 100644
--- a/dfa.h
+++ b/dfa.h
@@ -62,11 +62,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/re.c b/re.c
index dcb06671..6c1e360c 100644
--- a/re.c
+++ b/re.c
@@ -203,7 +203,6 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal)
}
dfa_syn = syn;
- /* FIXME: dfa doesn't pay attention RE_ICASE */
if (ignorecase)
dfa_syn |= RE_ICASE;
@@ -223,8 +222,7 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal)
rp->pat.newline_anchor = false; /* don't get \n in middle of string */
if (dfa && ! no_dfa) {
rp->dfareg = dfaalloc();
- dfasyntax(rp->dfareg, & localeinfo, dfa_syn,
- (ignorecase ? DFA_CASE_FOLD : 0) | DFA_ANCHOR);
+ dfasyntax(rp->dfareg, & localeinfo, dfa_syn, DFA_ANCHOR);
dfacomp(buf, len, rp->dfareg, true);
} else
rp->dfareg = NULL;