| 5248 |
{ |
{ |
| 5249 |
cd->external_options = newoptions; |
cd->external_options = newoptions; |
| 5250 |
} |
} |
| 5251 |
else |
else |
| 5252 |
{ |
{ |
| 5253 |
if ((options & PCRE_IMS) != (newoptions & PCRE_IMS)) |
if ((options & PCRE_IMS) != (newoptions & PCRE_IMS)) |
| 5254 |
{ |
{ |
| 5783 |
int length; |
int length; |
| 5784 |
int orig_bracount; |
int orig_bracount; |
| 5785 |
int max_bracount; |
int max_bracount; |
| 5786 |
|
int old_external_options = cd->external_options; |
| 5787 |
branch_chain bc; |
branch_chain bc; |
| 5788 |
|
|
| 5789 |
bc.outer = bcptr; |
bc.outer = bcptr; |
| 5860 |
return FALSE; |
return FALSE; |
| 5861 |
} |
} |
| 5862 |
|
|
| 5863 |
|
/* If the external options have changed during this branch, it means that we |
| 5864 |
|
are at the top level, and a leading option setting has been encountered. We |
| 5865 |
|
need to re-set the original option values to take account of this so that, |
| 5866 |
|
during the pre-compile phase, we know to allow for a re-set at the start of |
| 5867 |
|
subsequent branches. */ |
| 5868 |
|
|
| 5869 |
|
if (old_external_options != cd->external_options) |
| 5870 |
|
oldims = cd->external_options & PCRE_IMS; |
| 5871 |
|
|
| 5872 |
/* Keep the highest bracket count in case (?| was used and some branch |
/* Keep the highest bracket count in case (?| was used and some branch |
| 5873 |
has fewer than the rest. */ |
has fewer than the rest. */ |
| 5874 |
|
|
| 5979 |
PUT(code, 1, code - start_bracket); |
PUT(code, 1, code - start_bracket); |
| 5980 |
code += 1 + LINK_SIZE; |
code += 1 + LINK_SIZE; |
| 5981 |
|
|
| 5982 |
/* Resetting option if needed */ |
/* Reset options if needed. */ |
| 5983 |
|
|
| 5984 |
if ((options & PCRE_IMS) != oldims && *ptr == CHAR_RIGHT_PARENTHESIS) |
if ((options & PCRE_IMS) != oldims && *ptr == CHAR_RIGHT_PARENTHESIS) |
| 5985 |
{ |
{ |