diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-08-23 06:05:57 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-08-23 06:05:57 +0300 |
commit | cce4e42a5c95d8c5c0eeef1e6059f450b1d13482 (patch) | |
tree | 1a7650057e79988324f8d6f3c6a4bb3114126c85 /re.c | |
parent | 76992be54568a1b4bfc853e0bd390ea64ecdf5fe (diff) | |
parent | 273c35356b59a2d3b989bd568f577aaf800dc4a5 (diff) | |
download | egawk-cce4e42a5c95d8c5c0eeef1e6059f450b1d13482.tar.gz egawk-cce4e42a5c95d8c5c0eeef1e6059f450b1d13482.tar.bz2 egawk-cce4e42a5c95d8c5c0eeef1e6059f450b1d13482.zip |
Merge branch 'master' into feature/cmake
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -203,14 +203,11 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal) syn &= ~RE_ICASE; } - /* only call dfasyntax if we're using dfa; saves time */ - if (dfa && ! no_dfa) { - dfa_syn = syn; - /* FIXME: dfa doesn't pay attention RE_ICASE */ - if (ignorecase) - dfa_syn |= RE_ICASE; - dfasyntax(dfa_syn, ignorecase, '\n'); - } + dfa_syn = syn; + /* FIXME: dfa doesn't pay attention RE_ICASE */ + if (ignorecase) + dfa_syn |= RE_ICASE; + re_set_syntax(syn); if ((rerr = re_compile_pattern(buf, len, &(rp->pat))) != NULL) { @@ -228,6 +225,7 @@ make_regexp(const char *s, size_t len, bool ignorecase, bool dfa, bool canfatal) if (dfa && ! no_dfa) { rp->dfa = true; rp->dfareg = dfaalloc(); + dfasyntax(rp->dfareg, dfa_syn, ignorecase, '\n'); dfacomp(buf, len, rp->dfareg, true); } else rp->dfa = false; @@ -423,7 +421,8 @@ resetup() syn |= RE_INTERVALS | RE_INVALID_INTERVAL_ORD | RE_NO_BK_BRACES; (void) re_set_syntax(syn); - dfasyntax(syn, false, '\n'); + + dfa_init(); } /* avoid_dfa --- return true if we should not use the DFA matcher */ |