| 1296 |
recursion, continue from after the call. */ |
recursion, continue from after the call. */ |
| 1297 |
|
|
| 1298 |
case OP_ACCEPT: |
case OP_ACCEPT: |
| 1299 |
|
case OP_ASSERT_ACCEPT: |
| 1300 |
case OP_END: |
case OP_END: |
| 1301 |
if (md->recursive != NULL) |
if (md->recursive != NULL) |
| 1302 |
{ |
{ |
| 1312 |
} |
} |
| 1313 |
} |
} |
| 1314 |
|
|
| 1315 |
/* Otherwise, if we have matched an empty string, fail if PCRE_NOTEMPTY is |
/* Otherwise, if we have matched an empty string, fail if not in an |
| 1316 |
set, or if PCRE_NOTEMPTY_ATSTART is set and we have matched at the start of |
assertion and if either PCRE_NOTEMPTY is set, or if PCRE_NOTEMPTY_ATSTART |
| 1317 |
the subject. In both cases, backtracking will then try other alternatives, |
is set and we have matched at the start of the subject. In both cases, |
| 1318 |
if any. */ |
backtracking will then try other alternatives, if any. */ |
| 1319 |
|
|
| 1320 |
else if (eptr == mstart && |
else if (eptr == mstart && op != OP_ASSERT_ACCEPT && |
| 1321 |
(md->notempty || |
(md->notempty || |
| 1322 |
(md->notempty_atstart && |
(md->notempty_atstart && |
| 1323 |
mstart == md->start_subject + md->start_offset))) |
mstart == md->start_subject + md->start_offset))) |
| 5900 |
md->use_ucp = (re->options & PCRE_UCP) != 0; |
md->use_ucp = (re->options & PCRE_UCP) != 0; |
| 5901 |
md->jscript_compat = (re->options & PCRE_JAVASCRIPT_COMPAT) != 0; |
md->jscript_compat = (re->options & PCRE_JAVASCRIPT_COMPAT) != 0; |
| 5902 |
|
|
| 5903 |
|
/* Some options are unpacked into BOOL variables in the hope that testing |
| 5904 |
|
them will be faster than individual option bits. */ |
| 5905 |
|
|
| 5906 |
md->notbol = (options & PCRE_NOTBOL) != 0; |
md->notbol = (options & PCRE_NOTBOL) != 0; |
| 5907 |
md->noteol = (options & PCRE_NOTEOL) != 0; |
md->noteol = (options & PCRE_NOTEOL) != 0; |
| 5908 |
md->notempty = (options & PCRE_NOTEMPTY) != 0; |
md->notempty = (options & PCRE_NOTEMPTY) != 0; |
| 5909 |
md->notempty_atstart = (options & PCRE_NOTEMPTY_ATSTART) != 0; |
md->notempty_atstart = (options & PCRE_NOTEMPTY_ATSTART) != 0; |
| 5910 |
md->partial = ((options & PCRE_PARTIAL_HARD) != 0)? 2 : |
md->partial = ((options & PCRE_PARTIAL_HARD) != 0)? 2 : |
| 5911 |
((options & PCRE_PARTIAL_SOFT) != 0)? 1 : 0; |
((options & PCRE_PARTIAL_SOFT) != 0)? 1 : 0; |
| 5912 |
|
|
| 5913 |
|
|
| 5914 |
md->hitend = FALSE; |
md->hitend = FALSE; |
| 5915 |
md->mark = NULL; /* In case never set */ |
md->mark = NULL; /* In case never set */ |
| 5916 |
|
|