aboutsummaryrefslogtreecommitdiffstats
path: root/re.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-08-01 22:54:21 +0300
committerArnold D. Robbins <arnold@skeeve.com>2016-08-01 22:54:21 +0300
commitaa2d3ed07298cd4cfcbb8c0048d855dfbfe4bb9b (patch)
treee0797a1b9055d3fba67327aefd879af546a391e7 /re.c
parent52c4321094c627a582834866e33a892d778d755c (diff)
parent9698fd1ebff2bc3f76efbf498c28ce21aa515b7e (diff)
downloadegawk-aa2d3ed07298cd4cfcbb8c0048d855dfbfe4bb9b.tar.gz
egawk-aa2d3ed07298cd4cfcbb8c0048d855dfbfe4bb9b.tar.bz2
egawk-aa2d3ed07298cd4cfcbb8c0048d855dfbfe4bb9b.zip
Merge branch 'master' into feature/cmake
Diffstat (limited to 're.c')
-rw-r--r--re.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/re.c b/re.c
index 67ff682f..d92560d0 100644
--- a/re.c
+++ b/re.c
@@ -266,17 +266,17 @@ research(Regexp *rp, char *str, int start,
rp->pat.not_bol = 1;
/*
- * Always do dfa search if can; if it fails, then even if
- * need_start is true, we won't bother with the regex search.
+ * Always do dfa search if can; if it fails, we won't bother
+ * with the regex search.
*
* The dfa matcher doesn't have a no_bol flag, so don't bother
* trying it in that case.
*
- * 7/2008: Skip the dfa matcher if need_start. The dfa matcher
- * has bugs in certain multibyte cases and it's too difficult
- * to try to special case things.
+ * 7/2016: The dfa matcher can't handle a case where searching
+ * starts in the middle of a string, so don't bother trying it
+ * in that case.
*/
- if (rp->dfa && ! no_bol && ! need_start) {
+ if (rp->dfa && ! no_bol && start == 0) {
char save;
size_t count = 0;
struct dfa *superset = dfasuperset(rp->dfareg);