| 277 |
RM31, RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40, |
RM31, RM32, RM33, RM34, RM35, RM36, RM37, RM38, RM39, RM40, |
| 278 |
RM41, RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50, |
RM41, RM42, RM43, RM44, RM45, RM46, RM47, RM48, RM49, RM50, |
| 279 |
RM51, RM52, RM53, RM54, RM55, RM56, RM57, RM58, RM59, RM60, |
RM51, RM52, RM53, RM54, RM55, RM56, RM57, RM58, RM59, RM60, |
| 280 |
RM61, RM62, RM63, RM64, RM65, RM66 }; |
RM61, RM62, RM63 }; |
| 281 |
|
|
| 282 |
/* These versions of the macros use the stack, as normal. There are debugging |
/* These versions of the macros use the stack, as normal. There are debugging |
| 283 |
versions and production versions. Note that the "rw" argument of RMATCH isn't |
versions and production versions. Note that the "rw" argument of RMATCH isn't |
| 384 |
int Xprop_type; |
int Xprop_type; |
| 385 |
int Xprop_value; |
int Xprop_value; |
| 386 |
int Xprop_fail_result; |
int Xprop_fail_result; |
|
int Xprop_category; |
|
|
int Xprop_chartype; |
|
|
int Xprop_script; |
|
| 387 |
int Xoclength; |
int Xoclength; |
| 388 |
uschar Xocchars[8]; |
uschar Xocchars[8]; |
| 389 |
#endif |
#endif |
| 548 |
#define prop_type frame->Xprop_type |
#define prop_type frame->Xprop_type |
| 549 |
#define prop_value frame->Xprop_value |
#define prop_value frame->Xprop_value |
| 550 |
#define prop_fail_result frame->Xprop_fail_result |
#define prop_fail_result frame->Xprop_fail_result |
|
#define prop_category frame->Xprop_category |
|
|
#define prop_chartype frame->Xprop_chartype |
|
|
#define prop_script frame->Xprop_script |
|
| 551 |
#define oclength frame->Xoclength |
#define oclength frame->Xoclength |
| 552 |
#define occhars frame->Xocchars |
#define occhars frame->Xocchars |
| 553 |
#endif |
#endif |
| 605 |
int prop_type; |
int prop_type; |
| 606 |
int prop_value; |
int prop_value; |
| 607 |
int prop_fail_result; |
int prop_fail_result; |
|
int prop_category; |
|
|
int prop_chartype; |
|
|
int prop_script; |
|
| 608 |
int oclength; |
int oclength; |
| 609 |
uschar occhars[8]; |
uschar occhars[8]; |
| 610 |
#endif |
#endif |
| 1756 |
|
|
| 1757 |
if (*ecode == OP_KETRMIN) |
if (*ecode == OP_KETRMIN) |
| 1758 |
{ |
{ |
| 1759 |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM64); |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM7); |
| 1760 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 1761 |
if (*prev == OP_ONCE) |
if (*prev == OP_ONCE) |
| 1762 |
{ |
{ |
| 1763 |
RMATCH(eptr, prev, offset_top, md, eptrb, RM66); |
RMATCH(eptr, prev, offset_top, md, eptrb, RM8); |
| 1764 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 1765 |
md->once_target = prev; /* Level at which to change to MATCH_NOMATCH */ |
md->once_target = prev; /* Level at which to change to MATCH_NOMATCH */ |
| 1766 |
RRETURN(MATCH_ONCE); |
RRETURN(MATCH_ONCE); |
| 1782 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 1783 |
if (*prev == OP_ONCE) |
if (*prev == OP_ONCE) |
| 1784 |
{ |
{ |
| 1785 |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM65); |
RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM9); |
| 1786 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 1787 |
md->once_target = prev; |
md->once_target = prev; |
| 1788 |
RRETURN(MATCH_ONCE); |
RRETURN(MATCH_ONCE); |
| 2355 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 2356 |
} |
} |
| 2357 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 2358 |
|
if (UCD_CATEGORY(c) == ucp_M) MRRETURN(MATCH_NOMATCH); |
| 2359 |
|
while (eptr < md->end_subject) |
| 2360 |
{ |
{ |
| 2361 |
int category = UCD_CATEGORY(c); |
int len = 1; |
| 2362 |
if (category == ucp_M) MRRETURN(MATCH_NOMATCH); |
if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } |
| 2363 |
while (eptr < md->end_subject) |
if (UCD_CATEGORY(c) != ucp_M) break; |
| 2364 |
{ |
eptr += len; |
|
int len = 1; |
|
|
if (!utf8) c = *eptr; else |
|
|
{ |
|
|
GETCHARLEN(c, eptr, len); |
|
|
} |
|
|
category = UCD_CATEGORY(c); |
|
|
if (category != ucp_M) break; |
|
|
eptr += len; |
|
|
} |
|
| 2365 |
} |
} |
| 2366 |
ecode++; |
ecode++; |
| 2367 |
break; |
break; |
| 3715 |
case PT_LAMP: |
case PT_LAMP: |
| 3716 |
for (i = 1; i <= min; i++) |
for (i = 1; i <= min; i++) |
| 3717 |
{ |
{ |
| 3718 |
|
int chartype; |
| 3719 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 3720 |
{ |
{ |
| 3721 |
SCHECK_PARTIAL(); |
SCHECK_PARTIAL(); |
| 3722 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3723 |
} |
} |
| 3724 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3725 |
prop_chartype = UCD_CHARTYPE(c); |
chartype = UCD_CHARTYPE(c); |
| 3726 |
if ((prop_chartype == ucp_Lu || |
if ((chartype == ucp_Lu || |
| 3727 |
prop_chartype == ucp_Ll || |
chartype == ucp_Ll || |
| 3728 |
prop_chartype == ucp_Lt) == prop_fail_result) |
chartype == ucp_Lt) == prop_fail_result) |
| 3729 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3730 |
} |
} |
| 3731 |
break; |
break; |
| 3739 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3740 |
} |
} |
| 3741 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3742 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == prop_value) == prop_fail_result) |
|
if ((prop_category == prop_value) == prop_fail_result) |
|
| 3743 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3744 |
} |
} |
| 3745 |
break; |
break; |
| 3753 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3754 |
} |
} |
| 3755 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3756 |
prop_chartype = UCD_CHARTYPE(c); |
if ((UCD_CHARTYPE(c) == prop_value) == prop_fail_result) |
|
if ((prop_chartype == prop_value) == prop_fail_result) |
|
| 3757 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3758 |
} |
} |
| 3759 |
break; |
break; |
| 3767 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3768 |
} |
} |
| 3769 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3770 |
prop_script = UCD_SCRIPT(c); |
if ((UCD_SCRIPT(c) == prop_value) == prop_fail_result) |
|
if ((prop_script == prop_value) == prop_fail_result) |
|
| 3771 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3772 |
} |
} |
| 3773 |
break; |
break; |
| 3775 |
case PT_ALNUM: |
case PT_ALNUM: |
| 3776 |
for (i = 1; i <= min; i++) |
for (i = 1; i <= min; i++) |
| 3777 |
{ |
{ |
| 3778 |
|
int category; |
| 3779 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 3780 |
{ |
{ |
| 3781 |
SCHECK_PARTIAL(); |
SCHECK_PARTIAL(); |
| 3782 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3783 |
} |
} |
| 3784 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3785 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 3786 |
if ((prop_category == ucp_L || prop_category == ucp_N) |
if ((category == ucp_L || category == ucp_N) == prop_fail_result) |
|
== prop_fail_result) |
|
| 3787 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3788 |
} |
} |
| 3789 |
break; |
break; |
| 3797 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3798 |
} |
} |
| 3799 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3800 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 3801 |
c == CHAR_FF || c == CHAR_CR) |
c == CHAR_FF || c == CHAR_CR) |
| 3802 |
== prop_fail_result) |
== prop_fail_result) |
| 3803 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3813 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3814 |
} |
} |
| 3815 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3816 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 3817 |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
| 3818 |
== prop_fail_result) |
== prop_fail_result) |
| 3819 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3823 |
case PT_WORD: |
case PT_WORD: |
| 3824 |
for (i = 1; i <= min; i++) |
for (i = 1; i <= min; i++) |
| 3825 |
{ |
{ |
| 3826 |
|
int category; |
| 3827 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 3828 |
{ |
{ |
| 3829 |
SCHECK_PARTIAL(); |
SCHECK_PARTIAL(); |
| 3830 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3831 |
} |
} |
| 3832 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3833 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 3834 |
if ((prop_category == ucp_L || prop_category == ucp_N || |
if ((category == ucp_L || category == ucp_N || c == CHAR_UNDERSCORE) |
|
c == CHAR_UNDERSCORE) |
|
| 3835 |
== prop_fail_result) |
== prop_fail_result) |
| 3836 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3837 |
} |
} |
| 3857 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 3858 |
} |
} |
| 3859 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 3860 |
prop_category = UCD_CATEGORY(c); |
if (UCD_CATEGORY(c) == ucp_M) MRRETURN(MATCH_NOMATCH); |
|
if (prop_category == ucp_M) MRRETURN(MATCH_NOMATCH); |
|
| 3861 |
while (eptr < md->end_subject) |
while (eptr < md->end_subject) |
| 3862 |
{ |
{ |
| 3863 |
int len = 1; |
int len = 1; |
| 3864 |
if (!utf8) c = *eptr; |
if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } |
| 3865 |
else { GETCHARLEN(c, eptr, len); } |
if (UCD_CATEGORY(c) != ucp_M) break; |
|
prop_category = UCD_CATEGORY(c); |
|
|
if (prop_category != ucp_M) break; |
|
| 3866 |
eptr += len; |
eptr += len; |
| 3867 |
} |
} |
| 3868 |
} |
} |
| 4407 |
case PT_LAMP: |
case PT_LAMP: |
| 4408 |
for (fi = min;; fi++) |
for (fi = min;; fi++) |
| 4409 |
{ |
{ |
| 4410 |
|
int chartype; |
| 4411 |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM37); |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM37); |
| 4412 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 4413 |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
| 4417 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4418 |
} |
} |
| 4419 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4420 |
prop_chartype = UCD_CHARTYPE(c); |
chartype = UCD_CHARTYPE(c); |
| 4421 |
if ((prop_chartype == ucp_Lu || |
if ((chartype == ucp_Lu || |
| 4422 |
prop_chartype == ucp_Ll || |
chartype == ucp_Ll || |
| 4423 |
prop_chartype == ucp_Lt) == prop_fail_result) |
chartype == ucp_Lt) == prop_fail_result) |
| 4424 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4425 |
} |
} |
| 4426 |
/* Control never gets here */ |
/* Control never gets here */ |
| 4437 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4438 |
} |
} |
| 4439 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4440 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == prop_value) == prop_fail_result) |
|
if ((prop_category == prop_value) == prop_fail_result) |
|
| 4441 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4442 |
} |
} |
| 4443 |
/* Control never gets here */ |
/* Control never gets here */ |
| 4454 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4455 |
} |
} |
| 4456 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4457 |
prop_chartype = UCD_CHARTYPE(c); |
if ((UCD_CHARTYPE(c) == prop_value) == prop_fail_result) |
|
if ((prop_chartype == prop_value) == prop_fail_result) |
|
| 4458 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4459 |
} |
} |
| 4460 |
/* Control never gets here */ |
/* Control never gets here */ |
| 4471 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4472 |
} |
} |
| 4473 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4474 |
prop_script = UCD_SCRIPT(c); |
if ((UCD_SCRIPT(c) == prop_value) == prop_fail_result) |
|
if ((prop_script == prop_value) == prop_fail_result) |
|
| 4475 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4476 |
} |
} |
| 4477 |
/* Control never gets here */ |
/* Control never gets here */ |
| 4479 |
case PT_ALNUM: |
case PT_ALNUM: |
| 4480 |
for (fi = min;; fi++) |
for (fi = min;; fi++) |
| 4481 |
{ |
{ |
| 4482 |
|
int category; |
| 4483 |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM59); |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM59); |
| 4484 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 4485 |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
| 4489 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4490 |
} |
} |
| 4491 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4492 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 4493 |
if ((prop_category == ucp_L || prop_category == ucp_N) |
if ((category == ucp_L || category == ucp_N) == prop_fail_result) |
|
== prop_fail_result) |
|
| 4494 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4495 |
} |
} |
| 4496 |
/* Control never gets here */ |
/* Control never gets here */ |
| 4507 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4508 |
} |
} |
| 4509 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4510 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 4511 |
c == CHAR_FF || c == CHAR_CR) |
c == CHAR_FF || c == CHAR_CR) |
| 4512 |
== prop_fail_result) |
== prop_fail_result) |
| 4513 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4526 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4527 |
} |
} |
| 4528 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4529 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 4530 |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
| 4531 |
== prop_fail_result) |
== prop_fail_result) |
| 4532 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4536 |
case PT_WORD: |
case PT_WORD: |
| 4537 |
for (fi = min;; fi++) |
for (fi = min;; fi++) |
| 4538 |
{ |
{ |
| 4539 |
|
int category; |
| 4540 |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM62); |
RMATCH(eptr, ecode, offset_top, md, eptrb, RM62); |
| 4541 |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH) RRETURN(rrc); |
| 4542 |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
if (fi >= max) MRRETURN(MATCH_NOMATCH); |
| 4546 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4547 |
} |
} |
| 4548 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4549 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 4550 |
if ((prop_category == ucp_L || |
if ((category == ucp_L || |
| 4551 |
prop_category == ucp_N || |
category == ucp_N || |
| 4552 |
c == CHAR_UNDERSCORE) |
c == CHAR_UNDERSCORE) |
| 4553 |
== prop_fail_result) |
== prop_fail_result) |
| 4554 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4578 |
MRRETURN(MATCH_NOMATCH); |
MRRETURN(MATCH_NOMATCH); |
| 4579 |
} |
} |
| 4580 |
GETCHARINCTEST(c, eptr); |
GETCHARINCTEST(c, eptr); |
| 4581 |
prop_category = UCD_CATEGORY(c); |
if (UCD_CATEGORY(c) == ucp_M) MRRETURN(MATCH_NOMATCH); |
|
if (prop_category == ucp_M) MRRETURN(MATCH_NOMATCH); |
|
| 4582 |
while (eptr < md->end_subject) |
while (eptr < md->end_subject) |
| 4583 |
{ |
{ |
| 4584 |
int len = 1; |
int len = 1; |
| 4585 |
if (!utf8) c = *eptr; |
if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } |
| 4586 |
else { GETCHARLEN(c, eptr, len); } |
if (UCD_CATEGORY(c) != ucp_M) break; |
|
prop_category = UCD_CATEGORY(c); |
|
|
if (prop_category != ucp_M) break; |
|
| 4587 |
eptr += len; |
eptr += len; |
| 4588 |
} |
} |
| 4589 |
} |
} |
| 4590 |
} |
} |
|
|
|
| 4591 |
else |
else |
| 4592 |
#endif /* SUPPORT_UCP */ |
#endif /* SUPPORT_UCP */ |
| 4593 |
|
|
| 4908 |
case PT_LAMP: |
case PT_LAMP: |
| 4909 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4910 |
{ |
{ |
| 4911 |
|
int chartype; |
| 4912 |
int len = 1; |
int len = 1; |
| 4913 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 4914 |
{ |
{ |
| 4916 |
break; |
break; |
| 4917 |
} |
} |
| 4918 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 4919 |
prop_chartype = UCD_CHARTYPE(c); |
chartype = UCD_CHARTYPE(c); |
| 4920 |
if ((prop_chartype == ucp_Lu || |
if ((chartype == ucp_Lu || |
| 4921 |
prop_chartype == ucp_Ll || |
chartype == ucp_Ll || |
| 4922 |
prop_chartype == ucp_Lt) == prop_fail_result) |
chartype == ucp_Lt) == prop_fail_result) |
| 4923 |
break; |
break; |
| 4924 |
eptr+= len; |
eptr+= len; |
| 4925 |
} |
} |
| 4935 |
break; |
break; |
| 4936 |
} |
} |
| 4937 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 4938 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == prop_value) == prop_fail_result) break; |
|
if ((prop_category == prop_value) == prop_fail_result) |
|
|
break; |
|
| 4939 |
eptr+= len; |
eptr+= len; |
| 4940 |
} |
} |
| 4941 |
break; |
break; |
| 4950 |
break; |
break; |
| 4951 |
} |
} |
| 4952 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 4953 |
prop_chartype = UCD_CHARTYPE(c); |
if ((UCD_CHARTYPE(c) == prop_value) == prop_fail_result) break; |
|
if ((prop_chartype == prop_value) == prop_fail_result) |
|
|
break; |
|
| 4954 |
eptr+= len; |
eptr+= len; |
| 4955 |
} |
} |
| 4956 |
break; |
break; |
| 4965 |
break; |
break; |
| 4966 |
} |
} |
| 4967 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 4968 |
prop_script = UCD_SCRIPT(c); |
if ((UCD_SCRIPT(c) == prop_value) == prop_fail_result) break; |
|
if ((prop_script == prop_value) == prop_fail_result) |
|
|
break; |
|
| 4969 |
eptr+= len; |
eptr+= len; |
| 4970 |
} |
} |
| 4971 |
break; |
break; |
| 4973 |
case PT_ALNUM: |
case PT_ALNUM: |
| 4974 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 4975 |
{ |
{ |
| 4976 |
|
int category; |
| 4977 |
int len = 1; |
int len = 1; |
| 4978 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 4979 |
{ |
{ |
| 4981 |
break; |
break; |
| 4982 |
} |
} |
| 4983 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 4984 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 4985 |
if ((prop_category == ucp_L || prop_category == ucp_N) |
if ((category == ucp_L || category == ucp_N) == prop_fail_result) |
|
== prop_fail_result) |
|
| 4986 |
break; |
break; |
| 4987 |
eptr+= len; |
eptr+= len; |
| 4988 |
} |
} |
| 4998 |
break; |
break; |
| 4999 |
} |
} |
| 5000 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 5001 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 5002 |
c == CHAR_FF || c == CHAR_CR) |
c == CHAR_FF || c == CHAR_CR) |
| 5003 |
== prop_fail_result) |
== prop_fail_result) |
| 5004 |
break; |
break; |
| 5016 |
break; |
break; |
| 5017 |
} |
} |
| 5018 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 5019 |
prop_category = UCD_CATEGORY(c); |
if ((UCD_CATEGORY(c) == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
if ((prop_category == ucp_Z || c == CHAR_HT || c == CHAR_NL || |
|
| 5020 |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
c == CHAR_VT || c == CHAR_FF || c == CHAR_CR) |
| 5021 |
== prop_fail_result) |
== prop_fail_result) |
| 5022 |
break; |
break; |
| 5027 |
case PT_WORD: |
case PT_WORD: |
| 5028 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 5029 |
{ |
{ |
| 5030 |
|
int category; |
| 5031 |
int len = 1; |
int len = 1; |
| 5032 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 5033 |
{ |
{ |
| 5035 |
break; |
break; |
| 5036 |
} |
} |
| 5037 |
GETCHARLENTEST(c, eptr, len); |
GETCHARLENTEST(c, eptr, len); |
| 5038 |
prop_category = UCD_CATEGORY(c); |
category = UCD_CATEGORY(c); |
| 5039 |
if ((prop_category == ucp_L || prop_category == ucp_N || |
if ((category == ucp_L || category == ucp_N || |
| 5040 |
c == CHAR_UNDERSCORE) == prop_fail_result) |
c == CHAR_UNDERSCORE) == prop_fail_result) |
| 5041 |
break; |
break; |
| 5042 |
eptr+= len; |
eptr+= len; |
| 5066 |
{ |
{ |
| 5067 |
for (i = min; i < max; i++) |
for (i = min; i < max; i++) |
| 5068 |
{ |
{ |
| 5069 |
|
int len = 1; |
| 5070 |
if (eptr >= md->end_subject) |
if (eptr >= md->end_subject) |
| 5071 |
{ |
{ |
| 5072 |
SCHECK_PARTIAL(); |
SCHECK_PARTIAL(); |
| 5073 |
break; |
break; |
| 5074 |
} |
} |
| 5075 |
GETCHARINCTEST(c, eptr); |
if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } |
| 5076 |
prop_category = UCD_CATEGORY(c); |
if (UCD_CATEGORY(c) == ucp_M) break; |
| 5077 |
if (prop_category == ucp_M) break; |
eptr += len; |
| 5078 |
while (eptr < md->end_subject) |
while (eptr < md->end_subject) |
| 5079 |
{ |
{ |
| 5080 |
int len = 1; |
len = 1; |
| 5081 |
if (!utf8) c = *eptr; else |
if (!utf8) c = *eptr; else { GETCHARLEN(c, eptr, len); } |
| 5082 |
{ |
if (UCD_CATEGORY(c) != ucp_M) break; |
|
GETCHARLEN(c, eptr, len); |
|
|
} |
|
|
prop_category = UCD_CATEGORY(c); |
|
|
if (prop_category != ucp_M) break; |
|
| 5083 |
eptr += len; |
eptr += len; |
| 5084 |
} |
} |
| 5085 |
} |
} |
| 5095 |
if (eptr-- == pp) break; /* Stop if tried at original pos */ |
if (eptr-- == pp) break; /* Stop if tried at original pos */ |
| 5096 |
for (;;) /* Move back over one extended */ |
for (;;) /* Move back over one extended */ |
| 5097 |
{ |
{ |
|
int len = 1; |
|
| 5098 |
if (!utf8) c = *eptr; else |
if (!utf8) c = *eptr; else |
| 5099 |
{ |
{ |
| 5100 |
BACKCHAR(eptr); |
BACKCHAR(eptr); |
| 5101 |
GETCHARLEN(c, eptr, len); |
GETCHAR(c, eptr); |
| 5102 |
} |
} |
| 5103 |
prop_category = UCD_CATEGORY(c); |
if (UCD_CATEGORY(c) != ucp_M) break; |
|
if (prop_category != ucp_M) break; |
|
| 5104 |
eptr--; |
eptr--; |
| 5105 |
} |
} |
| 5106 |
} |
} |
| 5637 |
LBL( 9) LBL(10) LBL(11) LBL(12) LBL(13) LBL(14) LBL(15) LBL(17) |
LBL( 9) LBL(10) LBL(11) LBL(12) LBL(13) LBL(14) LBL(15) LBL(17) |
| 5638 |
LBL(19) LBL(24) LBL(25) LBL(26) LBL(27) LBL(29) LBL(31) LBL(33) |
LBL(19) LBL(24) LBL(25) LBL(26) LBL(27) LBL(29) LBL(31) LBL(33) |
| 5639 |
LBL(35) LBL(43) LBL(47) LBL(48) LBL(49) LBL(50) LBL(51) LBL(52) |
LBL(35) LBL(43) LBL(47) LBL(48) LBL(49) LBL(50) LBL(51) LBL(52) |
| 5640 |
LBL(53) LBL(54) LBL(55) LBL(56) LBL(57) LBL(58) LBL(63) LBL(64) |
LBL(53) LBL(54) LBL(55) LBL(56) LBL(57) LBL(58) LBL(63) |
|
LBL(65) LBL(66) |
|
| 5641 |
#ifdef SUPPORT_UTF8 |
#ifdef SUPPORT_UTF8 |
| 5642 |
LBL(16) LBL(18) LBL(20) LBL(21) LBL(22) LBL(23) LBL(28) LBL(30) |
LBL(16) LBL(18) LBL(20) LBL(21) LBL(22) LBL(23) LBL(28) LBL(30) |
| 5643 |
LBL(32) LBL(34) LBL(42) LBL(46) |
LBL(32) LBL(34) LBL(42) LBL(46) |