| 2376 |
BOOL class_utf8; |
BOOL class_utf8; |
| 2377 |
BOOL utf8 = (options & PCRE_UTF8) != 0; |
BOOL utf8 = (options & PCRE_UTF8) != 0; |
| 2378 |
uschar *class_utf8data; |
uschar *class_utf8data; |
| 2379 |
|
uschar *class_utf8data_base; |
| 2380 |
uschar utf8_char[6]; |
uschar utf8_char[6]; |
| 2381 |
#else |
#else |
| 2382 |
BOOL utf8 = FALSE; |
BOOL utf8 = FALSE; |
| 2688 |
#ifdef SUPPORT_UTF8 |
#ifdef SUPPORT_UTF8 |
| 2689 |
class_utf8 = FALSE; /* No chars >= 256 */ |
class_utf8 = FALSE; /* No chars >= 256 */ |
| 2690 |
class_utf8data = code + LINK_SIZE + 2; /* For UTF-8 items */ |
class_utf8data = code + LINK_SIZE + 2; /* For UTF-8 items */ |
| 2691 |
|
class_utf8data_base = class_utf8data; /* For resetting in pass 1 */ |
| 2692 |
#endif |
#endif |
| 2693 |
|
|
| 2694 |
/* Process characters until ] is reached. By writing this as a "do" it |
/* Process characters until ] is reached. By writing this as a "do" it |
| 2704 |
{ /* Braces are required because the */ |
{ /* Braces are required because the */ |
| 2705 |
GETCHARLEN(c, ptr, ptr); /* macro generates multiple statements */ |
GETCHARLEN(c, ptr, ptr); /* macro generates multiple statements */ |
| 2706 |
} |
} |
| 2707 |
|
|
| 2708 |
|
/* In the pre-compile phase, accumulate the length of any UTF-8 extra |
| 2709 |
|
data and reset the pointer. This is so that very large classes that |
| 2710 |
|
contain a zillion UTF-8 characters no longer overwrite the work space |
| 2711 |
|
(which is on the stack). */ |
| 2712 |
|
|
| 2713 |
|
if (lengthptr != NULL) |
| 2714 |
|
{ |
| 2715 |
|
*lengthptr += class_utf8data - class_utf8data_base; |
| 2716 |
|
class_utf8data = class_utf8data_base; |
| 2717 |
|
} |
| 2718 |
|
|
| 2719 |
#endif |
#endif |
| 2720 |
|
|
| 2721 |
/* Inside \Q...\E everything is literal except \E */ |
/* Inside \Q...\E everything is literal except \E */ |
| 5821 |
|
|
| 5822 |
uschar cworkspace[COMPILE_WORK_SIZE]; |
uschar cworkspace[COMPILE_WORK_SIZE]; |
| 5823 |
|
|
|
|
|
| 5824 |
/* Set this early so that early errors get offset 0. */ |
/* Set this early so that early errors get offset 0. */ |
| 5825 |
|
|
| 5826 |
ptr = (const uschar *)pattern; |
ptr = (const uschar *)pattern; |