1433 |
{ |
{ |
1434 |
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
1435 |
} |
} |
1436 |
|
/* Fall through */ |
1437 |
|
|
1438 |
|
case OP_ALLANY: |
1439 |
if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); |
if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); |
1440 |
if (utf8) |
if (utf8) |
1441 |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
2963 |
} |
} |
2964 |
break; |
break; |
2965 |
|
|
2966 |
|
case OP_ALLANY: |
2967 |
|
for (i = 1; i <= min; i++) |
2968 |
|
{ |
2969 |
|
if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH); |
2970 |
|
eptr++; |
2971 |
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
2972 |
|
} |
2973 |
|
break; |
2974 |
|
|
2975 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
2976 |
eptr += min; |
eptr += min; |
2977 |
break; |
break; |
3191 |
else eptr += min; |
else eptr += min; |
3192 |
break; |
break; |
3193 |
|
|
3194 |
|
case OP_ALLANY: |
3195 |
|
eptr += min; |
3196 |
|
break; |
3197 |
|
|
3198 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
3199 |
eptr += min; |
eptr += min; |
3200 |
break; |
break; |
3457 |
switch(ctype) |
switch(ctype) |
3458 |
{ |
{ |
3459 |
case OP_ANY: /* This is the DOTALL case */ |
case OP_ANY: /* This is the DOTALL case */ |
3460 |
break; |
case OP_ALLANY: |
|
|
|
3461 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
3462 |
break; |
break; |
3463 |
|
|
3615 |
c = *eptr++; |
c = *eptr++; |
3616 |
switch(ctype) |
switch(ctype) |
3617 |
{ |
{ |
3618 |
case OP_ANY: /* This is the DOTALL case */ |
case OP_ANY: /* This is the DOTALL case */ |
3619 |
break; |
case OP_ALLANY: |
|
|
|
3620 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
3621 |
break; |
break; |
3622 |
|
|
3910 |
} |
} |
3911 |
break; |
break; |
3912 |
|
|
3913 |
|
case OP_ALLANY: |
3914 |
|
if (max < INT_MAX) |
3915 |
|
{ |
3916 |
|
for (i = min; i < max; i++) |
3917 |
|
{ |
3918 |
|
if (eptr >= md->end_subject) break; |
3919 |
|
eptr++; |
3920 |
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
3921 |
|
} |
3922 |
|
} |
3923 |
|
else eptr = md->end_subject; /* Unlimited UTF-8 repeat */ |
3924 |
|
break; |
3925 |
|
|
3926 |
/* The byte case is the same as non-UTF8 */ |
/* The byte case is the same as non-UTF8 */ |
3927 |
|
|
3928 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
4117 |
} |
} |
4118 |
break; |
break; |
4119 |
} |
} |
4120 |
/* For DOTALL case, fall through and treat as \C */ |
/* For DOTALL case, fall through */ |
4121 |
|
|
4122 |
|
case OP_ALLANY: |
4123 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
4124 |
c = max - min; |
c = max - min; |
4125 |
if (c > (unsigned int)(md->end_subject - eptr)) |
if (c > (unsigned int)(md->end_subject - eptr)) |