| 3195 |
*errorcodeptr = ERR6; |
*errorcodeptr = ERR6; |
| 3196 |
goto FAILED; |
goto FAILED; |
| 3197 |
} |
} |
| 3198 |
|
|
| 3199 |
|
/* Remember whether \r or \n are in this class */ |
| 3200 |
|
|
| 3201 |
|
if (negate_class) |
| 3202 |
|
{ |
| 3203 |
|
if ((classbits[1] & 0x24) != 0x24) cd->external_options |= PCRE_HASCRORLF; |
| 3204 |
|
} |
| 3205 |
|
else |
| 3206 |
|
{ |
| 3207 |
|
if ((classbits[1] & 0x24) != 0) cd->external_options |= PCRE_HASCRORLF; |
| 3208 |
|
} |
| 3209 |
|
|
| 3210 |
/* If class_charcount is 1, we saw precisely one character whose value is |
/* If class_charcount is 1, we saw precisely one character whose value is |
| 3211 |
less than 256. As long as there were no characters >= 128 and there was no |
less than 256. As long as there were no characters >= 128 and there was no |
| 3212 |
use of \p or \P, in other words, no use of any XCLASS features, we can |
use of \p or \P, in other words, no use of any XCLASS features, we can |
| 5061 |
previous = code; |
previous = code; |
| 5062 |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_CHARNC : OP_CHAR; |
*code++ = ((options & PCRE_CASELESS) != 0)? OP_CHARNC : OP_CHAR; |
| 5063 |
for (c = 0; c < mclength; c++) *code++ = mcbuffer[c]; |
for (c = 0; c < mclength; c++) *code++ = mcbuffer[c]; |
| 5064 |
|
|
| 5065 |
|
/* Remember if \r or \n were seen */ |
| 5066 |
|
|
| 5067 |
|
if (mcbuffer[0] == '\r' || mcbuffer[0] == '\n') |
| 5068 |
|
cd->external_options |= PCRE_HASCRORLF; |
| 5069 |
|
|
| 5070 |
/* Set the first and required bytes appropriately. If no previous first |
/* Set the first and required bytes appropriately. If no previous first |
| 5071 |
byte, set it from this character, but revert to none on a zero repeat. |
byte, set it from this character, but revert to none on a zero repeat. |
| 5998 |
|
|
| 5999 |
printf("Length = %d top_bracket = %d top_backref = %d\n", |
printf("Length = %d top_bracket = %d top_backref = %d\n", |
| 6000 |
length, re->top_bracket, re->top_backref); |
length, re->top_bracket, re->top_backref); |
| 6001 |
|
|
| 6002 |
if (re->options != 0) |
printf("Options=%08x\n", re->options); |
|
{ |
|
|
printf("%s%s%s%s%s%s%s%s%s\n", |
|
|
((re->options & PCRE_NOPARTIAL) != 0)? "nopartial " : "", |
|
|
((re->options & PCRE_ANCHORED) != 0)? "anchored " : "", |
|
|
((re->options & PCRE_CASELESS) != 0)? "caseless " : "", |
|
|
((re->options & PCRE_EXTENDED) != 0)? "extended " : "", |
|
|
((re->options & PCRE_MULTILINE) != 0)? "multiline " : "", |
|
|
((re->options & PCRE_DOTALL) != 0)? "dotall " : "", |
|
|
((re->options & PCRE_DOLLAR_ENDONLY) != 0)? "endonly " : "", |
|
|
((re->options & PCRE_EXTRA) != 0)? "extra " : "", |
|
|
((re->options & PCRE_UNGREEDY) != 0)? "ungreedy " : ""); |
|
|
} |
|
| 6003 |
|
|
| 6004 |
if ((re->options & PCRE_FIRSTSET) != 0) |
if ((re->options & PCRE_FIRSTSET) != 0) |
| 6005 |
{ |
{ |