diff options
author | Matthew Vernon <matthew@debian.org> | 2015-11-21 12:03:44 +0000 |
---|---|---|
committer | Matthew Vernon <matthew@debian.org> | 2015-11-21 12:03:44 +0000 |
commit | d9aaaf6dc5a7494b04e600f1e7d3da561aff0daf (patch) | |
tree | e1245867d3733b5deaf4e41a88a080c3a0b4f59e /pcre_exec.c | |
parent | f4b7aba2e8c3cb8ba30dd028cd7e60077e229f53 (diff) | |
parent | 36d56c1e13c6d0159d44a9c1c93a610d0981bc06 (diff) |
tidy up conflict
Diffstat (limited to 'pcre_exec.c')
-rw-r--r-- | pcre_exec.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/pcre_exec.c b/pcre_exec.c index a6ef1c1..0270d60 100644 --- a/pcre_exec.c +++ b/pcre_exec.c @@ -1467,7 +1467,18 @@ for (;;) md->offset_vector[offset] = md->offset_vector[md->offset_end - number]; md->offset_vector[offset+1] = (int)(eptr - md->start_subject); - if (offset_top <= offset) offset_top = offset + 2; + + /* If this group is at or above the current highwater mark, ensure that + any groups between the current high water mark and this group are marked + unset and then update the high water mark. */ + + if (offset >= offset_top) + { + register int *iptr = md->offset_vector + offset_top; + register int *iend = md->offset_vector + offset; + while (iptr < iend) *iptr++ = -1; + offset_top = offset + 2; + } } ecode += 1 + IMM2_SIZE; break; |