174 |
#define NOTACHAR 0xffffffff |
#define NOTACHAR 0xffffffff |
175 |
|
|
176 |
/* PCRE is able to support several different kinds of newline (CR, LF, CRLF, |
/* PCRE is able to support several different kinds of newline (CR, LF, CRLF, |
177 |
and "all" at present). The following macros are used to package up testing for |
"any" and "anycrlf" at present). The following macros are used to package up |
178 |
newlines. NLBLOCK, PSSTART, and PSEND are defined in the various modules to |
testing for newlines. NLBLOCK, PSSTART, and PSEND are defined in the various |
179 |
indicate in which datablock the parameters exist, and what the start/end of |
modules to indicate in which datablock the parameters exist, and what the |
180 |
string field names are. */ |
start/end of string field names are. */ |
181 |
|
|
182 |
#define NLTYPE_FIXED 0 /* Newline is a fixed length string */ |
#define NLTYPE_FIXED 0 /* Newline is a fixed length string */ |
183 |
#define NLTYPE_ANY 1 /* Newline is any Unicode line ending */ |
#define NLTYPE_ANY 1 /* Newline is any Unicode line ending */ |
184 |
|
#define NLTYPE_ANYCRLF 2 /* Newline is CR, LF, or CRLF */ |
185 |
|
|
186 |
/* This macro checks for a newline at the given position */ |
/* This macro checks for a newline at the given position */ |
187 |
|
|
188 |
#define IS_NEWLINE(p) \ |
#define IS_NEWLINE(p) \ |
189 |
((NLBLOCK->nltype != NLTYPE_FIXED)? \ |
((NLBLOCK->nltype != NLTYPE_FIXED)? \ |
190 |
((p) < NLBLOCK->PSEND && \ |
((p) < NLBLOCK->PSEND && \ |
191 |
_pcre_is_newline((p), NLBLOCK->PSEND, &(NLBLOCK->nllen), utf8) \ |
_pcre_is_newline((p), NLBLOCK->nltype, NLBLOCK->PSEND, &(NLBLOCK->nllen),\ |
192 |
) \ |
utf8)) \ |
193 |
: \ |
: \ |
194 |
((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ |
((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ |
195 |
(p)[0] == NLBLOCK->nl[0] && \ |
(p)[0] == NLBLOCK->nl[0] && \ |
202 |
#define WAS_NEWLINE(p) \ |
#define WAS_NEWLINE(p) \ |
203 |
((NLBLOCK->nltype != NLTYPE_FIXED)? \ |
((NLBLOCK->nltype != NLTYPE_FIXED)? \ |
204 |
((p) > NLBLOCK->PSSTART && \ |
((p) > NLBLOCK->PSSTART && \ |
205 |
_pcre_was_newline((p), NLBLOCK->PSSTART, &(NLBLOCK->nllen), utf8) \ |
_pcre_was_newline((p), NLBLOCK->nltype, NLBLOCK->PSSTART, \ |
206 |
) \ |
&(NLBLOCK->nllen), utf8)) \ |
207 |
: \ |
: \ |
208 |
((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ |
((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ |
209 |
(p)[-NLBLOCK->nllen] == NLBLOCK->nl[0] && \ |
(p)[-NLBLOCK->nllen] == NLBLOCK->nl[0] && \ |
501 |
/* Masks for identifying the public options that are permitted at compile |
/* Masks for identifying the public options that are permitted at compile |
502 |
time, run time, or study time, respectively. */ |
time, run time, or study time, respectively. */ |
503 |
|
|
504 |
#define PCRE_NEWLINE_BITS (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY) |
#define PCRE_NEWLINE_BITS (PCRE_NEWLINE_CR|PCRE_NEWLINE_LF|PCRE_NEWLINE_ANY| \ |
505 |
|
PCRE_NEWLINE_ANYCRLF) |
506 |
|
|
507 |
#define PUBLIC_OPTIONS \ |
#define PUBLIC_OPTIONS \ |
508 |
(PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ |
(PCRE_CASELESS|PCRE_EXTENDED|PCRE_ANCHORED|PCRE_MULTILINE| \ |
1089 |
one of the exported public functions. They have to be "external" in the C |
one of the exported public functions. They have to be "external" in the C |
1090 |
sense, but are not part of the PCRE public API. */ |
sense, but are not part of the PCRE public API. */ |
1091 |
|
|
1092 |
extern BOOL _pcre_is_newline(const uschar *, const uschar *, int *, |
extern BOOL _pcre_is_newline(const uschar *, int, const uschar *, |
1093 |
BOOL); |
int *, BOOL); |
1094 |
extern int _pcre_ord2utf8(int, uschar *); |
extern int _pcre_ord2utf8(int, uschar *); |
1095 |
extern real_pcre *_pcre_try_flipped(const real_pcre *, real_pcre *, |
extern real_pcre *_pcre_try_flipped(const real_pcre *, real_pcre *, |
1096 |
const pcre_study_data *, pcre_study_data *); |
const pcre_study_data *, pcre_study_data *); |
1097 |
extern int _pcre_ucp_findprop(const unsigned int, int *, int *); |
extern int _pcre_ucp_findprop(const unsigned int, int *, int *); |
1098 |
extern unsigned int _pcre_ucp_othercase(const unsigned int); |
extern unsigned int _pcre_ucp_othercase(const unsigned int); |
1099 |
extern int _pcre_valid_utf8(const uschar *, int); |
extern int _pcre_valid_utf8(const uschar *, int); |
1100 |
extern BOOL _pcre_was_newline(const uschar *, const uschar *, int *, |
extern BOOL _pcre_was_newline(const uschar *, int, const uschar *, |
1101 |
BOOL); |
int *, BOOL); |
1102 |
extern BOOL _pcre_xclass(int, const uschar *); |
extern BOOL _pcre_xclass(int, const uschar *); |
1103 |
|
|
1104 |
#endif |
#endif |