| 1790 |
code += 2; |
code += 2; |
| 1791 |
break; |
break; |
| 1792 |
|
|
| 1793 |
|
case OP_WORD_BOUNDARY: |
| 1794 |
|
case OP_NOT_WORD_BOUNDARY: |
| 1795 |
|
code++; |
| 1796 |
|
break; |
| 1797 |
|
|
| 1798 |
case OP_ASSERT_NOT: |
case OP_ASSERT_NOT: |
| 1799 |
case OP_ASSERTBACK: |
case OP_ASSERTBACK: |
| 1800 |
case OP_ASSERTBACK_NOT: |
case OP_ASSERTBACK_NOT: |
| 4118 |
external_extra points to "hints" from pcre_study() or is NULL |
external_extra points to "hints" from pcre_study() or is NULL |
| 4119 |
subject points to the subject string |
subject points to the subject string |
| 4120 |
length length of subject string (may contain binary zeros) |
length length of subject string (may contain binary zeros) |
| 4121 |
|
start_offset where to start in the subject string |
| 4122 |
options option bits |
options option bits |
| 4123 |
offsets points to a vector of ints to be filled in with offsets |
offsets points to a vector of ints to be filled in with offsets |
| 4124 |
offsetcount the number of elements in the vector |
offsetcount the number of elements in the vector |
| 4131 |
|
|
| 4132 |
int |
int |
| 4133 |
pcre_exec(const pcre *external_re, const pcre_extra *external_extra, |
pcre_exec(const pcre *external_re, const pcre_extra *external_extra, |
| 4134 |
const char *subject, int length, int options, int *offsets, int offsetcount) |
const char *subject, int length, int start_offset, int options, int *offsets, |
| 4135 |
|
int offsetcount) |
| 4136 |
{ |
{ |
| 4137 |
int resetcount, ocount; |
int resetcount, ocount; |
| 4138 |
int first_char = -1; |
int first_char = -1; |
| 4139 |
int ims = 0; |
int ims = 0; |
| 4140 |
match_data match_block; |
match_data match_block; |
| 4141 |
const uschar *start_bits = NULL; |
const uschar *start_bits = NULL; |
| 4142 |
const uschar *start_match = (const uschar *)subject; |
const uschar *start_match = (const uschar *)subject + start_offset; |
| 4143 |
const uschar *end_subject; |
const uschar *end_subject; |
| 4144 |
const real_pcre *re = (const real_pcre *)external_re; |
const real_pcre *re = (const real_pcre *)external_re; |
| 4145 |
const real_pcre_extra *extra = (const real_pcre_extra *)external_extra; |
const real_pcre_extra *extra = (const real_pcre_extra *)external_extra; |
| 4231 |
start_bits = extra->start_bits; |
start_bits = extra->start_bits; |
| 4232 |
} |
} |
| 4233 |
|
|
| 4234 |
/* Loop for unanchored matches; for anchored regexps the loop runs just once. */ |
/* Loop for unanchored matches; for anchored regexs the loop runs just once. */ |
| 4235 |
|
|
| 4236 |
do |
do |
| 4237 |
{ |
{ |