3764 |
switch(ctype) |
switch(ctype) |
3765 |
{ |
{ |
3766 |
case OP_ANY: |
case OP_ANY: |
|
|
|
|
/* Special code is required for UTF8, but when the maximum is |
|
|
unlimited we don't need it, so we repeat the non-UTF8 code. This is |
|
|
probably worth it, because .* is quite a common idiom. */ |
|
|
|
|
3767 |
if (max < INT_MAX) |
if (max < INT_MAX) |
3768 |
{ |
{ |
3769 |
if ((ims & PCRE_DOTALL) == 0) |
if ((ims & PCRE_DOTALL) == 0) |
3796 |
{ |
{ |
3797 |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
3798 |
eptr++; |
eptr++; |
3799 |
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
3800 |
} |
} |
|
break; |
|
3801 |
} |
} |
3802 |
else |
else |
3803 |
{ |
{ |
3804 |
c = max - min; |
eptr = md->end_subject; |
|
if (c > (unsigned int)(md->end_subject - eptr)) |
|
|
c = md->end_subject - eptr; |
|
|
eptr += c; |
|
3805 |
} |
} |
3806 |
} |
} |
3807 |
break; |
break; |