| 415 |
} |
} |
| 416 |
|
|
| 417 |
#define SCHECK_PARTIAL()\ |
#define SCHECK_PARTIAL()\ |
| 418 |
if (md->partial && eptr > mstart)\ |
if (md->partial != 0 && eptr > mstart)\ |
| 419 |
{\ |
{\ |
| 420 |
md->hitend = TRUE;\ |
md->hitend = TRUE;\ |
| 421 |
if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);\ |
if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL);\ |
| 2146 |
pp = eptr; |
pp = eptr; |
| 2147 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2148 |
{ |
{ |
| 2149 |
if (!match_ref(offset, eptr, length, md, ims)) break; |
if (!match_ref(offset, eptr, length, md, ims)) |
| 2150 |
|
{ |
| 2151 |
|
CHECK_PARTIAL(); |
| 2152 |
|
break; |
| 2153 |
|
} |
| 2154 |
eptr += length; |
eptr += length; |
| 2155 |
} |
} |
| 2156 |
while (eptr >= pp) |
while (eptr >= pp) |
| 2319 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2320 |
{ |
{ |
| 2321 |
int len = 1; |
int len = 1; |
| 2322 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 2323 |
|
{ |
| 2324 |
|
SCHECK_PARTIAL(); |
| 2325 |
|
break; |
| 2326 |
|
} |
| 2327 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 2328 |
if (c > 255) |
if (c > 255) |
| 2329 |
{ |
{ |
| 2349 |
{ |
{ |
| 2350 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2351 |
{ |
{ |
| 2352 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 2353 |
|
{ |
| 2354 |
|
SCHECK_PARTIAL(); |
| 2355 |
|
break; |
| 2356 |
|
} |
| 2357 |
c = *eptr; |
c = *eptr; |
| 2358 |
if ((data[c/8] & (1 << (c&7))) == 0) break; |
if ((data[c/8] & (1 << (c&7))) == 0) break; |
| 2359 |
eptr++; |
eptr++; |
| 2458 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2459 |
{ |
{ |
| 2460 |
int len = 1; |
int len = 1; |
| 2461 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 2462 |
|
{ |
| 2463 |
|
SCHECK_PARTIAL(); |
| 2464 |
|
break; |
| 2465 |
|
} |
| 2466 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 2467 |
if (!_pcre_xclass(c, data)) break; |
if (!_pcre_xclass(c, data)) break; |
| 2468 |
eptr += len; |
eptr += len; |
| 2701 |
eptr <= md->end_subject - oclength && |
eptr <= md->end_subject - oclength && |
| 2702 |
memcmp(eptr, occhars, oclength) == 0) eptr += oclength; |
memcmp(eptr, occhars, oclength) == 0) eptr += oclength; |
| 2703 |
#endif /* SUPPORT_UCP */ |
#endif /* SUPPORT_UCP */ |
| 2704 |
else break; |
else |
| 2705 |
|
{ |
| 2706 |
|
CHECK_PARTIAL(); |
| 2707 |
|
break; |
| 2708 |
|
} |
| 2709 |
} |
} |
| 2710 |
|
|
| 2711 |
if (possessive) continue; |
if (possessive) continue; |
| 2783 |
pp = eptr; |
pp = eptr; |
| 2784 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2785 |
{ |
{ |
| 2786 |
if (eptr >= md->end_subject || fc != md->lcc[*eptr]) break; |
if (eptr >= md->end_subject) |
| 2787 |
|
{ |
| 2788 |
|
SCHECK_PARTIAL(); |
| 2789 |
|
break; |
| 2790 |
|
} |
| 2791 |
|
if (fc != md->lcc[*eptr]) break; |
| 2792 |
eptr++; |
eptr++; |
| 2793 |
} |
} |
| 2794 |
|
|
| 2842 |
pp = eptr; |
pp = eptr; |
| 2843 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 2844 |
{ |
{ |
| 2845 |
if (eptr >= md->end_subject || fc != *eptr) break; |
if (eptr >= md->end_subject) |
| 2846 |
|
{ |
| 2847 |
|
SCHECK_PARTIAL(); |
| 2848 |
|
break; |
| 2849 |
|
} |
| 2850 |
|
if (fc != *eptr) break; |
| 2851 |
eptr++; |
eptr++; |
| 2852 |
} |
} |
| 2853 |
if (possessive) continue; |
if (possessive) continue; |
| 3059 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 3060 |
{ |
{ |
| 3061 |
int len = 1; |
int len = 1; |
| 3062 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 3063 |
|
{ |
| 3064 |
|
SCHECK_PARTIAL(); |
| 3065 |
|
break; |
| 3066 |
|
} |
| 3067 |
GETCHARLEN(d, eptr, len); |
GETCHARLEN(d, eptr, len); |
| 3068 |
if (d < 256) d = md->lcc[d]; |
if (d < 256) d = md->lcc[d]; |
| 3069 |
if (fc == d) break; |
if (fc == d) break; |
| 3084 |
{ |
{ |
| 3085 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 3086 |
{ |
{ |
| 3087 |
if (eptr >= md->end_subject || fc == md->lcc[*eptr]) break; |
if (eptr >= md->end_subject) |
| 3088 |
|
{ |
| 3089 |
|
SCHECK_PARTIAL(); |
| 3090 |
|
break; |
| 3091 |
|
} |
| 3092 |
|
if (fc == md->lcc[*eptr]) break; |
| 3093 |
eptr++; |
eptr++; |
| 3094 |
} |
} |
| 3095 |
if (possessive) continue; |
if (possessive) continue; |
| 3198 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 3199 |
{ |
{ |
| 3200 |
int len = 1; |
int len = 1; |
| 3201 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 3202 |
|
{ |
| 3203 |
|
SCHECK_PARTIAL(); |
| 3204 |
|
break; |
| 3205 |
|
} |
| 3206 |
GETCHARLEN(d, eptr, len); |
GETCHARLEN(d, eptr, len); |
| 3207 |
if (fc == d) break; |
if (fc == d) break; |
| 3208 |
eptr += len; |
eptr += len; |
| 3222 |
{ |
{ |
| 3223 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 3224 |
{ |
{ |
| 3225 |
if (eptr >= md->end_subject || fc == *eptr) break; |
if (eptr >= md->end_subject) |
| 3226 |
|
{ |
| 3227 |
|
SCHECK_PARTIAL(); |
| 3228 |
|
break; |
| 3229 |
|
} |
| 3230 |
|
if (fc == *eptr) break; |
| 3231 |
eptr++; |
eptr++; |
| 3232 |
} |
} |
| 3233 |
if (possessive) continue; |
if (possessive) continue; |
| 4383 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4384 |
{ |
{ |
| 4385 |
int len = 1; |
int len = 1; |
| 4386 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4387 |
|
{ |
| 4388 |
|
SCHECK_PARTIAL(); |
| 4389 |
|
break; |
| 4390 |
|
} |
| 4391 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4392 |
if (prop_fail_result) break; |
if (prop_fail_result) break; |
| 4393 |
eptr+= len; |
eptr+= len; |
| 4398 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4399 |
{ |
{ |
| 4400 |
int len = 1; |
int len = 1; |
| 4401 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4402 |
|
{ |
| 4403 |
|
SCHECK_PARTIAL(); |
| 4404 |
|
break; |
| 4405 |
|
} |
| 4406 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4407 |
prop_chartype = UCD_CHARTYPE(c); |
prop_chartype = UCD_CHARTYPE(c); |
| 4408 |
if ((prop_chartype == ucp_Lu || |
if ((prop_chartype == ucp_Lu || |
| 4417 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4418 |
{ |
{ |
| 4419 |
int len = 1; |
int len = 1; |
| 4420 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4421 |
|
{ |
| 4422 |
|
SCHECK_PARTIAL(); |
| 4423 |
|
break; |
| 4424 |
|
} |
| 4425 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4426 |
prop_category = UCD_CATEGORY(c); |
prop_category = UCD_CATEGORY(c); |
| 4427 |
if ((prop_category == prop_value) == prop_fail_result) |
if ((prop_category == prop_value) == prop_fail_result) |
| 4434 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4435 |
{ |
{ |
| 4436 |
int len = 1; |
int len = 1; |
| 4437 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4438 |
|
{ |
| 4439 |
|
SCHECK_PARTIAL(); |
| 4440 |
|
break; |
| 4441 |
|
} |
| 4442 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4443 |
prop_chartype = UCD_CHARTYPE(c); |
prop_chartype = UCD_CHARTYPE(c); |
| 4444 |
if ((prop_chartype == prop_value) == prop_fail_result) |
if ((prop_chartype == prop_value) == prop_fail_result) |
| 4451 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4452 |
{ |
{ |
| 4453 |
int len = 1; |
int len = 1; |
| 4454 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4455 |
|
{ |
| 4456 |
|
SCHECK_PARTIAL(); |
| 4457 |
|
break; |
| 4458 |
|
} |
| 4459 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4460 |
prop_script = UCD_SCRIPT(c); |
prop_script = UCD_SCRIPT(c); |
| 4461 |
if ((prop_script == prop_value) == prop_fail_result) |
if ((prop_script == prop_value) == prop_fail_result) |
| 4484 |
{ |
{ |
| 4485 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4486 |
{ |
{ |
| 4487 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4488 |
|
{ |
| 4489 |
|
SCHECK_PARTIAL(); |
| 4490 |
|
break; |
| 4491 |
|
} |
| 4492 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4493 |
prop_category = UCD_CATEGORY(c); |
prop_category = UCD_CATEGORY(c); |
| 4494 |
if (prop_category == ucp_M) break; |
if (prop_category == ucp_M) break; |
| 4508 |
/* eptr is now past the end of the maximum run */ |
/* eptr is now past the end of the maximum run */ |
| 4509 |
|
|
| 4510 |
if (possessive) continue; |
if (possessive) continue; |
| 4511 |
|
|
| 4512 |
for(;;) |
for(;;) |
| 4513 |
{ |
{ |
| 4514 |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM45); |
RMATCH(eptr, ecode, offset_top, md, ims, eptrb, 0, RM45); |
| 4544 |
{ |
{ |
| 4545 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4546 |
{ |
{ |
| 4547 |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
if (eptr >= md->end_subject) |
| 4548 |
|
{ |
| 4549 |
|
SCHECK_PARTIAL(); |
| 4550 |
|
break; |
| 4551 |
|
} |
| 4552 |
|
if (IS_NEWLINE(eptr)) break; |
| 4553 |
eptr++; |
eptr++; |
| 4554 |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
| 4555 |
} |
} |
| 4561 |
{ |
{ |
| 4562 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4563 |
{ |
{ |
| 4564 |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
if (eptr >= md->end_subject) |
| 4565 |
|
{ |
| 4566 |
|
SCHECK_PARTIAL(); |
| 4567 |
|
break; |
| 4568 |
|
} |
| 4569 |
|
if (IS_NEWLINE(eptr)) break; |
| 4570 |
eptr++; |
eptr++; |
| 4571 |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
| 4572 |
} |
} |
| 4578 |
{ |
{ |
| 4579 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4580 |
{ |
{ |
| 4581 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4582 |
|
{ |
| 4583 |
|
SCHECK_PARTIAL(); |
| 4584 |
|
break; |
| 4585 |
|
} |
| 4586 |
eptr++; |
eptr++; |
| 4587 |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
while (eptr < md->end_subject && (*eptr & 0xc0) == 0x80) eptr++; |
| 4588 |
} |
} |
| 4595 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
| 4596 |
c = max - min; |
c = max - min; |
| 4597 |
if (c > (unsigned int)(md->end_subject - eptr)) |
if (c > (unsigned int)(md->end_subject - eptr)) |
| 4598 |
c = md->end_subject - eptr; |
{ |
| 4599 |
eptr += c; |
eptr = md->end_subject; |
| 4600 |
|
SCHECK_PARTIAL(); |
| 4601 |
|
} |
| 4602 |
|
else eptr += c; |
| 4603 |
break; |
break; |
| 4604 |
|
|
| 4605 |
case OP_ANYNL: |
case OP_ANYNL: |
| 4606 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4607 |
{ |
{ |
| 4608 |
int len = 1; |
int len = 1; |
| 4609 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4610 |
|
{ |
| 4611 |
|
SCHECK_PARTIAL(); |
| 4612 |
|
break; |
| 4613 |
|
} |
| 4614 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4615 |
if (c == 0x000d) |
if (c == 0x000d) |
| 4616 |
{ |
{ |
| 4635 |
{ |
{ |
| 4636 |
BOOL gotspace; |
BOOL gotspace; |
| 4637 |
int len = 1; |
int len = 1; |
| 4638 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4639 |
|
{ |
| 4640 |
|
SCHECK_PARTIAL(); |
| 4641 |
|
break; |
| 4642 |
|
} |
| 4643 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4644 |
switch(c) |
switch(c) |
| 4645 |
{ |
{ |
| 4677 |
{ |
{ |
| 4678 |
BOOL gotspace; |
BOOL gotspace; |
| 4679 |
int len = 1; |
int len = 1; |
| 4680 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4681 |
|
{ |
| 4682 |
|
SCHECK_PARTIAL(); |
| 4683 |
|
break; |
| 4684 |
|
} |
| 4685 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4686 |
switch(c) |
switch(c) |
| 4687 |
{ |
{ |
| 4705 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4706 |
{ |
{ |
| 4707 |
int len = 1; |
int len = 1; |
| 4708 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4709 |
|
{ |
| 4710 |
|
SCHECK_PARTIAL(); |
| 4711 |
|
break; |
| 4712 |
|
} |
| 4713 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4714 |
if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) break; |
if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) break; |
| 4715 |
eptr+= len; |
eptr+= len; |
| 4720 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4721 |
{ |
{ |
| 4722 |
int len = 1; |
int len = 1; |
| 4723 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4724 |
|
{ |
| 4725 |
|
SCHECK_PARTIAL(); |
| 4726 |
|
break; |
| 4727 |
|
} |
| 4728 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4729 |
if (c >= 256 ||(md->ctypes[c] & ctype_digit) == 0) break; |
if (c >= 256 ||(md->ctypes[c] & ctype_digit) == 0) break; |
| 4730 |
eptr+= len; |
eptr+= len; |
| 4735 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4736 |
{ |
{ |
| 4737 |
int len = 1; |
int len = 1; |
| 4738 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4739 |
|
{ |
| 4740 |
|
SCHECK_PARTIAL(); |
| 4741 |
|
break; |
| 4742 |
|
} |
| 4743 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4744 |
if (c < 256 && (md->ctypes[c] & ctype_space) != 0) break; |
if (c < 256 && (md->ctypes[c] & ctype_space) != 0) break; |
| 4745 |
eptr+= len; |
eptr+= len; |
| 4750 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4751 |
{ |
{ |
| 4752 |
int len = 1; |
int len = 1; |
| 4753 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4754 |
|
{ |
| 4755 |
|
SCHECK_PARTIAL(); |
| 4756 |
|
break; |
| 4757 |
|
} |
| 4758 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4759 |
if (c >= 256 ||(md->ctypes[c] & ctype_space) == 0) break; |
if (c >= 256 ||(md->ctypes[c] & ctype_space) == 0) break; |
| 4760 |
eptr+= len; |
eptr+= len; |
| 4765 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4766 |
{ |
{ |
| 4767 |
int len = 1; |
int len = 1; |
| 4768 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4769 |
|
{ |
| 4770 |
|
SCHECK_PARTIAL(); |
| 4771 |
|
break; |
| 4772 |
|
} |
| 4773 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4774 |
if (c < 256 && (md->ctypes[c] & ctype_word) != 0) break; |
if (c < 256 && (md->ctypes[c] & ctype_word) != 0) break; |
| 4775 |
eptr+= len; |
eptr+= len; |
| 4780 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4781 |
{ |
{ |
| 4782 |
int len = 1; |
int len = 1; |
| 4783 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4784 |
|
{ |
| 4785 |
|
SCHECK_PARTIAL(); |
| 4786 |
|
break; |
| 4787 |
|
} |
| 4788 |
GETCHARLEN(c, eptr, len); |
GETCHARLEN(c, eptr, len); |
| 4789 |
if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) break; |
if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) break; |
| 4790 |
eptr+= len; |
eptr+= len; |
| 4816 |
case OP_ANY: |
case OP_ANY: |
| 4817 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4818 |
{ |
{ |
| 4819 |
if (eptr >= md->end_subject || IS_NEWLINE(eptr)) break; |
if (eptr >= md->end_subject) |
| 4820 |
|
{ |
| 4821 |
|
SCHECK_PARTIAL(); |
| 4822 |
|
break; |
| 4823 |
|
} |
| 4824 |
|
if (IS_NEWLINE(eptr)) break; |
| 4825 |
eptr++; |
eptr++; |
| 4826 |
} |
} |
| 4827 |
break; |
break; |
| 4830 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
| 4831 |
c = max - min; |
c = max - min; |
| 4832 |
if (c > (unsigned int)(md->end_subject - eptr)) |
if (c > (unsigned int)(md->end_subject - eptr)) |
| 4833 |
c = md->end_subject - eptr; |
{ |
| 4834 |
eptr += c; |
eptr = md->end_subject; |
| 4835 |
|
SCHECK_PARTIAL(); |
| 4836 |
|
} |
| 4837 |
|
else eptr += c; |
| 4838 |
break; |
break; |
| 4839 |
|
|
| 4840 |
case OP_ANYNL: |
case OP_ANYNL: |
| 4841 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4842 |
{ |
{ |
| 4843 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4844 |
|
{ |
| 4845 |
|
SCHECK_PARTIAL(); |
| 4846 |
|
break; |
| 4847 |
|
} |
| 4848 |
c = *eptr; |
c = *eptr; |
| 4849 |
if (c == 0x000d) |
if (c == 0x000d) |
| 4850 |
{ |
{ |
| 4865 |
case OP_NOT_HSPACE: |
case OP_NOT_HSPACE: |
| 4866 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4867 |
{ |
{ |
| 4868 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4869 |
|
{ |
| 4870 |
|
SCHECK_PARTIAL(); |
| 4871 |
|
break; |
| 4872 |
|
} |
| 4873 |
c = *eptr; |
c = *eptr; |
| 4874 |
if (c == 0x09 || c == 0x20 || c == 0xa0) break; |
if (c == 0x09 || c == 0x20 || c == 0xa0) break; |
| 4875 |
eptr++; |
eptr++; |
| 4879 |
case OP_HSPACE: |
case OP_HSPACE: |
| 4880 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4881 |
{ |
{ |
| 4882 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4883 |
|
{ |
| 4884 |
|
SCHECK_PARTIAL(); |
| 4885 |
|
break; |
| 4886 |
|
} |
| 4887 |
c = *eptr; |
c = *eptr; |
| 4888 |
if (c != 0x09 && c != 0x20 && c != 0xa0) break; |
if (c != 0x09 && c != 0x20 && c != 0xa0) break; |
| 4889 |
eptr++; |
eptr++; |
| 4893 |
case OP_NOT_VSPACE: |
case OP_NOT_VSPACE: |
| 4894 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4895 |
{ |
{ |
| 4896 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4897 |
|
{ |
| 4898 |
|
SCHECK_PARTIAL(); |
| 4899 |
|
break; |
| 4900 |
|
} |
| 4901 |
c = *eptr; |
c = *eptr; |
| 4902 |
if (c == 0x0a || c == 0x0b || c == 0x0c || c == 0x0d || c == 0x85) |
if (c == 0x0a || c == 0x0b || c == 0x0c || c == 0x0d || c == 0x85) |
| 4903 |
break; |
break; |
| 4908 |
case OP_VSPACE: |
case OP_VSPACE: |
| 4909 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4910 |
{ |
{ |
| 4911 |
if (eptr >= md->end_subject) break; |
if (eptr >= md->end_subject) |
| 4912 |
|
{ |
| 4913 |
|
SCHECK_PARTIAL(); |
| 4914 |
|
break; |
| 4915 |
|
} |
| 4916 |
c = *eptr; |
c = *eptr; |
| 4917 |
if (c != 0x0a && c != 0x0b && c != 0x0c && c != 0x0d && c != 0x85) |
if (c != 0x0a && c != 0x0b && c != 0x0c && c != 0x0d && c != 0x85) |
| 4918 |
break; |
break; |
| 4923 |
case OP_NOT_DIGIT: |
case OP_NOT_DIGIT: |
| 4924 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4925 |
{ |
{ |
| 4926 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_digit) != 0) |
if (eptr >= md->end_subject) |
| 4927 |
|
{ |
| 4928 |
|
SCHECK_PARTIAL(); |
| 4929 |
break; |
break; |
| 4930 |
|
} |
| 4931 |
|
if ((md->ctypes[*eptr] & ctype_digit) != 0) break; |
| 4932 |
eptr++; |
eptr++; |
| 4933 |
} |
} |
| 4934 |
break; |
break; |
| 4936 |
case OP_DIGIT: |
case OP_DIGIT: |
| 4937 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4938 |
{ |
{ |
| 4939 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_digit) == 0) |
if (eptr >= md->end_subject) |
| 4940 |
|
{ |
| 4941 |
|
SCHECK_PARTIAL(); |
| 4942 |
break; |
break; |
| 4943 |
|
} |
| 4944 |
|
if ((md->ctypes[*eptr] & ctype_digit) == 0) break; |
| 4945 |
eptr++; |
eptr++; |
| 4946 |
} |
} |
| 4947 |
break; |
break; |
| 4949 |
case OP_NOT_WHITESPACE: |
case OP_NOT_WHITESPACE: |
| 4950 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4951 |
{ |
{ |
| 4952 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_space) != 0) |
if (eptr >= md->end_subject) |
| 4953 |
|
{ |
| 4954 |
|
SCHECK_PARTIAL(); |
| 4955 |
break; |
break; |
| 4956 |
|
} |
| 4957 |
|
if ((md->ctypes[*eptr] & ctype_space) != 0) break; |
| 4958 |
eptr++; |
eptr++; |
| 4959 |
} |
} |
| 4960 |
break; |
break; |
| 4962 |
case OP_WHITESPACE: |
case OP_WHITESPACE: |
| 4963 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4964 |
{ |
{ |
| 4965 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_space) == 0) |
if (eptr >= md->end_subject) |
| 4966 |
|
{ |
| 4967 |
|
SCHECK_PARTIAL(); |
| 4968 |
break; |
break; |
| 4969 |
|
} |
| 4970 |
|
if ((md->ctypes[*eptr] & ctype_space) == 0) break; |
| 4971 |
eptr++; |
eptr++; |
| 4972 |
} |
} |
| 4973 |
break; |
break; |
| 4975 |
case OP_NOT_WORDCHAR: |
case OP_NOT_WORDCHAR: |
| 4976 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4977 |
{ |
{ |
| 4978 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_word) != 0) |
if (eptr >= md->end_subject) |
| 4979 |
|
{ |
| 4980 |
|
SCHECK_PARTIAL(); |
| 4981 |
break; |
break; |
| 4982 |
|
} |
| 4983 |
|
if ((md->ctypes[*eptr] & ctype_word) != 0) break; |
| 4984 |
eptr++; |
eptr++; |
| 4985 |
} |
} |
| 4986 |
break; |
break; |
| 4988 |
case OP_WORDCHAR: |
case OP_WORDCHAR: |
| 4989 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4990 |
{ |
{ |
| 4991 |
if (eptr >= md->end_subject || (md->ctypes[*eptr] & ctype_word) == 0) |
if (eptr >= md->end_subject) |
| 4992 |
|
{ |
| 4993 |
|
SCHECK_PARTIAL(); |
| 4994 |
break; |
break; |
| 4995 |
|
} |
| 4996 |
|
if ((md->ctypes[*eptr] & ctype_word) == 0) break; |
| 4997 |
eptr++; |
eptr++; |
| 4998 |
} |
} |
| 4999 |
break; |
break; |