| 4408 |
/* Set up other data */ |
/* Set up other data */ |
| 4409 |
|
|
| 4410 |
anchored = ((re->options | options) & PCRE_ANCHORED) != 0; |
anchored = ((re->options | options) & PCRE_ANCHORED) != 0; |
| 4411 |
startline = (re->options & PCRE_STARTLINE) != 0; |
startline = (re->flags & PCRE_STARTLINE) != 0; |
| 4412 |
firstline = (re->options & PCRE_FIRSTLINE) != 0; |
firstline = (re->options & PCRE_FIRSTLINE) != 0; |
| 4413 |
|
|
| 4414 |
/* The code starts after the real_pcre block and the capture name table. */ |
/* The code starts after the real_pcre block and the capture name table. */ |
| 4438 |
/* Handle different types of newline. The three bits give eight cases. If |
/* Handle different types of newline. The three bits give eight cases. If |
| 4439 |
nothing is set at run time, whatever was used at compile time applies. */ |
nothing is set at run time, whatever was used at compile time applies. */ |
| 4440 |
|
|
| 4441 |
switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : (pcre_uint32)options) & |
switch ((((options & PCRE_NEWLINE_BITS) == 0)? re->options : |
| 4442 |
PCRE_NEWLINE_BITS) |
(pcre_uint32)options) & PCRE_NEWLINE_BITS) |
| 4443 |
{ |
{ |
| 4444 |
case 0: newline = NEWLINE; break; /* Compile-time default */ |
case 0: newline = NEWLINE; break; /* Compile-time default */ |
| 4445 |
case PCRE_NEWLINE_CR: newline = '\r'; break; |
case PCRE_NEWLINE_CR: newline = '\r'; break; |
| 4478 |
/* Partial matching is supported only for a restricted set of regexes at the |
/* Partial matching is supported only for a restricted set of regexes at the |
| 4479 |
moment. */ |
moment. */ |
| 4480 |
|
|
| 4481 |
if (md->partial && (re->options & PCRE_NOPARTIAL) != 0) |
if (md->partial && (re->flags & PCRE_NOPARTIAL) != 0) |
| 4482 |
return PCRE_ERROR_BADPARTIAL; |
return PCRE_ERROR_BADPARTIAL; |
| 4483 |
|
|
| 4484 |
/* Check a UTF-8 string if required. Unfortunately there's no way of passing |
/* Check a UTF-8 string if required. Unfortunately there's no way of passing |
| 4555 |
|
|
| 4556 |
if (!anchored) |
if (!anchored) |
| 4557 |
{ |
{ |
| 4558 |
if ((re->options & PCRE_FIRSTSET) != 0) |
if ((re->flags & PCRE_FIRSTSET) != 0) |
| 4559 |
{ |
{ |
| 4560 |
first_byte = re->first_byte & 255; |
first_byte = re->first_byte & 255; |
| 4561 |
if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE) |
if ((first_byte_caseless = ((re->first_byte & REQ_CASELESS) != 0)) == TRUE) |
| 4570 |
/* For anchored or unanchored matches, there may be a "last known required |
/* For anchored or unanchored matches, there may be a "last known required |
| 4571 |
character" set. */ |
character" set. */ |
| 4572 |
|
|
| 4573 |
if ((re->options & PCRE_REQCHSET) != 0) |
if ((re->flags & PCRE_REQCHSET) != 0) |
| 4574 |
{ |
{ |
| 4575 |
req_byte = re->req_byte & 255; |
req_byte = re->req_byte & 255; |
| 4576 |
req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0; |
req_byte_caseless = (re->req_byte & REQ_CASELESS) != 0; |
| 4792 |
if (start_match[-1] == '\r' && |
if (start_match[-1] == '\r' && |
| 4793 |
start_match < end_subject && |
start_match < end_subject && |
| 4794 |
*start_match == '\n' && |
*start_match == '\n' && |
| 4795 |
(re->options & PCRE_HASCRORLF) == 0 && |
(re->flags & PCRE_HASCRORLF) == 0 && |
| 4796 |
(md->nltype == NLTYPE_ANY || |
(md->nltype == NLTYPE_ANY || |
| 4797 |
md->nltype == NLTYPE_ANYCRLF || |
md->nltype == NLTYPE_ANYCRLF || |
| 4798 |
md->nllen == 2)) |
md->nllen == 2)) |