| 831 |
|
|
| 832 |
/*-----------------------------------------------------------------*/ |
/*-----------------------------------------------------------------*/ |
| 833 |
case OP_EOD: |
case OP_EOD: |
| 834 |
if (ptr >= end_subject) { ADD_ACTIVE(state_offset + 1, 0); } |
if (ptr >= end_subject) |
| 835 |
|
{ |
| 836 |
|
if ((md->moptions & PCRE_PARTIAL_HARD) != 0) |
| 837 |
|
could_continue = TRUE; |
| 838 |
|
else { ADD_ACTIVE(state_offset + 1, 0); } |
| 839 |
|
} |
| 840 |
break; |
break; |
| 841 |
|
|
| 842 |
/*-----------------------------------------------------------------*/ |
/*-----------------------------------------------------------------*/ |
| 876 |
|
|
| 877 |
/*-----------------------------------------------------------------*/ |
/*-----------------------------------------------------------------*/ |
| 878 |
case OP_EODN: |
case OP_EODN: |
| 879 |
if (clen == 0 || (IS_NEWLINE(ptr) && ptr == end_subject - md->nllen)) |
if (clen == 0 && (md->moptions & PCRE_PARTIAL_HARD) != 0) |
| 880 |
|
could_continue = TRUE; |
| 881 |
|
else if (clen == 0 || (IS_NEWLINE(ptr) && ptr == end_subject - md->nllen)) |
| 882 |
{ ADD_ACTIVE(state_offset + 1, 0); } |
{ ADD_ACTIVE(state_offset + 1, 0); } |
| 883 |
break; |
break; |
| 884 |
|
|
| 886 |
case OP_DOLL: |
case OP_DOLL: |
| 887 |
if ((md->moptions & PCRE_NOTEOL) == 0) |
if ((md->moptions & PCRE_NOTEOL) == 0) |
| 888 |
{ |
{ |
| 889 |
if (clen == 0 || |
if (clen == 0 && (md->moptions & PCRE_PARTIAL_HARD) != 0) |
| 890 |
|
could_continue = TRUE; |
| 891 |
|
else if (clen == 0 || |
| 892 |
((md->poptions & PCRE_DOLLAR_ENDONLY) == 0 && IS_NEWLINE(ptr) && |
((md->poptions & PCRE_DOLLAR_ENDONLY) == 0 && IS_NEWLINE(ptr) && |
| 893 |
((ims & PCRE_MULTILINE) != 0 || ptr == end_subject - md->nllen) |
((ims & PCRE_MULTILINE) != 0 || ptr == end_subject - md->nllen) |
| 894 |
)) |
)) |
| 2753 |
((md->moptions & PCRE_PARTIAL_SOFT) != 0 && /* Soft partial and */ |
((md->moptions & PCRE_PARTIAL_SOFT) != 0 && /* Soft partial and */ |
| 2754 |
match_count < 0) /* no matches */ |
match_count < 0) /* no matches */ |
| 2755 |
) && /* And... */ |
) && /* And... */ |
| 2756 |
ptr >= end_subject && /* Reached end of subject */ |
ptr >= end_subject && /* Reached end of subject */ |
| 2757 |
ptr > current_subject) /* Matched non-empty string */ |
ptr > md->start_used_ptr) /* Inspected non-empty string */ |
| 2758 |
{ |
{ |
| 2759 |
if (offsetcount >= 2) |
if (offsetcount >= 2) |
| 2760 |
{ |
{ |