| 1134 |
continue; |
continue; |
| 1135 |
|
|
| 1136 |
/* Negative assertion: all branches must fail to match. Encountering SKIP, |
/* Negative assertion: all branches must fail to match. Encountering SKIP, |
| 1137 |
PRUNE, or COMMIT means we must assume failure without checking subsequent |
PRUNE, or COMMIT means we must assume failure without checking subsequent |
| 1138 |
branches. */ |
branches. */ |
| 1139 |
|
|
| 1140 |
case OP_ASSERT_NOT: |
case OP_ASSERT_NOT: |
| 1147 |
if (rrc == MATCH_SKIP || rrc == MATCH_PRUNE || rrc == MATCH_COMMIT) |
if (rrc == MATCH_SKIP || rrc == MATCH_PRUNE || rrc == MATCH_COMMIT) |
| 1148 |
{ |
{ |
| 1149 |
do ecode += GET(ecode,1); while (*ecode == OP_ALT); |
do ecode += GET(ecode,1); while (*ecode == OP_ALT); |
| 1150 |
break; |
break; |
| 1151 |
} |
} |
| 1152 |
if (rrc != MATCH_NOMATCH && rrc != MATCH_THEN) RRETURN(rrc); |
if (rrc != MATCH_NOMATCH && rrc != MATCH_THEN) RRETURN(rrc); |
| 1153 |
ecode += GET(ecode,1); |
ecode += GET(ecode,1); |
| 1154 |
} |
} |
| 3695 |
case OP_NOT_WORDCHAR: |
case OP_NOT_WORDCHAR: |
| 3696 |
for (i = 1; i <= min; i++) |
for (i = 1; i <= min; i++) |
| 3697 |
{ |
{ |
| 3698 |
if (eptr >= md->end_subject || |
if (eptr >= md->end_subject) |
| 3699 |
(*eptr < 128 && (md->ctypes[*eptr] & ctype_word) != 0)) |
{ |
| 3700 |
|
SCHECK_PARTIAL(); |
| 3701 |
|
RRETURN(MATCH_NOMATCH); |
| 3702 |
|
} |
| 3703 |
|
if (*eptr < 128 && (md->ctypes[*eptr] & ctype_word) != 0) |
| 3704 |
RRETURN(MATCH_NOMATCH); |
RRETURN(MATCH_NOMATCH); |
| 3705 |
while (++eptr < md->end_subject && (*eptr & 0xc0) == 0x80); |
while (++eptr < md->end_subject && (*eptr & 0xc0) == 0x80); |
| 3706 |
} |
} |