1528 |
|
|
1529 |
Returns: the fixed length, |
Returns: the fixed length, |
1530 |
or -1 if there is no fixed length, |
or -1 if there is no fixed length, |
1531 |
or -2 if \C was encountered |
or -2 if \C was encountered (in UTF-8 mode only) |
1532 |
or -3 if an OP_RECURSE item was encountered and atend is FALSE |
or -3 if an OP_RECURSE item was encountered and atend is FALSE |
1533 |
or -4 if an unknown opcode was encountered (internal error) |
or -4 if an unknown opcode was encountered (internal error) |
1534 |
*/ |
*/ |
1702 |
cc++; |
cc++; |
1703 |
break; |
break; |
1704 |
|
|
1705 |
/* The single-byte matcher isn't allowed */ |
/* The single-byte matcher isn't allowed. This only happens in UTF-8 mode; |
1706 |
|
otherwise \C is coded as OP_ALLANY. */ |
1707 |
|
|
1708 |
case OP_ANYBYTE: |
case OP_ANYBYTE: |
1709 |
return -2; |
return -2; |
5601 |
|
|
5602 |
/* ------------------------------------------------------------ */ |
/* ------------------------------------------------------------ */ |
5603 |
case CHAR_C: /* Callout - may be followed by digits; */ |
case CHAR_C: /* Callout - may be followed by digits; */ |
5604 |
previous_callout = code; /* Save for later completion */ |
previous_callout = code; /* Save for later completion */ |
5605 |
after_manual_callout = 1; /* Skip one item before completing */ |
after_manual_callout = 1; /* Skip one item before completing */ |
5606 |
*code++ = OP_CALLOUT; |
*code++ = OP_CALLOUT; |
5607 |
{ |
{ |
5608 |
int n = 0; |
int n = 0; |
6479 |
} |
} |
6480 |
else |
else |
6481 |
#endif |
#endif |
6482 |
{ |
/* In non-UTF-8 mode, we turn \C into OP_ALLANY instead of OP_ANYBYTE |
6483 |
|
so that it works in DFA mode and in lookbehinds. */ |
6484 |
|
|
6485 |
|
{ |
6486 |
previous = (-c > ESC_b && -c < ESC_Z)? code : NULL; |
previous = (-c > ESC_b && -c < ESC_Z)? code : NULL; |
6487 |
*code++ = -c; |
*code++ = (!utf8 && c == -ESC_C)? OP_ALLANY : -c; |
6488 |
} |
} |
6489 |
} |
} |
6490 |
continue; |
continue; |