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 |
{ |
{ |