1508 |
can match the empty string or not. It is called from could_be_empty() |
can match the empty string or not. It is called from could_be_empty() |
1509 |
below and from compile_branch() when checking for an unlimited repeat of a |
below and from compile_branch() when checking for an unlimited repeat of a |
1510 |
group that can match nothing. Note that first_significant_code() skips over |
group that can match nothing. Note that first_significant_code() skips over |
1511 |
assertions. If we hit an unclosed bracket, we return "empty" - this means we've |
backward and negative forward assertions when its final argument is TRUE. If we |
1512 |
struck an inner bracket whose current branch will already have been scanned. |
hit an unclosed bracket, we return "empty" - this means we've struck an inner |
1513 |
|
bracket whose current branch will already have been scanned. |
1514 |
|
|
1515 |
Arguments: |
Arguments: |
1516 |
code points to start of search |
code points to start of search |
1531 |
const uschar *ccode; |
const uschar *ccode; |
1532 |
|
|
1533 |
c = *code; |
c = *code; |
1534 |
|
|
1535 |
|
/* Skip over forward assertions; the other assertions are skipped by |
1536 |
|
first_significant_code() with a TRUE final argument. */ |
1537 |
|
|
1538 |
|
if (c == OP_ASSERT) |
1539 |
|
{ |
1540 |
|
do code += GET(code, 1); while (*code == OP_ALT); |
1541 |
|
c = *code; |
1542 |
|
continue; |
1543 |
|
} |
1544 |
|
|
1545 |
/* Groups with zero repeats can of course be empty; skip them. */ |
/* Groups with zero repeats can of course be empty; skip them. */ |
1546 |
|
|