1429 |
/* Match a single character type; inline for speed */ |
/* Match a single character type; inline for speed */ |
1430 |
|
|
1431 |
case OP_ANY: |
case OP_ANY: |
1432 |
if ((ims & PCRE_DOTALL) == 0) |
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
|
{ |
|
|
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
|
|
} |
|
1433 |
/* Fall through */ |
/* Fall through */ |
1434 |
|
|
1435 |
case OP_ALLANY: |
case OP_ALLANY: |
1436 |
if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); |
if (eptr++ >= md->end_subject) RRETURN(MATCH_NOMATCH); |
1437 |
if (utf8) |
if (utf8) while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
1438 |
ecode++; |
ecode++; |
1439 |
break; |
break; |
1440 |
|
|
2951 |
case OP_ANY: |
case OP_ANY: |
2952 |
for (i = 1; i <= min; i++) |
for (i = 1; i <= min; i++) |
2953 |
{ |
{ |
2954 |
if (eptr >= md->end_subject || |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) |
|
((ims & PCRE_DOTALL) == 0 && IS_NEWLINE(eptr))) |
|
2955 |
RRETURN(MATCH_NOMATCH); |
RRETURN(MATCH_NOMATCH); |
2956 |
eptr++; |
eptr++; |
2957 |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
3175 |
switch(ctype) |
switch(ctype) |
3176 |
{ |
{ |
3177 |
case OP_ANY: |
case OP_ANY: |
3178 |
if ((ims & PCRE_DOTALL) == 0) |
for (i = 1; i <= min; i++) |
3179 |
{ |
{ |
3180 |
for (i = 1; i <= min; i++) |
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
3181 |
{ |
eptr++; |
|
if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH); |
|
|
eptr++; |
|
|
} |
|
3182 |
} |
} |
|
else eptr += min; |
|
3183 |
break; |
break; |
3184 |
|
|
3185 |
case OP_ALLANY: |
case OP_ALLANY: |
3440 |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM42); |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM42); |
3441 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
3442 |
if (fi >= max || eptr >= md->end_subject || |
if (fi >= max || eptr >= md->end_subject || |
3443 |
(ctype == OP_ANY && (ims & PCRE_DOTALL) == 0 && |
(ctype == OP_ANY && IS_NEWLINE(eptr))) |
|
IS_NEWLINE(eptr))) |
|
3444 |
RRETURN(MATCH_NOMATCH); |
RRETURN(MATCH_NOMATCH); |
3445 |
|
|
3446 |
GETCHARINC(c, eptr); |
GETCHARINC(c, eptr); |
3447 |
switch(ctype) |
switch(ctype) |
3448 |
{ |
{ |
3449 |
case OP_ANY: /* This is the DOTALL case */ |
case OP_ANY: /* This is the non-NL case */ |
3450 |
case OP_ALLANY: |
case OP_ALLANY: |
3451 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
3452 |
break; |
break; |
3599 |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM43); |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM43); |
3600 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
3601 |
if (fi >= max || eptr >= md->end_subject || |
if (fi >= max || eptr >= md->end_subject || |
3602 |
((ims & PCRE_DOTALL) == 0 && IS_NEWLINE(eptr))) |
(ctype == OP_ANY && IS_NEWLINE(eptr))) |
3603 |
RRETURN(MATCH_NOMATCH); |
RRETURN(MATCH_NOMATCH); |
3604 |
|
|
3605 |
c = *eptr++; |
c = *eptr++; |
3606 |
switch(ctype) |
switch(ctype) |
3607 |
{ |
{ |
3608 |
case OP_ANY: /* This is the DOTALL case */ |
case OP_ANY: /* This is the non-NL case */ |
3609 |
case OP_ALLANY: |
case OP_ALLANY: |
3610 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
3611 |
break; |
break; |
3860 |
case OP_ANY: |
case OP_ANY: |
3861 |
if (max < INT_MAX) |
if (max < INT_MAX) |
3862 |
{ |
{ |
3863 |
if ((ims & PCRE_DOTALL) == 0) |
for (i = min; i < max; i++) |
|
{ |
|
|
for (i = min; i < max; i++) |
|
|
{ |
|
|
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
|
|
eptr++; |
|
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
|
} |
|
|
} |
|
|
else |
|
3864 |
{ |
{ |
3865 |
for (i = min; i < max; i++) |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
3866 |
{ |
eptr++; |
3867 |
if (eptr >= md->end_subject) break; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
eptr++; |
|
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
|
} |
|
3868 |
} |
} |
3869 |
} |
} |
3870 |
|
|
3872 |
|
|
3873 |
else |
else |
3874 |
{ |
{ |
3875 |
if ((ims & PCRE_DOTALL) == 0) |
for (i = min; i < max; i++) |
|
{ |
|
|
for (i = min; i < max; i++) |
|
|
{ |
|
|
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
|
|
eptr++; |
|
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
|
|
} |
|
|
} |
|
|
else |
|
3876 |
{ |
{ |
3877 |
eptr = md->end_subject; |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
3878 |
|
eptr++; |
3879 |
|
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
3880 |
} |
} |
3881 |
} |
} |
3882 |
break; |
break; |
4079 |
switch(ctype) |
switch(ctype) |
4080 |
{ |
{ |
4081 |
case OP_ANY: |
case OP_ANY: |
4082 |
if ((ims & PCRE_DOTALL) == 0) |
for (i = min; i < max; i++) |
4083 |
{ |
{ |
4084 |
for (i = min; i < max; i++) |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
4085 |
{ |
eptr++; |
|
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
|
|
eptr++; |
|
|
} |
|
|
break; |
|
4086 |
} |
} |
4087 |
/* For DOTALL case, fall through */ |
break; |
4088 |
|
|
4089 |
case OP_ALLANY: |
case OP_ALLANY: |
4090 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |