line |
true |
false |
branch |
898
|
0 |
0 |
for (; n > 0; n--) |
900
|
0 |
0 |
while (*s++ != CHAR_NULL) {}; |
901
|
0 |
0 |
if (*s == CHAR_NULL) return "Error text not found (please report)"; |
927
|
0 |
0 |
if (newsize > COMPILE_WORK_SIZE_MAX) newsize = COMPILE_WORK_SIZE_MAX; |
928
|
0 |
0 |
if (cd->workspace_size >= COMPILE_WORK_SIZE_MAX || |
|
0 |
0 |
if (cd->workspace_size >= COMPILE_WORK_SIZE_MAX || |
933
|
0 |
0 |
if (newspace == NULL) return ERR21; |
936
|
0 |
0 |
if (cd->workspace_size > COMPILE_WORK_SIZE) |
963
|
0 |
0 |
if (!IS_DIGIT(*p)) return FALSE; |
|
0 |
0 |
if (!IS_DIGIT(*p)) return FALSE; |
965
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
966
|
0 |
0 |
if (*p == CHAR_RIGHT_CURLY_BRACKET) return TRUE; |
968
|
0 |
0 |
if (*p++ != CHAR_COMMA) return FALSE; |
969
|
0 |
0 |
if (*p == CHAR_RIGHT_CURLY_BRACKET) return TRUE; |
971
|
0 |
0 |
if (!IS_DIGIT(*p)) return FALSE; |
|
0 |
0 |
if (!IS_DIGIT(*p)) return FALSE; |
973
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
1021
|
0 |
104 |
if (c == CHAR_NULL) *errorcodeptr = ERR1; |
1029
|
0 |
104 |
else if (c < CHAR_0 || c > CHAR_z) {} |
|
0 |
0 |
else if (c < CHAR_0 || c > CHAR_z) {} |
1030
|
0 |
0 |
else if ((i = escapes[c - CHAR_0]) != 0) |
1031
|
0 |
0 |
{ if (i > 0) c = (pcre_uint32)i; else escape = -i; } |
1058
|
0 |
0 |
if ((options & PCRE_JAVASCRIPT_COMPAT) != 0) |
1062
|
0 |
0 |
if (MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0 |
1064
|
0 |
0 |
&& MAX_255(ptr[3]) && (digitab[ptr[3]] & ctype_xdigit) != 0 |
1065
|
0 |
0 |
&& MAX_255(ptr[4]) && (digitab[ptr[4]] & ctype_xdigit) != 0) |
|
0 |
0 |
&& MAX_255(ptr[4]) && (digitab[ptr[4]] & ctype_xdigit) != 0) |
1068
|
0 |
0 |
for (i = 0; i < 4; ++i) |
1072
|
0 |
0 |
if (cc >= CHAR_a) cc -= 32; /* Convert to upper case */ |
1073
|
0 |
0 |
c = (c << 4) + cc - ((cc < CHAR_A)? CHAR_0 : (CHAR_A - 10)); |
1081
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) |
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) |
1090
|
0 |
0 |
else if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
else if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
else if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
1099
|
0 |
0 |
if ((options & PCRE_JAVASCRIPT_COMPAT) == 0) *errorcodeptr = ERR37; |
1120
|
0 |
0 |
if (isclass) break; |
1121
|
0 |
0 |
if (ptr[1] == CHAR_LESS_THAN_SIGN || ptr[1] == CHAR_APOSTROPHE) |
|
0 |
0 |
if (ptr[1] == CHAR_LESS_THAN_SIGN || ptr[1] == CHAR_APOSTROPHE) |
1129
|
0 |
0 |
if (ptr[1] == CHAR_LEFT_CURLY_BRACKET) |
1132
|
0 |
0 |
for (p = ptr+2; *p != CHAR_NULL && *p != CHAR_RIGHT_CURLY_BRACKET; p++) |
|
0 |
0 |
for (p = ptr+2; *p != CHAR_NULL && *p != CHAR_RIGHT_CURLY_BRACKET; p++) |
1133
|
0 |
0 |
if (*p != CHAR_MINUS && !IS_DIGIT(*p)) break; |
|
0 |
0 |
if (*p != CHAR_MINUS && !IS_DIGIT(*p)) break; |
|
0 |
0 |
if (*p != CHAR_MINUS && !IS_DIGIT(*p)) break; |
1134
|
0 |
0 |
if (*p != CHAR_NULL && *p != CHAR_RIGHT_CURLY_BRACKET) |
|
0 |
0 |
if (*p != CHAR_NULL && *p != CHAR_RIGHT_CURLY_BRACKET) |
1144
|
0 |
0 |
if (ptr[1] == CHAR_MINUS) |
1154
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
1156
|
0 |
0 |
if (s > INT_MAX / 10 - 1) /* Integer overflow */ |
1163
|
0 |
0 |
if (overflow) /* Integer overflow */ |
1165
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
1171
|
0 |
0 |
if (braced && *(++ptr) != CHAR_RIGHT_CURLY_BRACKET) |
|
0 |
0 |
if (braced && *(++ptr) != CHAR_RIGHT_CURLY_BRACKET) |
1177
|
0 |
0 |
if (s == 0) |
1183
|
0 |
0 |
if (negated) |
1185
|
0 |
0 |
if (s > bracount) |
1215
|
0 |
0 |
if (!isclass) |
1221
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
1223
|
0 |
0 |
if (s > INT_MAX / 10 - 1) /* Integer overflow */ |
1230
|
0 |
0 |
if (overflow) /* Integer overflow */ |
1232
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
|
0 |
0 |
while (IS_DIGIT(ptr[1])) |
1237
|
0 |
0 |
if (s < 8 || s <= bracount) /* Check for back reference */ |
|
0 |
0 |
if (s < 8 || s <= bracount) /* Check for back reference */ |
1250
|
0 |
0 |
if ((c = *ptr) >= CHAR_8) break; |
1262
|
0 |
0 |
while(i++ < 2 && ptr[1] >= CHAR_0 && ptr[1] <= CHAR_7) |
|
0 |
0 |
while(i++ < 2 && ptr[1] >= CHAR_0 && ptr[1] <= CHAR_7) |
|
0 |
0 |
while(i++ < 2 && ptr[1] >= CHAR_0 && ptr[1] <= CHAR_7) |
1265
|
0 |
0 |
if (!utf && c > 0xff) *errorcodeptr = ERR51; |
|
0 |
0 |
if (!utf && c > 0xff) *errorcodeptr = ERR51; |
1273
|
0 |
0 |
if (ptr[1] != CHAR_LEFT_CURLY_BRACKET) *errorcodeptr = ERR81; else |
1274
|
0 |
0 |
if (ptr[2] == CHAR_RIGHT_CURLY_BRACKET) *errorcodeptr = ERR86; else |
1279
|
0 |
0 |
while (*ptr >= CHAR_0 && *ptr <= CHAR_7) |
|
0 |
0 |
while (*ptr >= CHAR_0 && *ptr <= CHAR_7) |
1282
|
0 |
0 |
if (c == 0 && cc == CHAR_0) continue; /* Leading zeroes */ |
|
0 |
0 |
if (c == 0 && cc == CHAR_0) continue; /* Leading zeroes */ |
1288
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) { overflow = TRUE; break; } |
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) { overflow = TRUE; break; } |
1295
|
0 |
0 |
if (overflow) |
1297
|
0 |
0 |
while (*ptr >= CHAR_0 && *ptr <= CHAR_7) ptr++; |
|
0 |
0 |
while (*ptr >= CHAR_0 && *ptr <= CHAR_7) ptr++; |
1300
|
0 |
0 |
else if (*ptr == CHAR_RIGHT_CURLY_BRACKET) |
1302
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
1312
|
0 |
0 |
if ((options & PCRE_JAVASCRIPT_COMPAT) != 0) |
1314
|
0 |
0 |
if (MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0 |
1315
|
0 |
0 |
&& MAX_255(ptr[2]) && (digitab[ptr[2]] & ctype_xdigit) != 0) |
1318
|
0 |
0 |
for (i = 0; i < 2; ++i) |
1322
|
0 |
0 |
if (cc >= CHAR_a) cc -= 32; /* Convert to upper case */ |
1323
|
0 |
0 |
c = (c << 4) + cc - ((cc < CHAR_A)? CHAR_0 : (CHAR_A - 10)); |
1341
|
0 |
0 |
if (ptr[1] == CHAR_LEFT_CURLY_BRACKET) |
1344
|
0 |
0 |
if (*ptr == CHAR_RIGHT_CURLY_BRACKET) |
1351
|
0 |
0 |
while (MAX_255(*ptr) && (digitab[*ptr] & ctype_xdigit) != 0) |
1354
|
0 |
0 |
if (c == 0 && cc == CHAR_0) continue; /* Leading zeroes */ |
|
0 |
0 |
if (c == 0 && cc == CHAR_0) continue; /* Leading zeroes */ |
1361
|
0 |
0 |
if (cc >= CHAR_a) cc -= 32; /* Convert to upper case */ |
1362
|
0 |
0 |
c = (c << 4) + cc - ((cc < CHAR_A)? CHAR_0 : (CHAR_A - 10)); |
1369
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) { overflow = TRUE; break; } |
|
0 |
0 |
if (c > (utf ? 0x10ffffU : 0xffU)) { overflow = TRUE; break; } |
1377
|
0 |
0 |
if (overflow) |
1379
|
0 |
0 |
while (MAX_255(*ptr) && (digitab[*ptr] & ctype_xdigit) != 0) ptr++; |
1383
|
0 |
0 |
else if (*ptr == CHAR_RIGHT_CURLY_BRACKET) |
1385
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
|
0 |
0 |
if (utf && c >= 0xd800 && c <= 0xdfff) *errorcodeptr = ERR73; |
1401
|
0 |
0 |
while (i++ < 2 && MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0) |
|
0 |
0 |
while (i++ < 2 && MAX_255(ptr[1]) && (digitab[ptr[1]] & ctype_xdigit) != 0) |
1406
|
0 |
0 |
if (cc >= CHAR_a) cc -= 32; /* Convert to upper case */ |
1407
|
0 |
0 |
c = c * 16 + cc - ((cc < CHAR_A)? CHAR_0 : (CHAR_A - 10)); |
1424
|
0 |
0 |
if (c == CHAR_NULL) |
1430
|
0 |
0 |
if (c > 127) /* Excludes all non-ASCII in either mode */ |
1435
|
0 |
0 |
if (c >= CHAR_a && c <= CHAR_z) c -= 32; |
|
0 |
0 |
if (c >= CHAR_a && c <= CHAR_z) c -= 32; |
1459
|
0 |
0 |
if ((options & PCRE_EXTRA) != 0) switch(c) |
1473
|
0 |
104 |
if (escape == ESC_N && ptr[1] == CHAR_LEFT_CURLY_BRACKET && |
1479
|
0 |
104 |
if ((options & PCRE_UCP) != 0 && escape >= ESC_D && escape <= ESC_w) |
|
0 |
0 |
if ((options & PCRE_UCP) != 0 && escape >= ESC_D && escape <= ESC_w) |
|
0 |
0 |
if ((options & PCRE_UCP) != 0 && escape >= ESC_D && escape <= ESC_w) |
1613
|
0 |
0 |
while (IS_DIGIT(*p)) |
|
0 |
0 |
while (IS_DIGIT(*p)) |
1616
|
0 |
0 |
if (min > 65535) |
1623
|
0 |
0 |
if (*p == CHAR_RIGHT_CURLY_BRACKET) max = min; else |
1625
|
0 |
0 |
if (*(++p) != CHAR_RIGHT_CURLY_BRACKET) |
1628
|
0 |
0 |
while(IS_DIGIT(*p)) |
|
0 |
0 |
while(IS_DIGIT(*p)) |
1631
|
0 |
0 |
if (max > 65535) |
1637
|
0 |
0 |
if (max < min) |
1679
|
0 |
0 |
if (!skipassert) return code; |
1680
|
0 |
0 |
do code += GET(code, 1); while (*code == OP_ALT); |
1686
|
0 |
0 |
if (!skipassert) return code; |
1766
|
0 |
0 |
d = find_fixedlength(cc + ((op == OP_CBRA)? IMM2_SIZE : 0), utf, atend, cd, |
1768
|
0 |
0 |
if (d < 0) return d; |
1770
|
0 |
0 |
do cc += GET(cc, 1); while (*cc == OP_ALT); |
1785
|
0 |
0 |
if (length < 0) length = branchlength; |
1786
|
0 |
0 |
else if (length != branchlength) return -1; |
1787
|
0 |
0 |
if (*cc != OP_ALT) return length; |
1797
|
0 |
0 |
if (!atend) return -3; |
1799
|
0 |
0 |
do ce += GET(ce, 1); while (*ce == OP_ALT); /* End subpattern */ |
1800
|
0 |
0 |
if (cc > cs && cc < ce) return -1; /* Recursion */ |
|
0 |
0 |
if (cc > cs && cc < ce) return -1; /* Recursion */ |
1804
|
0 |
0 |
for (r = recurses; r != NULL; r = r->prev) if (r->group == cs) break; |
|
0 |
0 |
for (r = recurses; r != NULL; r = r->prev) if (r->group == cs) break; |
1805
|
0 |
0 |
if (r != NULL) return -1; /* Mutual recursion */ |
1810
|
0 |
0 |
if (d < 0) return d; |
1821
|
0 |
0 |
do cc += GET(cc, 1); while (*cc == OP_ALT); |
1890
|
0 |
0 |
if (cc[1 + IMM2_SIZE] == OP_PROP || cc[1 + IMM2_SIZE] == OP_NOTPROP) |
|
0 |
0 |
if (cc[1 + IMM2_SIZE] == OP_PROP || cc[1 + IMM2_SIZE] == OP_NOTPROP) |
1956
|
0 |
0 |
if (GET2(cc,1) != GET2(cc,1+IMM2_SIZE)) return -1; |
2087
|
0 |
0 |
if (c == OP_END) return NULL; |
2093
|
0 |
0 |
if (c == OP_XCLASS) code += GET(code, 1); |
2097
|
0 |
0 |
else if (c == OP_REVERSE) |
2099
|
0 |
0 |
if (number < 0) return (pcre_uchar *)code; |
2105
|
0 |
0 |
else if (c == OP_CBRA || c == OP_SCBRA || |
|
0 |
0 |
else if (c == OP_CBRA || c == OP_SCBRA || |
|
0 |
0 |
else if (c == OP_CBRA || c == OP_SCBRA || |
2106
|
0 |
0 |
c == OP_CBRAPOS || c == OP_SCBRAPOS) |
2109
|
0 |
0 |
if (n == number) return (pcre_uchar *)code; |
2131
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
2138
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
2249
|
6 |
24 |
if (c == OP_END) return NULL; |
2250
|
0 |
24 |
if (c == OP_RECURSE) return code; |
2256
|
0 |
24 |
if (c == OP_XCLASS) code += GET(code, 1); |
2276
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
2283
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
2403
|
44 |
0 |
for (code = first_significant_code(code + PRIV(OP_lengths)[*code], TRUE); |
2414
|
0 |
44 |
if (c == OP_ASSERT) |
2416
|
0 |
0 |
do code += GET(code, 1); while (*code == OP_ALT); |
2428
|
0 |
44 |
if (c == OP_RECURSE) |
2438
|
0 |
0 |
if (cd->start_workspace != NULL) |
2441
|
0 |
0 |
for (tcode = cd->start_workspace; tcode < cd->hwm; tcode += LINK_SIZE) |
2442
|
0 |
0 |
if ((int)GET(tcode, 0) == (int)(code + 1 - cd->start_code)) return TRUE; |
2443
|
0 |
0 |
if (GET(scode, 1) == 0) return TRUE; /* Unclosed */ |
2451
|
0 |
0 |
do endgroup += GET(endgroup, 1); while (*endgroup == OP_ALT); |
2452
|
0 |
0 |
if (code >= scode && code <= endgroup) continue; /* Simple recursion */ |
|
0 |
0 |
if (code >= scode && code <= endgroup) continue; /* Simple recursion */ |
2456
|
0 |
0 |
for (r = recurses; r != NULL; r = r->prev) |
2457
|
0 |
0 |
if (r->group == scode) break; |
2458
|
0 |
0 |
if (r != NULL) continue; /* Mutual recursion */ |
2470
|
0 |
0 |
if (could_be_empty_branch(scode, endcode, utf, cd, &this_recurse)) |
2477
|
0 |
0 |
while (*scode == OP_ALT); |
2479
|
0 |
0 |
if (!empty_branch) return FALSE; /* All branches are non-empty */ |
2485
|
44 |
0 |
if (c == OP_BRAZERO || c == OP_BRAMINZERO || c == OP_SKIPZERO || |
|
44 |
0 |
if (c == OP_BRAZERO || c == OP_BRAMINZERO || c == OP_SKIPZERO || |
|
44 |
0 |
if (c == OP_BRAZERO || c == OP_BRAMINZERO || c == OP_SKIPZERO || |
|
0 |
44 |
if (c == OP_BRAZERO || c == OP_BRAMINZERO || c == OP_SKIPZERO || |
2489
|
0 |
0 |
do code += GET(code, 1); while (*code == OP_ALT); |
2497
|
44 |
0 |
if (c == OP_SBRA || c == OP_SBRAPOS || |
|
44 |
0 |
if (c == OP_SBRA || c == OP_SBRAPOS || |
|
44 |
0 |
if (c == OP_SBRA || c == OP_SBRAPOS || |
2498
|
0 |
44 |
c == OP_SCBRA || c == OP_SCBRAPOS) |
2500
|
0 |
0 |
do code += GET(code, 1); while (*code == OP_ALT); |
2507
|
44 |
0 |
if (c == OP_BRA || c == OP_BRAPOS || |
|
44 |
0 |
if (c == OP_BRA || c == OP_BRAPOS || |
|
44 |
0 |
if (c == OP_BRA || c == OP_BRAPOS || |
2508
|
44 |
0 |
c == OP_CBRA || c == OP_CBRAPOS || |
|
44 |
0 |
c == OP_CBRA || c == OP_CBRAPOS || |
2509
|
44 |
0 |
c == OP_ONCE || c == OP_ONCE_NC || |
|
44 |
0 |
c == OP_ONCE || c == OP_ONCE_NC || |
2510
|
0 |
44 |
c == OP_COND || c == OP_SCOND) |
2513
|
0 |
0 |
if (GET(code, 1) == 0) return TRUE; /* Hit unclosed bracket */ |
2519
|
0 |
0 |
if (c == OP_COND && code[GET(code, 1)] != OP_ALT) |
|
0 |
0 |
if (c == OP_COND && code[GET(code, 1)] != OP_ALT) |
2526
|
0 |
0 |
if (!empty_branch && could_be_empty_branch(code, endcode, utf, cd, |
|
0 |
0 |
if (!empty_branch && could_be_empty_branch(code, endcode, utf, cd, |
2530
|
0 |
0 |
while (*code == OP_ALT); |
2531
|
0 |
0 |
if (!empty_branch) return FALSE; /* All branches are non-empty */ |
2581
|
0 |
0 |
if (GET2(ccode, 1) > 0) return FALSE; /* Minimum > 0 */ |
2650
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
|
0 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
2658
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
2775
|
0 |
0 |
while (bcptr != NULL && bcptr->current_branch >= code) |
|
0 |
0 |
while (bcptr != NULL && bcptr->current_branch >= code) |
2777
|
0 |
0 |
if (!could_be_empty_branch(bcptr->current_branch, endcode, utf, cd, NULL)) |
2800
|
52 |
0 |
return (c > OP_TYPEPOSUPTO)? c : |
|
0 |
52 |
return (c > OP_TYPEPOSUPTO)? c : |
|
0 |
0 |
return (c > OP_TYPEPOSUPTO)? c : |
|
0 |
0 |
return (c > OP_TYPEPOSUPTO)? c : |
|
0 |
0 |
return (c > OP_TYPEPOSUPTO)? c : |
2935
|
26 |
23 |
if (c >= OP_STAR && c <= OP_TYPEPOSUPTO) |
|
26 |
0 |
if (c >= OP_STAR && c <= OP_TYPEPOSUPTO) |
2940
|
26 |
0 |
if (c == OP_UPTO || c == OP_MINUPTO || c == OP_EXACT || c == OP_POSUPTO) |
|
26 |
0 |
if (c == OP_UPTO || c == OP_MINUPTO || c == OP_EXACT || c == OP_POSUPTO) |
|
26 |
0 |
if (c == OP_UPTO || c == OP_MINUPTO || c == OP_EXACT || c == OP_POSUPTO) |
|
0 |
26 |
if (c == OP_UPTO || c == OP_MINUPTO || c == OP_EXACT || c == OP_POSUPTO) |
2943
|
21 |
5 |
list[1] = (c != OP_PLUS && c != OP_MINPLUS && c != OP_EXACT && c != OP_POSPLUS); |
|
21 |
0 |
list[1] = (c != OP_PLUS && c != OP_MINPLUS && c != OP_EXACT && c != OP_POSPLUS); |
|
21 |
0 |
list[1] = (c != OP_PLUS && c != OP_MINPLUS && c != OP_EXACT && c != OP_POSPLUS); |
|
21 |
0 |
list[1] = (c != OP_PLUS && c != OP_MINPLUS && c != OP_EXACT && c != OP_POSPLUS); |
3002
|
0 |
0 |
list[0] = (c == OP_CHARI) ? OP_CHAR : OP_NOT; |
3019
|
0 |
0 |
if (chr == list[3]) |
3139
|
0 |
26 |
if (*rec_limit == 0) return FALSE; |
3156
|
0 |
29 |
if (c == OP_CALLOUT) |
3162
|
0 |
29 |
if (c == OP_ALT) |
3164
|
0 |
0 |
do code += GET(code, 1); while (*code == OP_ALT); |
3183
|
0 |
3 |
if (base_list[1] == 0) return FALSE; |
3185
|
0 |
3 |
switch(*(code - GET(code, 1))) |
3210
|
0 |
0 |
while (*next_code == OP_ALT) |
3212
|
0 |
0 |
if (!compare_opcodes(code, utf, cd, base_list, base_end, rec_limit)) |
3225
|
0 |
0 |
if (*next_code != OP_BRA && *next_code != OP_CBRA |
|
0 |
0 |
if (*next_code != OP_BRA && *next_code != OP_CBRA |
3226
|
0 |
0 |
&& *next_code != OP_ONCE && *next_code != OP_ONCE_NC) return FALSE; |
|
0 |
0 |
&& *next_code != OP_ONCE && *next_code != OP_ONCE_NC) return FALSE; |
3228
|
0 |
0 |
do next_code += GET(next_code, 1); while (*next_code == OP_ALT); |
3233
|
0 |
0 |
if (!compare_opcodes(next_code, utf, cd, base_list, base_end, rec_limit)) |
3246
|
0 |
23 |
if (code == NULL) return FALSE; /* Unsupported */ |
3251
|
0 |
23 |
if (base_list[0] == OP_CHAR) |
3256
|
23 |
0 |
else if (list[0] == OP_CHAR) |
3264
|
0 |
0 |
else if (base_list[0] == OP_CLASS || list[0] == OP_CLASS |
|
0 |
0 |
else if (base_list[0] == OP_CLASS || list[0] == OP_CLASS |
3267
|
0 |
0 |
|| (!utf && (base_list[0] == OP_NCLASS || list[0] == OP_NCLASS)) |
|
0 |
0 |
|| (!utf && (base_list[0] == OP_NCLASS || list[0] == OP_NCLASS)) |
|
0 |
0 |
|| (!utf && (base_list[0] == OP_NCLASS || list[0] == OP_NCLASS)) |
3272
|
0 |
0 |
if (base_list[0] == OP_CLASS || (!utf && base_list[0] == OP_NCLASS)) |
|
0 |
0 |
if (base_list[0] == OP_CLASS || (!utf && base_list[0] == OP_NCLASS)) |
|
0 |
0 |
if (base_list[0] == OP_CLASS || (!utf && base_list[0] == OP_NCLASS)) |
3292
|
0 |
0 |
((list_ptr == list ? code : base_end) - list_ptr[2]); |
3338
|
0 |
0 |
if (invert_bits) |
3342
|
0 |
0 |
if ((*set1++ & ~(*set2++)) != 0) return FALSE; |
3344
|
0 |
0 |
while (set1 < set_end); |
3350
|
0 |
0 |
if ((*set1++ & *set2++) != 0) return FALSE; |
3352
|
0 |
0 |
while (set1 < set_end); |
3355
|
0 |
0 |
if (list[1] == 0) return TRUE; |
3475
|
0 |
0 |
accepted = leftop >= FIRST_AUTOTAB_OP && leftop <= LAST_AUTOTAB_LEFT_OP && |
|
0 |
0 |
accepted = leftop >= FIRST_AUTOTAB_OP && leftop <= LAST_AUTOTAB_LEFT_OP && |
3476
|
0 |
0 |
rightop >= FIRST_AUTOTAB_OP && rightop <= LAST_AUTOTAB_RIGHT_OP && |
|
0 |
0 |
rightop >= FIRST_AUTOTAB_OP && rightop <= LAST_AUTOTAB_RIGHT_OP && |
|
0 |
0 |
rightop >= FIRST_AUTOTAB_OP && rightop <= LAST_AUTOTAB_RIGHT_OP && |
3479
|
0 |
0 |
if (!accepted) return FALSE; |
3481
|
0 |
0 |
if (list[1] == 0) return TRUE; |
3499
|
0 |
0 |
if (chr == *ochr_ptr) return FALSE; |
3502
|
0 |
0 |
while(*ochr_ptr != NOTACHAR); |
3509
|
0 |
0 |
if (chr == *ochr_ptr) |
3513
|
0 |
0 |
while(*ochr_ptr != NOTACHAR); |
3514
|
0 |
0 |
if (*ochr_ptr == NOTACHAR) return FALSE; /* Not found */ |
3521
|
0 |
0 |
if (chr < 256 && (cd->ctypes[chr] & ctype_digit) != 0) return FALSE; |
|
0 |
0 |
if (chr < 256 && (cd->ctypes[chr] & ctype_digit) != 0) return FALSE; |
3525
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_digit) == 0) return FALSE; |
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_digit) == 0) return FALSE; |
3529
|
0 |
0 |
if (chr < 256 && (cd->ctypes[chr] & ctype_space) != 0) return FALSE; |
|
0 |
0 |
if (chr < 256 && (cd->ctypes[chr] & ctype_space) != 0) return FALSE; |
3533
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_space) == 0) return FALSE; |
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_space) == 0) return FALSE; |
3537
|
0 |
0 |
if (chr < 255 && (cd->ctypes[chr] & ctype_word) != 0) return FALSE; |
|
0 |
0 |
if (chr < 255 && (cd->ctypes[chr] & ctype_word) != 0) return FALSE; |
3541
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_word) == 0) return FALSE; |
|
0 |
0 |
if (chr > 255 || (cd->ctypes[chr] & ctype_word) == 0) return FALSE; |
3545
|
0 |
0 |
switch(chr) |
3553
|
0 |
0 |
switch(chr) |
3562
|
0 |
0 |
switch(chr) |
3570
|
0 |
0 |
switch(chr) |
3579
|
0 |
0 |
switch (chr) |
3607
|
0 |
0 |
if (chr > 255) return FALSE; |
3611
|
0 |
0 |
if (chr > 255) break; |
3613
|
0 |
0 |
((list_ptr == list ? code : base_end) - list_ptr[2]); |
3614
|
0 |
0 |
if ((class_bitset[chr >> 3] & (1 << (chr & 7))) != 0) return FALSE; |
3630
|
0 |
0 |
while(*chr_ptr != NOTACHAR); |
3634
|
0 |
0 |
if (list[1] == 0) return TRUE; |
3678
|
0 |
533 |
if (c >= OP_TABLE_LENGTH) return; |
3680
|
97 |
436 |
if (c >= OP_STAR && c <= OP_TYPEPOSUPTO) |
|
26 |
71 |
if (c >= OP_STAR && c <= OP_TYPEPOSUPTO) |
3684
|
26 |
0 |
get_chr_property_list(code, utf, cd->fcc, list) : NULL; |
3685
|
5 |
21 |
list[1] = c == OP_STAR || c == OP_PLUS || c == OP_QUERY || c == OP_UPTO; |
|
0 |
5 |
list[1] = c == OP_STAR || c == OP_PLUS || c == OP_QUERY || c == OP_UPTO; |
|
0 |
0 |
list[1] = c == OP_STAR || c == OP_PLUS || c == OP_QUERY || c == OP_UPTO; |
|
0 |
0 |
list[1] = c == OP_STAR || c == OP_PLUS || c == OP_QUERY || c == OP_UPTO; |
3688
|
26 |
0 |
if (end != NULL && compare_opcodes(end, utf, cd, list, end, &rec_limit)) |
|
3 |
23 |
if (end != NULL && compare_opcodes(end, utf, cd, list, end, &rec_limit)) |
3727
|
507 |
0 |
else if (c == OP_CLASS || c == OP_NCLASS || c == OP_XCLASS) |
|
507 |
0 |
else if (c == OP_CLASS || c == OP_NCLASS || c == OP_XCLASS) |
|
0 |
507 |
else if (c == OP_CLASS || c == OP_NCLASS || c == OP_XCLASS) |
3737
|
0 |
0 |
if (c >= OP_CRSTAR && c <= OP_CRMINRANGE) |
|
0 |
0 |
if (c >= OP_CRSTAR && c <= OP_CRMINRANGE) |
3745
|
0 |
0 |
if (compare_opcodes(end, utf, cd, list, end, &rec_limit)) |
3788
|
26 |
0 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
|
0 |
26 |
if (code[1] == OP_PROP || code[1] == OP_NOTPROP) code += 2; |
3795
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
|
0 |
0 |
if (code[1 + IMM2_SIZE] == OP_PROP || code[1 + IMM2_SIZE] == OP_NOTPROP) |
3938
|
0 |
0 |
for (++ptr; *ptr != CHAR_NULL; ptr++) |
3940
|
0 |
0 |
if (*ptr == CHAR_BACKSLASH && |
|
0 |
0 |
if (*ptr == CHAR_BACKSLASH && |
3941
|
0 |
0 |
(ptr[1] == CHAR_RIGHT_SQUARE_BRACKET || |
3944
|
0 |
0 |
else if ((*ptr == CHAR_LEFT_SQUARE_BRACKET && ptr[1] == terminator) || |
|
0 |
0 |
else if ((*ptr == CHAR_LEFT_SQUARE_BRACKET && ptr[1] == terminator) || |
|
0 |
0 |
else if ((*ptr == CHAR_LEFT_SQUARE_BRACKET && ptr[1] == terminator) || |
3946
|
0 |
0 |
else if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) |
|
0 |
0 |
else if (*ptr == terminator && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) |
3977
|
0 |
0 |
while (posix_name_lengths[yield] != 0) |
3979
|
0 |
0 |
if (len == posix_name_lengths[yield] && |
|
0 |
0 |
if (len == posix_name_lengths[yield] && |
4028
|
0 |
6 |
while ((ptr = (pcre_uchar *)find_recurse(ptr, utf)) != NULL) |
4030
|
0 |
0 |
for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; |
4034
|
0 |
0 |
if (cd->start_code + offset == ptr + 1) break; |
4040
|
0 |
0 |
if (hc >= cd->hwm) |
4043
|
0 |
0 |
if (cd->start_code + offset >= group) PUT(ptr, 1, offset + adjust); |
4051
|
0 |
6 |
for (hc = (pcre_uchar *)cd->start_workspace + save_hwm_offset; hc < cd->hwm; |
4219
|
0 |
0 |
if ((options & PCRE_CASELESS) != 0) |
4259
|
0 |
0 |
for (c = start; c <= classbits_end; c++) |
4274
|
0 |
0 |
if (end > 0xff) end = 0xff; |
4286
|
0 |
0 |
for (c = start; c <= classbits_end; c++) |
4375
|
0 |
0 |
while (p[0] < NOTACHAR) |
4378
|
0 |
0 |
if (p[0] != except) |
4380
|
0 |
0 |
while(p[n+1] == p[0] + n + 1) n++; |
4414
|
0 |
0 |
if (p[0] > 0) |
4416
|
0 |
0 |
while (p[0] < NOTACHAR) |
4418
|
0 |
0 |
while (p[1] == p[0] + 1) p++; |
4419
|
0 |
0 |
n8 += add_to_class(classbits, uchardptr, options, cd, p[0] + 1, |
4420
|
0 |
0 |
(p[1] == NOTACHAR) ? (utf ? 0x10ffffu : 0xffffffffu) : p[1] - 1); |
4586
|
62 |
932 |
if (c == CHAR_NULL && nestptr != NULL) |
|
0 |
62 |
if (c == CHAR_NULL && nestptr != NULL) |
4596
|
497 |
497 |
if (lengthptr != NULL) |
4601
|
0 |
497 |
if (code > cd->start_workspace + cd->workspace_size - |
4605
|
0 |
0 |
ERR52 : ERR87; |
4615
|
0 |
497 |
if (code < last_code) code = last_code; |
4619
|
0 |
497 |
if (OFLOW_MAX - *lengthptr < code - last_code) |
4633
|
418 |
79 |
if (previous != NULL) |
4635
|
363 |
55 |
if (previous > orig_code) |
4653
|
0 |
497 |
else if (cd->hwm > cd->start_workspace + cd->workspace_size) |
4662
|
932 |
62 |
if (c != CHAR_NULL) |
4664
|
104 |
828 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E) |
|
0 |
104 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E) |
4670
|
0 |
932 |
else if (inescq) |
4672
|
0 |
0 |
if (previous_callout != NULL) |
4674
|
0 |
0 |
if (lengthptr == NULL) /* Don't attempt in pre-compile phase */ |
4678
|
0 |
0 |
if ((options & PCRE_AUTO_CALLOUT) != 0) |
4690
|
104 |
828 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_Q) |
|
0 |
104 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_Q) |
4700
|
0 |
994 |
if ((options & PCRE_EXTENDED) != 0) |
4703
|
0 |
0 |
while (MAX_255(c) && (cd->ctypes[c] & ctype_space) != 0) c = *(++ptr); |
4704
|
0 |
0 |
if (c == CHAR_NUMBER_SIGN) |
4707
|
0 |
0 |
while (*ptr != CHAR_NULL) |
4709
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(ptr)) /* For non-fixed-length newline cases, */ |
4724
|
0 |
0 |
if (ptr > wscptr) goto REDO_LOOP; |
4731
|
6 |
988 |
if (c == CHAR_LEFT_PARENTHESIS && ptr[1] == CHAR_QUESTION_MARK && |
|
0 |
6 |
if (c == CHAR_LEFT_PARENTHESIS && ptr[1] == CHAR_QUESTION_MARK && |
|
0 |
0 |
if (c == CHAR_LEFT_PARENTHESIS && ptr[1] == CHAR_QUESTION_MARK && |
4735
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
4736
|
0 |
0 |
if (*ptr == CHAR_NULL) |
4747
|
952 |
42 |
c == CHAR_ASTERISK || c == CHAR_PLUS || c == CHAR_QUESTION_MARK || |
|
942 |
10 |
c == CHAR_ASTERISK || c == CHAR_PLUS || c == CHAR_QUESTION_MARK || |
|
936 |
6 |
c == CHAR_ASTERISK || c == CHAR_PLUS || c == CHAR_QUESTION_MARK || |
|
0 |
936 |
c == CHAR_ASTERISK || c == CHAR_PLUS || c == CHAR_QUESTION_MARK || |
4748
|
0 |
0 |
(c == CHAR_LEFT_CURLY_BRACKET && is_counted_repeat(ptr+1)); |
4753
|
936 |
58 |
if (!is_quantifier && previous_callout != NULL && nestptr == NULL && |
|
0 |
936 |
if (!is_quantifier && previous_callout != NULL && nestptr == NULL && |
|
0 |
0 |
if (!is_quantifier && previous_callout != NULL && nestptr == NULL && |
|
0 |
0 |
if (!is_quantifier && previous_callout != NULL && nestptr == NULL && |
4756
|
0 |
0 |
if (lengthptr == NULL) /* Don't attempt in pre-compile phase */ |
4764
|
0 |
994 |
if ((options & PCRE_AUTO_CALLOUT) != 0 && !is_quantifier && nestptr == NULL) |
|
0 |
0 |
if ((options & PCRE_AUTO_CALLOUT) != 0 && !is_quantifier && nestptr == NULL) |
|
0 |
0 |
if ((options & PCRE_AUTO_CALLOUT) != 0 && !is_quantifier && nestptr == NULL) |
4784
|
34 |
34 |
if (lengthptr != NULL) |
4786
|
0 |
34 |
if (OFLOW_MAX - *lengthptr < code - last_code) |
4803
|
0 |
16 |
if ((options & PCRE_MULTILINE) != 0) |
4805
|
0 |
0 |
if (firstcharflags == REQ_UNSET) |
4814
|
0 |
16 |
*code++ = ((options & PCRE_MULTILINE) != 0)? OP_DOLLM : OP_DOLL; |
4821
|
0 |
52 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
4828
|
0 |
52 |
*code++ = ((options & PCRE_DOTALL) != 0)? OP_ALLANY: OP_ANY; |
4848
|
0 |
0 |
if ((cd->external_options & PCRE_JAVASCRIPT_COMPAT) != 0) |
4862
|
0 |
0 |
if (STRNCMP_UC_C8(ptr+1, STRING_WEIRD_STARTWORD, 6) == 0) |
4869
|
0 |
0 |
if (STRNCMP_UC_C8(ptr+1, STRING_WEIRD_ENDWORD, 6) == 0) |
4884
|
0 |
0 |
if ((ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
|
0 |
0 |
if ((ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
|
0 |
0 |
if ((ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
4885
|
0 |
0 |
ptr[1] == CHAR_EQUALS_SIGN) && |
4888
|
0 |
0 |
*errorcodeptr = (ptr[1] == CHAR_COLON)? ERR13 : ERR31; |
4900
|
0 |
0 |
if (c == CHAR_BACKSLASH) |
4902
|
0 |
0 |
if (ptr[1] == CHAR_E) |
4904
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr + 1, STR_Q STR_BACKSLASH STR_E, 3) == 0) |
4909
|
0 |
0 |
else if (!negate_class && c == CHAR_CIRCUMFLEX_ACCENT) |
|
0 |
0 |
else if (!negate_class && c == CHAR_CIRCUMFLEX_ACCENT) |
4919
|
0 |
0 |
if (c == CHAR_RIGHT_SQUARE_BRACKET && |
|
0 |
0 |
if (c == CHAR_RIGHT_SQUARE_BRACKET && |
4922
|
0 |
0 |
*code++ = negate_class? OP_ALLANY : OP_FAIL; |
4923
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
4967
|
0 |
0 |
if (c != CHAR_NULL) do |
4996
|
0 |
0 |
if (inescq) |
4998
|
0 |
0 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E) /* If we are at \E */ |
|
0 |
0 |
if (c == CHAR_BACKSLASH && ptr[1] == CHAR_E) /* If we are at \E */ |
5013
|
0 |
0 |
if (c == CHAR_LEFT_SQUARE_BRACKET && |
|
0 |
0 |
if (c == CHAR_LEFT_SQUARE_BRACKET && |
5014
|
0 |
0 |
(ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
|
0 |
0 |
(ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
5015
|
0 |
0 |
ptr[1] == CHAR_EQUALS_SIGN) && check_posix_syntax(ptr, &tempptr)) |
5022
|
0 |
0 |
if (ptr[1] != CHAR_COLON) |
5029
|
0 |
0 |
if (*ptr == CHAR_CIRCUMFLEX_ACCENT) |
5037
|
0 |
0 |
if (posix_class < 0) |
5047
|
0 |
0 |
if ((options & PCRE_CASELESS) != 0 && posix_class <= 2) |
|
0 |
0 |
if ((options & PCRE_CASELESS) != 0 && posix_class <= 2) |
5135
|
0 |
0 |
if (taboffset >= 0) |
5137
|
0 |
0 |
if (tabopt >= 0) |
5138
|
0 |
0 |
for (c = 0; c < 32; c++) pbits[c] |= cbits[c + taboffset]; |
5140
|
0 |
0 |
for (c = 0; c < 32; c++) pbits[c] &= ~cbits[c + taboffset]; |
5146
|
0 |
0 |
if (tabopt < 0) tabopt = -tabopt; |
5147
|
0 |
0 |
if (tabopt == 1) pbits[1] &= ~0x3c; |
5148
|
0 |
0 |
else if (tabopt == 2) pbits[11] &= 0x7f; |
5153
|
0 |
0 |
if (local_negate) |
5154
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= ~pbits[c]; |
5156
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= pbits[c]; |
5175
|
0 |
0 |
if (c == CHAR_BACKSLASH) |
5179
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
5180
|
0 |
0 |
if (escape == 0) c = ec; |
5181
|
0 |
0 |
else if (escape == ESC_b) c = CHAR_BS; /* \b is backspace in a class */ |
5182
|
0 |
0 |
else if (escape == ESC_N) /* \N is not supported in a class */ |
5187
|
0 |
0 |
else if (escape == ESC_Q) /* Handle start of quoted string */ |
5189
|
0 |
0 |
if (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E) |
|
0 |
0 |
if (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E) |
5196
|
0 |
0 |
else if (escape == ESC_E) continue; /* Ignore orphan \E */ |
5221
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_digit]; |
5226
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_digit]; |
5230
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_word]; |
5235
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_word]; |
5246
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= cbits[c+cbit_space]; |
5251
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+cbit_space]; |
5301
|
0 |
0 |
if ((options & PCRE_EXTRA) != 0) |
5326
|
0 |
0 |
while (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E) |
|
0 |
0 |
while (ptr[1] == CHAR_BACKSLASH && ptr[2] == CHAR_E) |
5335
|
0 |
0 |
if (c == CHAR_CR || c == CHAR_NL) cd->external_flags |= PCRE_HASCRORLF; |
|
0 |
0 |
if (c == CHAR_CR || c == CHAR_NL) cd->external_flags |= PCRE_HASCRORLF; |
5339
|
0 |
0 |
if (!inescq && ptr[1] == CHAR_MINUS) |
|
0 |
0 |
if (!inescq && ptr[1] == CHAR_MINUS) |
5343
|
0 |
0 |
while (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_E) ptr += 2; |
|
0 |
0 |
while (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_E) ptr += 2; |
5348
|
0 |
0 |
while (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_Q) |
|
0 |
0 |
while (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_Q) |
5351
|
0 |
0 |
if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_E) |
|
0 |
0 |
if (*ptr == CHAR_BACKSLASH && ptr[1] == CHAR_E) |
5360
|
0 |
0 |
if (*ptr == CHAR_NULL || (!inescq && *ptr == CHAR_RIGHT_SQUARE_BRACKET)) |
|
0 |
0 |
if (*ptr == CHAR_NULL || (!inescq && *ptr == CHAR_RIGHT_SQUARE_BRACKET)) |
|
0 |
0 |
if (*ptr == CHAR_NULL || (!inescq && *ptr == CHAR_RIGHT_SQUARE_BRACKET)) |
5383
|
0 |
0 |
if (!inescq) |
5385
|
0 |
0 |
if (d == CHAR_BACKSLASH) |
5389
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
5394
|
0 |
0 |
if (descape != 0) |
5396
|
0 |
0 |
if (descape == ESC_b) d = CHAR_BS; else |
5406
|
0 |
0 |
else if (d == CHAR_LEFT_SQUARE_BRACKET && |
|
0 |
0 |
else if (d == CHAR_LEFT_SQUARE_BRACKET && |
5407
|
0 |
0 |
(ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
|
0 |
0 |
(ptr[1] == CHAR_COLON || ptr[1] == CHAR_DOT || |
5408
|
0 |
0 |
ptr[1] == CHAR_EQUALS_SIGN) && |
5419
|
0 |
0 |
if (d < c) |
5424
|
0 |
0 |
if (d == c) goto CLASS_SINGLE_CHARACTER; /* A few lines below */ |
5434
|
0 |
0 |
if (d == CHAR_CR || d == CHAR_NL) cd->external_flags |= PCRE_HASCRORLF; |
|
0 |
0 |
if (d == CHAR_CR || d == CHAR_NL) cd->external_flags |= PCRE_HASCRORLF; |
5449
|
0 |
0 |
if (class_one_char < 2) class_one_char++; |
5460
|
0 |
0 |
if (!inescq && |
|
0 |
0 |
if (!inescq && |
5464
|
0 |
0 |
class_one_char == 1 && ptr[1] == CHAR_RIGHT_SQUARE_BRACKET) |
5470
|
0 |
0 |
if (negate_class) |
5475
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
5496
|
0 |
0 |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_NOTI: OP_NOT; |
5536
|
0 |
0 |
while (((c = *(++ptr)) != CHAR_NULL || |
5537
|
0 |
0 |
(nestptr != NULL && |
5538
|
0 |
0 |
(ptr = nestptr, nestptr = NULL, c = *(++ptr)) != CHAR_NULL)) && |
5539
|
0 |
0 |
(c != CHAR_RIGHT_SQUARE_BRACKET || inescq)); |
|
0 |
0 |
(c != CHAR_RIGHT_SQUARE_BRACKET || inescq)); |
5543
|
0 |
0 |
if (c == CHAR_NULL) |
5565
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
5655
|
0 |
0 |
*code++ = (negate_class == should_flip_negation) ? OP_CLASS : OP_NCLASS; |
5656
|
0 |
0 |
if (lengthptr == NULL) /* Save time in the pre-compile phase */ |
5658
|
0 |
0 |
if (negate_class) |
5659
|
0 |
0 |
for (c = 0; c < 32; c++) classbits[c] = ~classbits[c]; |
5673
|
0 |
0 |
if (!is_quantifier) goto NORMAL_CHAR; |
5675
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
5693
|
0 |
58 |
if (previous == NULL) |
5699
|
48 |
10 |
if (repeat_min == 0) |
5709
|
0 |
58 |
reqvary = (repeat_min == repeat_max)? 0 : REQ_VARY; |
5723
|
0 |
58 |
if ((options & PCRE_EXTENDED) != 0) |
5728
|
0 |
0 |
while (MAX_255(*p) && (cd->ctypes[*p] & ctype_space) != 0) p++; |
5729
|
0 |
0 |
if (*p != CHAR_NUMBER_SIGN) break; |
5731
|
0 |
0 |
while (*p != CHAR_NULL) |
5733
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
|
0 |
0 |
if (IS_NEWLINE(p)) /* For non-fixed-length newline cases, */ |
5750
|
0 |
58 |
if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK && |
|
0 |
0 |
if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK && |
|
0 |
0 |
if (ptr[1] == CHAR_LEFT_PARENTHESIS && ptr[2] == CHAR_QUESTION_MARK && |
5754
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
5755
|
0 |
0 |
if (*ptr == CHAR_NULL) |
5768
|
0 |
58 |
if (ptr[1] == CHAR_PLUS) |
5774
|
0 |
58 |
else if (ptr[1] == CHAR_QUESTION_MARK) |
5787
|
0 |
58 |
if (*previous == OP_RECURSE) |
5800
|
0 |
0 |
if (lengthptr == NULL && cd->hwm >= cd->start_workspace + LINK_SIZE) |
|
0 |
0 |
if (lengthptr == NULL && cd->hwm >= cd->start_workspace + LINK_SIZE) |
5803
|
0 |
0 |
if (offset == previous + 1 - cd->start_code) |
5816
|
58 |
0 |
if (*previous == OP_CHAR || *previous == OP_CHARI |
|
58 |
0 |
if (*previous == OP_CHAR || *previous == OP_CHARI |
5817
|
58 |
0 |
|| *previous == OP_NOT || *previous == OP_NOTI) |
|
0 |
58 |
|| *previous == OP_NOT || *previous == OP_NOTI) |
5849
|
0 |
0 |
if (*previous <= OP_CHARI && repeat_min > 1) |
|
0 |
0 |
if (*previous <= OP_CHARI && repeat_min > 1) |
5866
|
52 |
6 |
else if (*previous < OP_EODN) |
5874
|
52 |
0 |
if (*previous == OP_PROP || *previous == OP_NOTPROP) |
|
0 |
52 |
if (*previous == OP_PROP || *previous == OP_NOTPROP) |
5887
|
0 |
52 |
if (repeat_max == 0) goto END_REPEAT; |
5896
|
42 |
10 |
if (repeat_min == 0) |
5898
|
42 |
0 |
if (repeat_max == -1) *code++ = OP_STAR + repeat_type; |
5899
|
0 |
0 |
else if (repeat_max == 1) *code++ = OP_QUERY + repeat_type; |
5912
|
10 |
0 |
else if (repeat_min == 1) |
5914
|
10 |
0 |
if (repeat_max == -1) |
5919
|
0 |
0 |
if (repeat_max == 1) goto END_REPEAT; |
5939
|
0 |
0 |
if (repeat_max < 0) |
5951
|
0 |
0 |
if (prop_type >= 0) |
5964
|
0 |
0 |
else if (repeat_max != repeat_min) |
5975
|
0 |
0 |
if (prop_type >= 0) |
5982
|
0 |
0 |
if (repeat_max == 1) |
6021
|
6 |
0 |
else if (*previous == OP_CLASS || *previous == OP_NCLASS || |
|
6 |
0 |
else if (*previous == OP_CLASS || *previous == OP_NCLASS || |
|
6 |
0 |
else if (*previous == OP_CLASS || *previous == OP_NCLASS || |
6025
|
6 |
0 |
*previous == OP_REF || *previous == OP_REFI || |
|
6 |
0 |
*previous == OP_REF || *previous == OP_REFI || |
6026
|
0 |
6 |
*previous == OP_DNREF || *previous == OP_DNREFI) |
6028
|
0 |
0 |
if (repeat_max == 0) |
6034
|
0 |
0 |
if (repeat_min == 0 && repeat_max == -1) |
|
0 |
0 |
if (repeat_min == 0 && repeat_max == -1) |
6036
|
0 |
0 |
else if (repeat_min == 1 && repeat_max == -1) |
|
0 |
0 |
else if (repeat_min == 1 && repeat_max == -1) |
6038
|
0 |
0 |
else if (repeat_min == 0 && repeat_max == 1) |
|
0 |
0 |
else if (repeat_min == 0 && repeat_max == 1) |
6044
|
0 |
0 |
if (repeat_max == -1) repeat_max = 0; /* 2-byte encoding for max */ |
6058
|
6 |
0 |
else if (*previous >= OP_ASSERT && *previous <= OP_COND) |
|
6 |
0 |
else if (*previous >= OP_ASSERT && *previous <= OP_COND) |
6069
|
0 |
6 |
if (*previous == OP_COND && previous[LINK_SIZE+1] == OP_DEF) |
|
0 |
0 |
if (*previous == OP_COND && previous[LINK_SIZE+1] == OP_DEF) |
6077
|
0 |
6 |
if (*previous < OP_ONCE) /* Assertion */ |
6079
|
0 |
0 |
if (repeat_min > 0) goto END_REPEAT; |
6080
|
0 |
0 |
if (repeat_max < 0 || repeat_max > 1) repeat_max = 1; |
|
0 |
0 |
if (repeat_max < 0 || repeat_max > 1) repeat_max = 1; |
6090
|
6 |
0 |
if (repeat_min == 0) |
6114
|
6 |
0 |
if (repeat_max <= 1) /* Covers 0, 1, and unlimited */ |
6120
|
0 |
6 |
if (repeat_max == 0) |
6150
|
0 |
0 |
offset = (bralink == NULL)? 0 : (int)(previous - bralink); |
6167
|
0 |
0 |
if (repeat_min > 1) |
6174
|
0 |
0 |
if (lengthptr != NULL) |
6177
|
0 |
0 |
if ((INT64_OR_DOUBLE)(repeat_min - 1)* |
6179
|
0 |
0 |
(INT64_OR_DOUBLE)INT_MAX || |
6195
|
0 |
0 |
if (groupsetfirstchar && reqcharflags < 0) |
|
0 |
0 |
if (groupsetfirstchar && reqcharflags < 0) |
6201
|
0 |
0 |
for (i = 1; i < repeat_min; i++) |
6207
|
0 |
0 |
while (cd->hwm > cd->start_workspace + cd->workspace_size - |
6212
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
6215
|
0 |
0 |
for (hc = (pcre_uchar *)cd->start_workspace + base_hwm_offset; |
6228
|
0 |
0 |
if (repeat_max > 0) repeat_max -= repeat_min; |
6238
|
6 |
0 |
if (repeat_max >= 0) |
6247
|
3 |
3 |
if (lengthptr != NULL && repeat_max > 0) |
|
0 |
3 |
if (lengthptr != NULL && repeat_max > 0) |
6251
|
0 |
0 |
if ((INT64_OR_DOUBLE)repeat_max * |
6253
|
0 |
0 |
> (INT64_OR_DOUBLE)INT_MAX || |
6264
|
0 |
6 |
else for (i = repeat_max - 1; i >= 0; i--) |
6274
|
0 |
0 |
if (i != 0) |
6278
|
0 |
0 |
offset = (bralink == NULL)? 0 : (int)(code - bralink); |
6288
|
0 |
0 |
while (cd->hwm > cd->start_workspace + cd->workspace_size - |
6293
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
6296
|
0 |
0 |
for (hc = (pcre_uchar *)cd->start_workspace + base_hwm_offset; |
6300
|
0 |
0 |
PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1)); |
|
0 |
0 |
PUT(cd->hwm, 0, GET(hc, 0) + len + ((i != 0)? 2+LINK_SIZE : 1)); |
6310
|
0 |
6 |
while (bralink != NULL) |
6316
|
0 |
0 |
bralink = (oldlinkoffset == 0)? NULL : bralink - oldlinkoffset; |
6355
|
0 |
0 |
if ((*bracode == OP_ONCE || *bracode == OP_ONCE_NC) && |
|
0 |
0 |
if ((*bracode == OP_ONCE || *bracode == OP_ONCE_NC) && |
|
0 |
0 |
if ((*bracode == OP_ONCE || *bracode == OP_ONCE_NC) && |
6361
|
0 |
0 |
if (*bracode == OP_ONCE || *bracode == OP_ONCE_NC) |
|
0 |
0 |
if (*bracode == OP_ONCE || *bracode == OP_ONCE_NC) |
6371
|
0 |
0 |
if (lengthptr == NULL) |
6376
|
0 |
0 |
if (could_be_empty_branch(scode, ketcode, utf, cd, NULL)) |
6383
|
0 |
0 |
while (*scode == OP_ALT); |
6389
|
0 |
0 |
if (*bracode == OP_COND && bracode[GET(bracode,1)] != OP_ALT) |
|
0 |
0 |
if (*bracode == OP_COND && bracode[GET(bracode,1)] != OP_ALT) |
6394
|
0 |
0 |
if (possessive_quantifier) |
6401
|
0 |
0 |
if (*bracode == OP_COND || *bracode == OP_SCOND) |
|
0 |
0 |
if (*bracode == OP_COND || *bracode == OP_SCOND) |
6409
|
0 |
0 |
*bracode = (*bracode == OP_COND)? OP_BRAPOS : OP_SBRAPOS; |
6426
|
0 |
0 |
if (brazeroptr != NULL) *brazeroptr = OP_BRAPOSZERO; |
6427
|
0 |
0 |
if (repeat_min < 2) possessive_quantifier = FALSE; |
6442
|
0 |
0 |
else if (*previous == OP_FAIL) goto END_REPEAT; |
6464
|
0 |
58 |
if (possessive_quantifier) |
6479
|
0 |
0 |
|| tempcode[1 + IMM2_SIZE] == OP_NOTPROP)? 2 : 0); |
|
0 |
0 |
|| tempcode[1 + IMM2_SIZE] == OP_NOTPROP)? 2 : 0); |
6521
|
0 |
0 |
if (len > 0) |
6529
|
0 |
0 |
if (repcode < OP_CALLOUT && opcode_possessify[repcode] > 0) |
|
0 |
0 |
if (repcode < OP_CALLOUT && opcode_possessify[repcode] > 0) |
6621
|
0 |
6 |
if (ptr[0] == CHAR_ASTERISK && (ptr[1] == ':' |
|
0 |
0 |
if (ptr[0] == CHAR_ASTERISK && (ptr[1] == ':' |
6622
|
0 |
0 |
|| (MAX_255(ptr[1]) && ((cd->ctypes[ptr[1]] & ctype_letter) != 0)))) |
6631
|
0 |
0 |
while (MAX_255(*ptr) && (cd->ctypes[*ptr] & ctype_letter) != 0) ptr++; |
6638
|
0 |
0 |
if (*ptr == CHAR_COLON) |
6641
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
|
0 |
0 |
while (*ptr != CHAR_NULL && *ptr != CHAR_RIGHT_PARENTHESIS) ptr++; |
6643
|
0 |
0 |
if ((unsigned int)arglen > MAX_MARK) |
6650
|
0 |
0 |
if (*ptr != CHAR_RIGHT_PARENTHESIS) |
6658
|
0 |
0 |
for (i = 0; i < verbcount; i++) |
6660
|
0 |
0 |
if (namelen == verbs[i].len && |
|
0 |
0 |
if (namelen == verbs[i].len && |
6668
|
0 |
0 |
if (verbs[i].op == OP_ACCEPT) |
6671
|
0 |
0 |
if (arglen != 0) |
6677
|
0 |
0 |
for (oc = cd->open_caps; oc != NULL; oc = oc->next) |
6679
|
0 |
0 |
if (lengthptr != NULL) |
6695
|
0 |
0 |
setverb = *code++ = |
6699
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
6704
|
0 |
0 |
else if (arglen == 0) |
6706
|
0 |
0 |
if (verbs[i].op < 0) /* Argument is mandatory */ |
6716
|
0 |
0 |
if (verbs[i].op_arg < 0) /* Argument is forbidden */ |
6722
|
0 |
0 |
if (lengthptr != NULL) /* In pass 1 just add in the length */ |
6757
|
0 |
0 |
if (i < verbcount) continue; /* Successfully handled a verb */ |
6773
|
0 |
6 |
if (*ptr == CHAR_QUESTION_MARK) |
6817
|
0 |
0 |
if (ptr[1] == CHAR_QUESTION_MARK && ptr[2] == CHAR_C) |
|
0 |
0 |
if (ptr[1] == CHAR_QUESTION_MARK && ptr[2] == CHAR_C) |
6819
|
0 |
0 |
for (i = 3;; i++) if (!IS_DIGIT(ptr[i])) break; |
|
0 |
0 |
for (i = 3;; i++) if (!IS_DIGIT(ptr[i])) break; |
6820
|
0 |
0 |
if (ptr[i] == CHAR_RIGHT_PARENTHESIS) |
6826
|
0 |
0 |
if (*tempptr != CHAR_LEFT_PARENTHESIS) |
6837
|
0 |
0 |
if (tempptr[1] == CHAR_QUESTION_MARK && |
|
0 |
0 |
if (tempptr[1] == CHAR_QUESTION_MARK && |
6838
|
0 |
0 |
(tempptr[2] == CHAR_EQUALS_SIGN || |
6839
|
0 |
0 |
tempptr[2] == CHAR_EXCLAMATION_MARK || |
6840
|
0 |
0 |
(tempptr[2] == CHAR_LESS_THAN_SIGN && |
6841
|
0 |
0 |
(tempptr[3] == CHAR_EQUALS_SIGN || |
6861
|
0 |
0 |
if (*ptr == CHAR_R && ptr[1] == CHAR_AMPERSAND) |
|
0 |
0 |
if (*ptr == CHAR_R && ptr[1] == CHAR_AMPERSAND) |
6872
|
0 |
0 |
else if (*ptr == CHAR_LESS_THAN_SIGN) |
6877
|
0 |
0 |
else if (*ptr == CHAR_APOSTROPHE) |
6885
|
0 |
0 |
if (*ptr == CHAR_MINUS || *ptr == CHAR_PLUS) refsign = *ptr++; |
|
0 |
0 |
if (*ptr == CHAR_MINUS || *ptr == CHAR_PLUS) refsign = *ptr++; |
6886
|
0 |
0 |
else if (IS_DIGIT(*ptr)) refsign = 0; |
|
0 |
0 |
else if (IS_DIGIT(*ptr)) refsign = 0; |
6891
|
0 |
0 |
if (refsign >= 0) |
6893
|
0 |
0 |
while (IS_DIGIT(*ptr)) |
|
0 |
0 |
while (IS_DIGIT(*ptr)) |
6895
|
0 |
0 |
if (recno > INT_MAX / 10 - 1) /* Integer overflow */ |
6897
|
0 |
0 |
while (IS_DIGIT(*ptr)) ptr++; |
|
0 |
0 |
while (IS_DIGIT(*ptr)) ptr++; |
6913
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
6918
|
0 |
0 |
if (!MAX_255(*ptr) || (cd->ctypes[*ptr] & ctype_word) == 0) |
6924
|
0 |
0 |
while (MAX_255(*ptr) && (cd->ctypes[*ptr] & ctype_word) != 0) |
6929
|
0 |
0 |
if (lengthptr != NULL) skipbytes += IMM2_SIZE; |
6934
|
0 |
0 |
if ((terminator > 0 && *ptr++ != (pcre_uchar)terminator) || |
|
0 |
0 |
if ((terminator > 0 && *ptr++ != (pcre_uchar)terminator) || |
|
0 |
0 |
if ((terminator > 0 && *ptr++ != (pcre_uchar)terminator) || |
6944
|
0 |
0 |
if (lengthptr != NULL) break; |
6950
|
0 |
0 |
if (refsign >= 0) |
6952
|
0 |
0 |
if (recno <= 0) |
6957
|
0 |
0 |
if (refsign != 0) recno = (refsign == CHAR_MINUS)? |
|
0 |
0 |
if (refsign != 0) recno = (refsign == CHAR_MINUS)? |
6959
|
0 |
0 |
if (recno <= 0 || recno > cd->final_bracount) |
|
0 |
0 |
if (recno <= 0 || recno > cd->final_bracount) |
6965
|
0 |
0 |
if (recno > cd->top_backref) cd->top_backref = recno; |
6972
|
0 |
0 |
for (i = 0; i < cd->names_found; i++) |
6974
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0 && |
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0 && |
6984
|
0 |
0 |
if (i < cd->names_found) |
6989
|
0 |
0 |
if (recno > cd->top_backref) cd->top_backref = recno; |
6990
|
0 |
0 |
for (; i < cd->names_found; i++) |
6993
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) != 0 || |
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) != 0 || |
6998
|
0 |
0 |
if (count > 1) |
7017
|
0 |
0 |
else if (terminator != CHAR_NULL) |
7026
|
0 |
0 |
else if (*name == CHAR_R) |
7029
|
0 |
0 |
for (i = 1; i < namelen; i++) |
7031
|
0 |
0 |
if (!IS_DIGIT(name[i])) |
|
0 |
0 |
if (!IS_DIGIT(name[i])) |
7036
|
0 |
0 |
if (recno > INT_MAX / 10 - 1) /* Integer overflow */ |
7043
|
0 |
0 |
if (recno == 0) recno = RREF_ANY; |
7051
|
0 |
0 |
else if (namelen == 6 && STRNCMP_UC_C8(name, STRING_DEFINE, 6) == 0) |
|
0 |
0 |
else if (namelen == 6 && STRNCMP_UC_C8(name, STRING_DEFINE, 6) == 0) |
7083
|
0 |
0 |
if (*ptr == CHAR_RIGHT_PARENTHESIS && ptr[1] != CHAR_ASTERISK && |
|
0 |
0 |
if (*ptr == CHAR_RIGHT_PARENTHESIS && ptr[1] != CHAR_ASTERISK && |
|
0 |
0 |
if (*ptr == CHAR_RIGHT_PARENTHESIS && ptr[1] != CHAR_ASTERISK && |
7084
|
0 |
0 |
ptr[1] != CHAR_PLUS && ptr[1] != CHAR_QUESTION_MARK && |
|
0 |
0 |
ptr[1] != CHAR_PLUS && ptr[1] != CHAR_QUESTION_MARK && |
7085
|
0 |
0 |
(ptr[1] != CHAR_LEFT_CURLY_BRACKET || !is_counted_repeat(ptr+2))) |
7113
|
0 |
0 |
if (MAX_255(ptr[1]) && (cd->ctypes[ptr[1]] & ctype_word) != 0) |
7137
|
0 |
0 |
while(IS_DIGIT(*ptr)) |
|
0 |
0 |
while(IS_DIGIT(*ptr)) |
7139
|
0 |
0 |
if (*ptr != CHAR_RIGHT_PARENTHESIS) |
7144
|
0 |
0 |
if (n > 255) |
7160
|
0 |
0 |
if (*(++ptr) == CHAR_EQUALS_SIGN || |
|
0 |
0 |
if (*(++ptr) == CHAR_EQUALS_SIGN || |
7167
|
0 |
0 |
else if (*ptr != CHAR_LESS_THAN_SIGN) /* Test for Python-style defn */ |
7179
|
0 |
0 |
CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; |
7181
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
7186
|
0 |
0 |
while (MAX_255(*ptr) && (cd->ctypes[*ptr] & ctype_word) != 0) ptr++; |
7195
|
0 |
0 |
if (lengthptr != NULL) |
7200
|
0 |
0 |
if (*ptr != (pcre_uchar)terminator) |
7206
|
0 |
0 |
if (cd->names_found >= MAX_NAME_COUNT) |
7212
|
0 |
0 |
if (namelen + IMM2_SIZE + 1 > cd->name_entry_size) |
7215
|
0 |
0 |
if (namelen > MAX_NAME_SIZE) |
7230
|
0 |
0 |
for (i = 0; i < cd->names_found; i++, ng++) |
7232
|
0 |
0 |
if (namelen == ng->length && |
|
0 |
0 |
if (namelen == ng->length && |
7235
|
0 |
0 |
if (ng->number == number) break; |
7236
|
0 |
0 |
if ((options & PCRE_DUPNAMES) == 0) |
7243
|
0 |
0 |
else if (ng->number == number) |
7250
|
0 |
0 |
if (i >= cd->names_found) /* Not a duplicate with same number */ |
7254
|
0 |
0 |
if (cd->names_found >= cd->named_group_list_size) |
7260
|
0 |
0 |
if (newspace == NULL) |
7268
|
0 |
0 |
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE) |
7299
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
|
0 |
0 |
if (IS_DIGIT(*ptr)) |
7304
|
0 |
0 |
while (MAX_255(*ptr) && (cd->ctypes[*ptr] & ctype_word) != 0) ptr++; |
7314
|
0 |
0 |
if (lengthptr != NULL) |
7319
|
0 |
0 |
if (namelen == 0) |
7324
|
0 |
0 |
if (*ptr != (pcre_uchar)terminator) |
7329
|
0 |
0 |
if (namelen > MAX_NAME_SIZE) |
7337
|
0 |
0 |
if (!is_recurse) cd->namedrefcount++; |
7365
|
0 |
0 |
if (cd->dupgroups) *lengthptr += 4 + 4*LINK_SIZE; |
7380
|
0 |
0 |
for (i = 0; i < cd->names_found; i++, ng++) |
7382
|
0 |
0 |
if (namelen == ng->length && |
|
0 |
0 |
if (namelen == ng->length && |
7387
|
0 |
0 |
if (is_recurse) break; |
7388
|
0 |
0 |
for (oc = cd->open_caps; oc != NULL; oc = oc->next) |
7390
|
0 |
0 |
if (oc->number == recno) |
7409
|
0 |
0 |
for (i = 0; i < cd->names_found; i++) |
7411
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0 && |
|
0 |
0 |
if (STRNCMP_UC_UC(name, slot+IMM2_SIZE, namelen) == 0 && |
7417
|
0 |
0 |
if (i < cd->names_found) |
7431
|
0 |
0 |
if (is_recurse) goto HANDLE_RECURSION; |
7436
|
0 |
0 |
if (lengthptr == NULL && cd->dupnames) |
|
0 |
0 |
if (lengthptr == NULL && cd->dupnames) |
7442
|
0 |
0 |
for (i++; i < cd->names_found; i++) |
7444
|
0 |
0 |
if (STRCMP_UC_UC(slot + IMM2_SIZE, cslot + IMM2_SIZE) != 0) break; |
7449
|
0 |
0 |
if (count > 1) |
7451
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
7454
|
0 |
0 |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_DNREFI : OP_DNREF; |
7460
|
0 |
0 |
for (; slot < cslot; slot += cd->name_entry_size) |
7464
|
0 |
0 |
cd->backref_map |= (recno < 32)? (1 << recno) : 1; |
7465
|
0 |
0 |
if (recno > cd->top_backref) cd->top_backref = recno; |
7471
|
0 |
0 |
for (oc = cd->open_caps; oc != NULL; oc = oc->next) |
7473
|
0 |
0 |
if (oc->number == recno) |
7493
|
0 |
0 |
if (*(++ptr) != CHAR_RIGHT_PARENTHESIS) |
7517
|
0 |
0 |
if ((refsign = *ptr) == CHAR_PLUS) |
7520
|
0 |
0 |
if (!IS_DIGIT(*ptr)) |
|
0 |
0 |
if (!IS_DIGIT(*ptr)) |
7526
|
0 |
0 |
else if (refsign == CHAR_MINUS) |
7528
|
0 |
0 |
if (!IS_DIGIT(ptr[1])) |
|
0 |
0 |
if (!IS_DIGIT(ptr[1])) |
7534
|
0 |
0 |
while(IS_DIGIT(*ptr)) |
|
0 |
0 |
while(IS_DIGIT(*ptr)) |
7536
|
0 |
0 |
if (recno > INT_MAX / 10 - 1) /* Integer overflow */ |
7538
|
0 |
0 |
while (IS_DIGIT(*ptr)) ptr++; |
|
0 |
0 |
while (IS_DIGIT(*ptr)) ptr++; |
7545
|
0 |
0 |
if (*ptr != (pcre_uchar)terminator) |
7551
|
0 |
0 |
if (refsign == CHAR_MINUS) |
7553
|
0 |
0 |
if (recno == 0) |
7559
|
0 |
0 |
if (recno <= 0) |
7565
|
0 |
0 |
else if (refsign == CHAR_PLUS) |
7567
|
0 |
0 |
if (recno == 0) |
7590
|
0 |
0 |
if (lengthptr == NULL) |
7593
|
0 |
0 |
if (recno != 0) |
7598
|
0 |
0 |
if (called == NULL) |
7600
|
0 |
0 |
if (recno > cd->final_bracount) |
7611
|
0 |
0 |
if (cd->hwm >= cd->start_workspace + cd->workspace_size - |
7615
|
0 |
0 |
if (*errorcodeptr != 0) goto FAILED; |
7629
|
0 |
0 |
else if (GET(called, 1) == 0 && cond_depth <= 0 && |
7649
|
0 |
0 |
if (firstcharflags == REQ_UNSET) firstcharflags = REQ_NONE; |
7659
|
0 |
0 |
while (*ptr != CHAR_RIGHT_PARENTHESIS && *ptr != CHAR_COLON) |
|
0 |
0 |
while (*ptr != CHAR_RIGHT_PARENTHESIS && *ptr != CHAR_COLON) |
7692
|
0 |
0 |
if (*ptr == CHAR_RIGHT_PARENTHESIS) |
7720
|
0 |
6 |
else if ((options & PCRE_NO_AUTO_CAPTURE) != 0) |
7738
|
0 |
6 |
if ((cd->parens_depth += 1) > PARENS_NEST_LIMIT) |
7752
|
6 |
0 |
if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT && |
|
0 |
6 |
if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT && |
|
0 |
0 |
if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT && |
7770
|
3 |
3 |
if (!compile_regex( |
|
6 |
0 |
if (!compile_regex( |
|
0 |
6 |
if (!compile_regex( |
|
0 |
6 |
if (!compile_regex( |
7797
|
0 |
6 |
if (bravalue == OP_ONCE && cd->bracount <= tempbracount) |
|
0 |
0 |
if (bravalue == OP_ONCE && cd->bracount <= tempbracount) |
7800
|
6 |
0 |
if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT) |
|
0 |
6 |
if (bravalue >= OP_ASSERT && bravalue <= OP_ASSERTBACK_NOT) |
7812
|
0 |
6 |
if (bravalue == OP_COND && lengthptr == NULL) |
|
0 |
0 |
if (bravalue == OP_COND && lengthptr == NULL) |
7821
|
0 |
0 |
while (*tc != OP_KET); |
7826
|
0 |
0 |
if (code[LINK_SIZE+1] == OP_DEF) |
7828
|
0 |
0 |
if (condcount > 1) |
7842
|
0 |
0 |
if (condcount > 2) |
7847
|
0 |
0 |
if (condcount == 1) subfirstcharflags = subreqcharflags = REQ_NONE; |
7853
|
0 |
6 |
if (*ptr != CHAR_RIGHT_PARENTHESIS) |
7864
|
3 |
3 |
if (lengthptr != NULL) |
7866
|
0 |
3 |
if (OFLOW_MAX - *lengthptr < length_prevgroup - 2 - 2*LINK_SIZE) |
7886
|
0 |
3 |
if (bravalue == OP_DEF) break; |
7901
|
3 |
0 |
if (bravalue >= OP_ONCE) |
7909
|
0 |
3 |
if (firstcharflags == REQ_UNSET) |
7911
|
0 |
0 |
if (subfirstcharflags >= 0) |
7925
|
3 |
0 |
else if (subfirstcharflags >= 0 && subreqcharflags < 0) |
|
0 |
3 |
else if (subfirstcharflags >= 0 && subreqcharflags < 0) |
7934
|
3 |
0 |
if (subreqcharflags >= 0) |
7950
|
0 |
0 |
else if (bravalue == OP_ASSERT && subreqcharflags >= 0 && |
|
0 |
0 |
else if (bravalue == OP_ASSERT && subreqcharflags >= 0 && |
|
0 |
0 |
else if (bravalue == OP_ASSERT && subreqcharflags >= 0 && |
7971
|
0 |
104 |
if (*errorcodeptr != 0) goto FAILED; |
7973
|
104 |
0 |
if (escape == 0) /* The escape coded a single character */ |
7980
|
0 |
0 |
if (firstcharflags == REQ_UNSET && escape > ESC_b && escape < ESC_Z) |
|
0 |
0 |
if (firstcharflags == REQ_UNSET && escape > ESC_b && escape < ESC_Z) |
|
0 |
0 |
if (firstcharflags == REQ_UNSET && escape > ESC_b && escape < ESC_Z) |
7997
|
0 |
0 |
if (escape == ESC_g) |
8004
|
0 |
0 |
CHAR_GREATER_THAN_SIGN : CHAR_APOSTROPHE; |
8017
|
0 |
0 |
if (cf != CHAR_PLUS && cf != CHAR_MINUS && !IS_DIGIT(cf)) |
|
0 |
0 |
if (cf != CHAR_PLUS && cf != CHAR_MINUS && !IS_DIGIT(cf)) |
|
0 |
0 |
if (cf != CHAR_PLUS && cf != CHAR_MINUS && !IS_DIGIT(cf)) |
|
0 |
0 |
if (cf != CHAR_PLUS && cf != CHAR_MINUS && !IS_DIGIT(cf)) |
8027
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
|
0 |
0 |
while (IS_DIGIT(*p)) p++; |
8028
|
0 |
0 |
if (*p != (pcre_uchar)terminator) |
8040
|
0 |
0 |
if (escape == ESC_k) |
8042
|
0 |
0 |
if ((ptr[1] != CHAR_LESS_THAN_SIGN && |
|
0 |
0 |
if ((ptr[1] != CHAR_LESS_THAN_SIGN && |
8043
|
0 |
0 |
ptr[1] != CHAR_APOSTROPHE && ptr[1] != CHAR_LEFT_CURLY_BRACKET)) |
8050
|
0 |
0 |
CHAR_GREATER_THAN_SIGN : (*ptr == CHAR_APOSTROPHE)? |
8051
|
0 |
0 |
CHAR_APOSTROPHE : CHAR_RIGHT_CURLY_BRACKET; |
8059
|
0 |
0 |
if (escape < 0) |
8068
|
0 |
0 |
if (firstcharflags == REQ_UNSET) zerofirstcharflags = firstcharflags = REQ_NONE; |
8071
|
0 |
0 |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_REFI : OP_REF; |
8073
|
0 |
0 |
cd->backref_map |= (recno < 32)? (1 << recno) : 1; |
8074
|
0 |
0 |
if (recno > cd->top_backref) cd->top_backref = recno; |
8080
|
0 |
0 |
for (oc = cd->open_caps; oc != NULL; oc = oc->next) |
8082
|
0 |
0 |
if (oc->number == recno) |
8110
|
0 |
0 |
else if (escape == ESC_X || escape == ESC_P || escape == ESC_p) |
|
0 |
0 |
else if (escape == ESC_X || escape == ESC_P || escape == ESC_p) |
|
0 |
0 |
else if (escape == ESC_X || escape == ESC_P || escape == ESC_p) |
8125
|
0 |
0 |
if ((escape == ESC_b || escape == ESC_B || escape == ESC_A) && |
|
0 |
0 |
if ((escape == ESC_b || escape == ESC_B || escape == ESC_A) && |
|
0 |
0 |
if ((escape == ESC_b || escape == ESC_B || escape == ESC_A) && |
|
0 |
0 |
if ((escape == ESC_b || escape == ESC_B || escape == ESC_A) && |
8140
|
0 |
0 |
previous = (escape > ESC_b && escape < ESC_Z)? code : NULL; |
|
0 |
0 |
previous = (escape > ESC_b && escape < ESC_Z)? code : NULL; |
8142
|
0 |
0 |
*code++ = (!utf && escape == ESC_C)? OP_ALLANY : escape; |
|
0 |
0 |
*code++ = (!utf && escape == ESC_C)? OP_ALLANY : escape; |
8209
|
0 |
778 |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_CHARI : OP_CHAR; |
8210
|
778 |
778 |
for (c = 0; c < mclength; c++) *code++ = mcbuffer[c]; |
8214
|
778 |
0 |
if (mcbuffer[0] == CHAR_CR || mcbuffer[0] == CHAR_NL) |
|
0 |
778 |
if (mcbuffer[0] == CHAR_CR || mcbuffer[0] == CHAR_NL) |
8222
|
58 |
720 |
if (firstcharflags == REQ_UNSET) |
8231
|
0 |
58 |
if (mclength == 1 || req_caseopt == 0) |
|
0 |
0 |
if (mclength == 1 || req_caseopt == 0) |
8236
|
0 |
58 |
if (mclength != 1) |
8254
|
0 |
720 |
if (mclength == 1 || req_caseopt == 0) |
|
0 |
0 |
if (mclength == 1 || req_caseopt == 0) |
8336
|
0 |
68 |
if (PUBL(stack_guard) != NULL && PUBL(stack_guard)()) |
|
0 |
0 |
if (PUBL(stack_guard) != NULL && PUBL(stack_guard)()) |
8372
|
6 |
62 |
if (*code == OP_CBRA) |
8394
|
0 |
68 |
if (reset_bracount) cd->bracount = orig_bracount; |
8398
|
0 |
68 |
if (lookbehind) |
8409
|
34 |
34 |
if (!compile_branch(&options, &code, &ptr, errorcodeptr, &branchfirstchar, |
|
0 |
68 |
if (!compile_branch(&options, &code, &ptr, errorcodeptr, &branchfirstchar, |
8420
|
6 |
62 |
if (cd->bracount > max_bracount) max_bracount = cd->bracount; |
8424
|
34 |
34 |
if (lengthptr == NULL) |
8429
|
34 |
0 |
if (*last_branch != OP_ALT) |
8448
|
0 |
0 |
if (firstcharflags >= 0 && |
|
0 |
0 |
if (firstcharflags >= 0 && |
8449
|
0 |
0 |
(firstcharflags != branchfirstcharflags || firstchar != branchfirstchar)) |
8451
|
0 |
0 |
if (reqcharflags < 0) |
8462
|
0 |
0 |
if (firstcharflags < 0 && branchfirstcharflags >= 0 && branchreqcharflags < 0) |
|
0 |
0 |
if (firstcharflags < 0 && branchfirstcharflags >= 0 && branchreqcharflags < 0) |
|
0 |
0 |
if (firstcharflags < 0 && branchfirstcharflags >= 0 && branchreqcharflags < 0) |
8470
|
0 |
0 |
if (((reqcharflags & ~REQ_VARY) != (branchreqcharflags & ~REQ_VARY)) || |
|
0 |
0 |
if (((reqcharflags & ~REQ_VARY) != (branchreqcharflags & ~REQ_VARY)) || |
8488
|
0 |
34 |
if (lookbehind) |
8495
|
0 |
0 |
if (fixed_length == -3) |
8499
|
0 |
0 |
else if (fixed_length < 0) |
8501
|
0 |
0 |
*errorcodeptr = (fixed_length == -2)? ERR36 : |
8502
|
0 |
0 |
(fixed_length == -4)? ERR70: ERR25; |
8508
|
0 |
0 |
if (fixed_length > cd->max_lookbehind) |
8522
|
68 |
0 |
if (*ptr != CHAR_VERTICAL_LINE) |
8524
|
34 |
34 |
if (lengthptr == NULL) |
8534
|
0 |
34 |
while (branch_length > 0); |
8548
|
6 |
62 |
if (capnumber > 0) |
8550
|
0 |
6 |
if (cd->open_caps->flag) |
8580
|
34 |
34 |
if (lengthptr != NULL) |
8582
|
0 |
34 |
if (OFLOW_MAX - *lengthptr < length) |
8601
|
0 |
0 |
if (lengthptr != NULL) |
8674
|
31 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
|
31 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
|
31 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
8675
|
0 |
31 |
op == OP_SBRA || op == OP_SBRAPOS) |
8677
|
0 |
0 |
if (!is_anchored(scode, bracket_map, cd, atomcount)) return FALSE; |
8682
|
31 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
|
31 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
|
31 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
8683
|
0 |
31 |
op == OP_SCBRA || op == OP_SCBRAPOS) |
8686
|
0 |
0 |
int new_map = bracket_map | ((n < 32)? (1 << n) : 1); |
8687
|
0 |
0 |
if (!is_anchored(scode, new_map, cd, atomcount)) return FALSE; |
8692
|
31 |
0 |
else if (op == OP_ASSERT || op == OP_COND) |
|
0 |
31 |
else if (op == OP_ASSERT || op == OP_COND) |
8694
|
0 |
0 |
if (!is_anchored(scode, bracket_map, cd, atomcount)) return FALSE; |
8699
|
31 |
0 |
else if (op == OP_ONCE || op == OP_ONCE_NC) |
|
0 |
31 |
else if (op == OP_ONCE || op == OP_ONCE_NC) |
8701
|
0 |
0 |
if (!is_anchored(scode, bracket_map, cd, atomcount + 1)) |
8709
|
31 |
0 |
else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR || |
|
31 |
0 |
else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR || |
|
0 |
31 |
else if ((op == OP_TYPESTAR || op == OP_TYPEMINSTAR || |
8712
|
0 |
0 |
if (scode[1] != OP_ALLANY || (bracket_map & cd->backref_map) != 0 || |
|
0 |
0 |
if (scode[1] != OP_ALLANY || (bracket_map & cd->backref_map) != 0 || |
|
0 |
0 |
if (scode[1] != OP_ALLANY || (bracket_map & cd->backref_map) != 0 || |
8713
|
0 |
0 |
atomcount > 0 || cd->had_pruneorskip) |
8719
|
31 |
0 |
else if (op != OP_SOD && op != OP_SOM && op != OP_CIRC) return FALSE; |
|
31 |
0 |
else if (op != OP_SOD && op != OP_SOM && op != OP_CIRC) return FALSE; |
|
26 |
5 |
else if (op != OP_SOD && op != OP_SOM && op != OP_CIRC) return FALSE; |
8723
|
0 |
5 |
while (*code == OP_ALT); /* Loop for each alternative */ |
8768
|
0 |
3 |
if (op == OP_COND) |
8771
|
0 |
0 |
if (*scode == OP_CALLOUT) scode += PRIV(OP_lengths)[OP_CALLOUT]; |
8772
|
0 |
0 |
switch (*scode) |
8783
|
0 |
0 |
if (!is_startline(scode, bracket_map, cd, atomcount, TRUE)) return FALSE; |
8784
|
0 |
0 |
do scode += GET(scode, 1); while (*scode == OP_ALT); |
8794
|
3 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
|
3 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
|
3 |
0 |
if (op == OP_BRA || op == OP_BRAPOS || |
8795
|
0 |
3 |
op == OP_SBRA || op == OP_SBRAPOS) |
8797
|
0 |
0 |
if (!is_startline(scode, bracket_map, cd, atomcount, inassert)) return FALSE; |
8802
|
3 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
|
3 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
|
3 |
0 |
else if (op == OP_CBRA || op == OP_CBRAPOS || |
8803
|
0 |
3 |
op == OP_SCBRA || op == OP_SCBRAPOS) |
8806
|
0 |
0 |
int new_map = bracket_map | ((n < 32)? (1 << n) : 1); |
8807
|
0 |
0 |
if (!is_startline(scode, new_map, cd, atomcount, inassert)) return FALSE; |
8812
|
0 |
3 |
else if (op == OP_ASSERT) |
8814
|
0 |
0 |
if (!is_startline(scode, bracket_map, cd, atomcount, TRUE)) return FALSE; |
8819
|
3 |
0 |
else if (op == OP_ONCE || op == OP_ONCE_NC) |
|
0 |
3 |
else if (op == OP_ONCE || op == OP_ONCE_NC) |
8821
|
0 |
0 |
if (!is_startline(scode, bracket_map, cd, atomcount + 1, inassert)) return FALSE; |
8830
|
3 |
0 |
else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR) |
|
3 |
0 |
else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR) |
|
0 |
3 |
else if (op == OP_TYPESTAR || op == OP_TYPEMINSTAR || op == OP_TYPEPOSSTAR) |
8832
|
0 |
0 |
if (scode[1] != OP_ANY || (bracket_map & cd->backref_map) != 0 || |
|
0 |
0 |
if (scode[1] != OP_ANY || (bracket_map & cd->backref_map) != 0 || |
|
0 |
0 |
if (scode[1] != OP_ANY || (bracket_map & cd->backref_map) != 0 || |
8833
|
0 |
0 |
atomcount > 0 || cd->had_pruneorskip || inassert) |
|
0 |
0 |
atomcount > 0 || cd->had_pruneorskip || inassert) |
8842
|
3 |
0 |
else if (op != OP_CIRC && op != OP_CIRCM) return FALSE; |
|
3 |
0 |
else if (op != OP_CIRC && op != OP_CIRCM) return FALSE; |
8848
|
0 |
0 |
while (*code == OP_ALT); /* Loop for each alternative */ |
8886
|
3 |
0 |
int xl = (*code == OP_CBRA || *code == OP_SCBRA || |
|
3 |
0 |
int xl = (*code == OP_CBRA || *code == OP_SCBRA || |
8887
|
3 |
0 |
*code == OP_CBRAPOS || *code == OP_SCBRAPOS)? IMM2_SIZE:0; |
|
0 |
3 |
*code == OP_CBRAPOS || *code == OP_SCBRAPOS)? IMM2_SIZE:0; |
8907
|
0 |
0 |
if (dflags < 0) |
8909
|
0 |
0 |
if (cflags < 0) { c = d; cflags = dflags; } else if (c != d || cflags != dflags) return 0; |
|
0 |
0 |
if (cflags < 0) { c = d; cflags = dflags; } else if (c != d || cflags != dflags) return 0; |
|
0 |
0 |
if (cflags < 0) { c = d; cflags = dflags; } else if (c != d || cflags != dflags) return 0; |
8920
|
0 |
0 |
if (!inassert) return 0; |
8921
|
0 |
0 |
if (cflags < 0) { c = scode[1]; cflags = 0; } |
8922
|
0 |
0 |
else if (c != scode[1]) return 0; |
8933
|
0 |
0 |
if (!inassert) return 0; |
8934
|
0 |
0 |
if (cflags < 0) { c = scode[1]; cflags = REQ_CASELESS; } |
8935
|
0 |
0 |
else if (c != scode[1]) return 0; |
8941
|
0 |
0 |
while (*code == OP_ALT); |
8973
|
0 |
0 |
for (i = 0; i < cd->names_found; i++) |
8976
|
0 |
0 |
if (crc == 0 && slot[IMM2_SIZE+length] != 0) |
|
0 |
0 |
if (crc == 0 && slot[IMM2_SIZE+length] != 0) |
8984
|
0 |
0 |
if (crc < 0) |
9104
|
0 |
31 |
if (errorptr == NULL) |
9106
|
0 |
0 |
if (errorcodeptr != NULL) *errorcodeptr = 99; |
9111
|
0 |
31 |
if (errorcodeptr != NULL) *errorcodeptr = ERR0; |
9115
|
0 |
31 |
if (erroroffset == NULL) |
9125
|
31 |
0 |
if (tables == NULL) tables = PRIV(default_tables); |
9133
|
0 |
31 |
if ((options & ~PUBLIC_COMPILE_OPTIONS) != 0) |
9141
|
0 |
31 |
if ((options & PCRE_NEVER_UTF) != 0) never_utf = TRUE; |
9148
|
0 |
31 |
while (ptr[skipatstart] == CHAR_LEFT_PARENTHESIS && |
|
0 |
0 |
while (ptr[skipatstart] == CHAR_LEFT_PARENTHESIS && |
9159
|
0 |
0 |
if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_UTF8_RIGHTPAR, 5) == 0) |
9171
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_UTF_RIGHTPAR, 4) == 0) |
9173
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_UCP_RIGHTPAR, 4) == 0) |
9175
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_NO_AUTO_POSSESS_RIGHTPAR, 16) == 0) |
9177
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_NO_START_OPT_RIGHTPAR, 13) == 0) |
9180
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_LIMIT_MATCH_EQ, 12) == 0) |
9184
|
0 |
0 |
while (isdigit(ptr[p])) |
9186
|
0 |
0 |
if (c > PCRE_UINT32_MAX / 10 - 1) break; /* Integer overflow */ |
9189
|
0 |
0 |
if (ptr[p++] != CHAR_RIGHT_PARENTHESIS) break; |
9190
|
0 |
0 |
if (c < limit_match) |
9199
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_LIMIT_RECURSION_EQ, 16) == 0) |
9203
|
0 |
0 |
while (isdigit(ptr[p])) |
9205
|
0 |
0 |
if (c > PCRE_UINT32_MAX / 10 - 1) break; /* Integer overflow check */ |
9208
|
0 |
0 |
if (ptr[p++] != CHAR_RIGHT_PARENTHESIS) break; |
9209
|
0 |
0 |
if (c < limit_recursion) |
9218
|
0 |
0 |
if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_CR_RIGHTPAR, 3) == 0) |
9220
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_LF_RIGHTPAR, 3) == 0) |
9222
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_CRLF_RIGHTPAR, 5) == 0) |
9224
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_ANY_RIGHTPAR, 4) == 0) |
9226
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_ANYCRLF_RIGHTPAR, 8) == 0) |
9229
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_BSR_ANYCRLF_RIGHTPAR, 12) == 0) |
9231
|
0 |
0 |
else if (STRNCMP_UC_C8(ptr+skipatstart+2, STRING_BSR_UNICODE_RIGHTPAR, 12) == 0) |
9234
|
0 |
0 |
if (newnl != 0) |
9236
|
0 |
0 |
else if (newbsr != 0) |
9243
|
0 |
31 |
if (utf && never_utf) |
|
0 |
0 |
if (utf && never_utf) |
9268
|
0 |
31 |
if (utf) |
9278
|
0 |
31 |
if ((options & PCRE_UCP) != 0) |
9287
|
0 |
31 |
if ((options & (PCRE_BSR_ANYCRLF|PCRE_BSR_UNICODE)) == |
9310
|
31 |
0 |
if (newline == -2) |
9314
|
0 |
0 |
else if (newline < 0) |
9321
|
0 |
0 |
if (newline > 255) |
9392
|
0 |
31 |
if (errorcode != 0) goto PCRE_EARLY_ERROR_RETURN; |
9397
|
0 |
31 |
if (length > MAX_PATTERN_SIZE) |
9413
|
0 |
31 |
if (re == NULL) |
9437
|
0 |
31 |
re->tables = (tables == PRIV(default_tables))? NULL : tables; |
9471
|
0 |
31 |
if (cd->names_found > 0) |
9476
|
0 |
0 |
for (; i > 0; i--, ng++) |
9478
|
0 |
0 |
if (cd->named_group_list_size > NAMED_GROUP_LIST_SIZE) |
9496
|
0 |
31 |
if (cd->had_accept) |
9504
|
31 |
0 |
if (errorcode == 0 && *ptr != CHAR_NULL) errorcode = ERR22; |
|
0 |
31 |
if (errorcode == 0 && *ptr != CHAR_NULL) errorcode = ERR22; |
9512
|
0 |
31 |
if (code - codestart > length) errorcode = ERR23; |
9525
|
0 |
31 |
if (cd->hwm > cd->start_workspace) |
9529
|
0 |
0 |
while (errorcode == 0 && cd->hwm > cd->start_workspace) |
|
0 |
0 |
while (errorcode == 0 && cd->hwm > cd->start_workspace) |
9538
|
0 |
0 |
if (offset == 0 || codestart[offset-1] != OP_RECURSE) |
|
0 |
0 |
if (offset == 0 || codestart[offset-1] != OP_RECURSE) |
9545
|
0 |
0 |
if (recno != prev_recno) |
9550
|
0 |
0 |
if (groupptr == NULL) errorcode = ERR53; |
9558
|
0 |
31 |
if (cd->workspace_size > COMPILE_WORK_SIZE) |
9565
|
31 |
0 |
if (errorcode == 0 && re->top_backref > re->top_bracket) errorcode = ERR15; |
|
0 |
31 |
if (errorcode == 0 && re->top_backref > re->top_bracket) errorcode = ERR15; |
9574
|
31 |
0 |
if (errorcode == 0 && (options & PCRE_NO_AUTO_POSSESS) == 0) |
|
31 |
0 |
if (errorcode == 0 && (options & PCRE_NO_AUTO_POSSESS) == 0) |
9588
|
31 |
0 |
if (errorcode == 0 && cd->check_lookbehind) |
|
0 |
31 |
if (errorcode == 0 && cd->check_lookbehind) |
9597
|
0 |
0 |
for (cc = (pcre_uchar *)PRIV(find_bracket)(codestart, utf, -1); |
9601
|
0 |
0 |
if (GET(cc, 1) == 0) |
9611
|
0 |
0 |
if (fixed_length < 0) |
9613
|
0 |
0 |
errorcode = (fixed_length == -2)? ERR36 : |
9614
|
0 |
0 |
(fixed_length == -4)? ERR70 : ERR25; |
9617
|
0 |
0 |
if (fixed_length > cd->max_lookbehind) cd->max_lookbehind = fixed_length; |
9626
|
0 |
31 |
if (errorcode != 0) |
9633
|
0 |
0 |
if (errorcodeptr != NULL) *errorcodeptr = errorcode; |
9648
|
31 |
0 |
if ((re->options & PCRE_ANCHORED) == 0) |
9650
|
5 |
26 |
if (is_anchored(codestart, 0, cd, 0)) re->options |= PCRE_ANCHORED; |
9653
|
3 |
23 |
if (firstcharflags < 0) |
9655
|
23 |
3 |
if (firstcharflags >= 0) /* Remove caseless flag for non-caseable chars */ |
9664
|
0 |
23 |
if ((firstcharflags & REQ_CASELESS) != 0) |
9680
|
0 |
0 |
if (MAX_255(re->first_char) |
9688
|
0 |
3 |
else if (is_startline(codestart, 0, cd, 0, FALSE)) re->flags |= PCRE_STARTLINE; |
9696
|
26 |
5 |
if (reqcharflags >= 0 && |
|
3 |
23 |
if (reqcharflags >= 0 && |
9697
|
3 |
0 |
((re->options & PCRE_ANCHORED) == 0 || (reqcharflags & REQ_VARY) != 0)) |
9706
|
0 |
26 |
if ((reqcharflags & REQ_CASELESS) != 0) |
9722
|
0 |
0 |
if (MAX_255(re->req_char) && cd->fcc[re->req_char] != re->req_char) |
9782
|
5 |
26 |
if (could_be_empty_branch(codestart, code, utf, cd, NULL)) |
9789
|
0 |
26 |
while (*codestart == OP_ALT); |