| 1347 |
OP_SCBRA, /* 98 Start of capturing bracket, check empty */ |
OP_SCBRA, /* 98 Start of capturing bracket, check empty */ |
| 1348 |
OP_SCOND, /* 99 Conditional group, check empty */ |
OP_SCOND, /* 99 Conditional group, check empty */ |
| 1349 |
|
|
| 1350 |
|
/* The next two pairs must (respectively) be kept together. */ |
| 1351 |
|
|
| 1352 |
OP_CREF, /* 100 Used to hold a capture number as condition */ |
OP_CREF, /* 100 Used to hold a capture number as condition */ |
| 1353 |
OP_RREF, /* 101 Used to hold a recursion number as condition */ |
OP_NCREF, /* 101 Same, but generaged by a name reference*/ |
| 1354 |
OP_DEF, /* 102 The DEFINE condition */ |
OP_RREF, /* 102 Used to hold a recursion number as condition */ |
| 1355 |
|
OP_NRREF, /* 103 Same, but generaged by a name reference*/ |
| 1356 |
|
OP_DEF, /* 104 The DEFINE condition */ |
| 1357 |
|
|
| 1358 |
OP_BRAZERO, /* 103 These two must remain together and in this */ |
OP_BRAZERO, /* 105 These two must remain together and in this */ |
| 1359 |
OP_BRAMINZERO, /* 104 order. */ |
OP_BRAMINZERO, /* 106 order. */ |
| 1360 |
|
|
| 1361 |
/* These are backtracking control verbs */ |
/* These are backtracking control verbs */ |
| 1362 |
|
|
| 1363 |
OP_PRUNE, /* 105 */ |
OP_PRUNE, /* 107 */ |
| 1364 |
OP_SKIP, /* 106 */ |
OP_SKIP, /* 108 */ |
| 1365 |
OP_THEN, /* 107 */ |
OP_THEN, /* 109 */ |
| 1366 |
OP_COMMIT, /* 108 */ |
OP_COMMIT, /* 110 */ |
| 1367 |
|
|
| 1368 |
/* These are forced failure and success verbs */ |
/* These are forced failure and success verbs */ |
| 1369 |
|
|
| 1370 |
OP_FAIL, /* 109 */ |
OP_FAIL, /* 111 */ |
| 1371 |
OP_ACCEPT, /* 110 */ |
OP_ACCEPT, /* 112 */ |
| 1372 |
OP_CLOSE, /* 111 Used before OP_ACCEPT to close open captures */ |
OP_CLOSE, /* 113 Used before OP_ACCEPT to close open captures */ |
| 1373 |
|
|
| 1374 |
/* This is used to skip a subpattern with a {0} quantifier */ |
/* This is used to skip a subpattern with a {0} quantifier */ |
| 1375 |
|
|
| 1376 |
OP_SKIPZERO /* 112 */ |
OP_SKIPZERO /* 114 */ |
| 1377 |
}; |
}; |
| 1378 |
|
|
| 1379 |
|
|
| 1397 |
"Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \ |
"Alt", "Ket", "KetRmax", "KetRmin", "Assert", "Assert not", \ |
| 1398 |
"AssertB", "AssertB not", "Reverse", \ |
"AssertB", "AssertB not", "Reverse", \ |
| 1399 |
"Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond", \ |
"Once", "Bra", "CBra", "Cond", "SBra", "SCBra", "SCond", \ |
| 1400 |
"Cond ref", "Cond rec", "Cond def", "Brazero", "Braminzero", \ |
"Cond ref", "Cond nref", "Cond rec", "Cond nrec", "Cond def", \ |
| 1401 |
|
"Brazero", "Braminzero", \ |
| 1402 |
"*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT", \ |
"*PRUNE", "*SKIP", "*THEN", "*COMMIT", "*FAIL", "*ACCEPT", \ |
| 1403 |
"Close", "Skip zero" |
"Close", "Skip zero" |
| 1404 |
|
|
| 1460 |
1+LINK_SIZE, /* SBRA */ \ |
1+LINK_SIZE, /* SBRA */ \ |
| 1461 |
3+LINK_SIZE, /* SCBRA */ \ |
3+LINK_SIZE, /* SCBRA */ \ |
| 1462 |
1+LINK_SIZE, /* SCOND */ \ |
1+LINK_SIZE, /* SCOND */ \ |
| 1463 |
3, /* CREF */ \ |
3, 3, /* CREF, NCREF */ \ |
| 1464 |
3, /* RREF */ \ |
3, 3, /* RREF, NRREF */ \ |
| 1465 |
1, /* DEF */ \ |
1, /* DEF */ \ |
| 1466 |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
1, 1, /* BRAZERO, BRAMINZERO */ \ |
| 1467 |
1, 1, 1, 1, /* PRUNE, SKIP, THEN, COMMIT, */ \ |
1, 1, 1, 1, /* PRUNE, SKIP, THEN, COMMIT, */ \ |
| 1468 |
1, 1, 3, 1 /* FAIL, ACCEPT, CLOSE, SKIPZERO */ |
1, 1, 3, 1 /* FAIL, ACCEPT, CLOSE, SKIPZERO */ |
| 1469 |
|
|
| 1470 |
|
|
| 1471 |
/* A magic value for OP_RREF to indicate the "any recursion" condition. */ |
/* A magic value for OP_RREF and OP_NRREF to indicate the "any recursion" |
| 1472 |
|
condition. */ |
| 1473 |
|
|
| 1474 |
#define RREF_ANY 0xffff |
#define RREF_ANY 0xffff |
| 1475 |
|
|
| 1527 |
pcre_uint32 size; /* Total that was malloced */ |
pcre_uint32 size; /* Total that was malloced */ |
| 1528 |
pcre_uint32 flags; /* Private flags */ |
pcre_uint32 flags; /* Private flags */ |
| 1529 |
uschar start_bits[32]; /* Starting char bits */ |
uschar start_bits[32]; /* Starting char bits */ |
| 1530 |
pcre_uint32 minlength; /* Minimum subject length */ |
pcre_uint32 minlength; /* Minimum subject length */ |
| 1531 |
} pcre_study_data; |
} pcre_study_data; |
| 1532 |
|
|
| 1533 |
/* Structure for building a chain of open capturing subpatterns during |
/* Structure for building a chain of open capturing subpatterns during |
| 1534 |
compiling, so that instructions to close them can be compiled when (*ACCEPT) is |
compiling, so that instructions to close them can be compiled when (*ACCEPT) is |
| 1535 |
encountered. */ |
encountered. */ |
| 1536 |
|
|
| 1537 |
typedef struct open_capitem { |
typedef struct open_capitem { |
| 1538 |
struct open_capitem *next; /* Chain link */ |
struct open_capitem *next; /* Chain link */ |
| 1539 |
pcre_uint16 number; /* Capture number */ |
pcre_uint16 number; /* Capture number */ |
| 1540 |
} open_capitem; |
} open_capitem; |
| 1541 |
|
|
| 1542 |
/* Structure for passing "static" information around between the functions |
/* Structure for passing "static" information around between the functions |
| 1543 |
doing the compiling, so that they are thread-safe. */ |
doing the compiling, so that they are thread-safe. */ |
| 1551 |
const uschar *start_code; /* The start of the compiled code */ |
const uschar *start_code; /* The start of the compiled code */ |
| 1552 |
const uschar *start_pattern; /* The start of the pattern */ |
const uschar *start_pattern; /* The start of the pattern */ |
| 1553 |
const uschar *end_pattern; /* The end of the pattern */ |
const uschar *end_pattern; /* The end of the pattern */ |
| 1554 |
open_capitem *open_caps; /* Chain of open capture items */ |
open_capitem *open_caps; /* Chain of open capture items */ |
| 1555 |
uschar *hwm; /* High watermark of workspace */ |
uschar *hwm; /* High watermark of workspace */ |
| 1556 |
uschar *name_table; /* The name/number table */ |
uschar *name_table; /* The name/number table */ |
| 1557 |
int names_found; /* Number of entries so far */ |
int names_found; /* Number of entries so far */ |
| 1564 |
int external_flags; /* External flag bits to be set */ |
int external_flags; /* External flag bits to be set */ |
| 1565 |
int req_varyopt; /* "After variable item" flag for reqbyte */ |
int req_varyopt; /* "After variable item" flag for reqbyte */ |
| 1566 |
BOOL had_accept; /* (*ACCEPT) encountered */ |
BOOL had_accept; /* (*ACCEPT) encountered */ |
| 1567 |
BOOL check_lookbehind; /* Lookbehinds need later checking */ |
BOOL check_lookbehind; /* Lookbehinds need later checking */ |
| 1568 |
int nltype; /* Newline type */ |
int nltype; /* Newline type */ |
| 1569 |
int nllen; /* Newline string length */ |
int nllen; /* Newline string length */ |
| 1570 |
uschar nl[4]; /* Newline string when fixed length */ |
uschar nl[4]; /* Newline string when fixed length */ |
| 1588 |
USPTR save_start; /* Old value of mstart */ |
USPTR save_start; /* Old value of mstart */ |
| 1589 |
int *offset_save; /* Pointer to start of saved offsets */ |
int *offset_save; /* Pointer to start of saved offsets */ |
| 1590 |
int saved_max; /* Number of saved offsets */ |
int saved_max; /* Number of saved offsets */ |
| 1591 |
int offset_top; /* Current value of offset_top */ |
int offset_top; /* Current value of offset_top */ |
| 1592 |
} recursion_info; |
} recursion_info; |
| 1593 |
|
|
| 1594 |
/* Structure for building a chain of data for holding the values of the subject |
/* Structure for building a chain of data for holding the values of the subject |
| 1613 |
int offset_max; /* The maximum usable for return data */ |
int offset_max; /* The maximum usable for return data */ |
| 1614 |
int nltype; /* Newline type */ |
int nltype; /* Newline type */ |
| 1615 |
int nllen; /* Newline string length */ |
int nllen; /* Newline string length */ |
| 1616 |
|
int name_count; /* Number of names in name table */ |
| 1617 |
|
int name_entry_size; /* Size of entry in names table */ |
| 1618 |
|
uschar *name_table; /* Table of names */ |
| 1619 |
uschar nl[4]; /* Newline string when fixed */ |
uschar nl[4]; /* Newline string when fixed */ |
| 1620 |
const uschar *lcc; /* Points to lower casing table */ |
const uschar *lcc; /* Points to lower casing table */ |
| 1621 |
const uschar *ctypes; /* Points to table of type maps */ |
const uschar *ctypes; /* Points to table of type maps */ |