"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/pcre2_match.c" between
pcre2-10.35.tar.bz2 and pcre2-10.36.tar.bz2

About: The PCRE2 library implements Perl compatible regular expression pattern matching. New future PCRE version with revised API.

pcre2_match.c  (pcre2-10.35.tar.bz2):pcre2_match.c  (pcre2-10.36.tar.bz2)
skipping to change at line 6062 skipping to change at line 6062
const uint8_t *start_bits = NULL; const uint8_t *start_bits = NULL;
const pcre2_real_code *re = (const pcre2_real_code *)code; const pcre2_real_code *re = (const pcre2_real_code *)code;
BOOL anchored; BOOL anchored;
BOOL firstline; BOOL firstline;
BOOL has_first_cu = FALSE; BOOL has_first_cu = FALSE;
BOOL has_req_cu = FALSE; BOOL has_req_cu = FALSE;
BOOL startline; BOOL startline;
#if PCRE2_CODE_UNIT_WIDTH == 8 #if PCRE2_CODE_UNIT_WIDTH == 8
BOOL memchr_not_found_first_cu = FALSE; BOOL memchr_not_found_first_cu;
BOOL memchr_not_found_first_cu2 = FALSE; BOOL memchr_not_found_first_cu2;
#endif #endif
PCRE2_UCHAR first_cu = 0; PCRE2_UCHAR first_cu = 0;
PCRE2_UCHAR first_cu2 = 0; PCRE2_UCHAR first_cu2 = 0;
PCRE2_UCHAR req_cu = 0; PCRE2_UCHAR req_cu = 0;
PCRE2_UCHAR req_cu2 = 0; PCRE2_UCHAR req_cu2 = 0;
PCRE2_SPTR bumpalong_limit; PCRE2_SPTR bumpalong_limit;
PCRE2_SPTR end_subject; PCRE2_SPTR end_subject;
PCRE2_SPTR true_end_subject; PCRE2_SPTR true_end_subject;
skipping to change at line 6653 skipping to change at line 6653
/* Loop for handling unanchored repeated matching attempts; for anchored regexs /* Loop for handling unanchored repeated matching attempts; for anchored regexs
the loop runs just once. */ the loop runs just once. */
#ifdef SUPPORT_UNICODE #ifdef SUPPORT_UNICODE
FRAGMENT_RESTART: FRAGMENT_RESTART:
#endif #endif
start_partial = match_partial = NULL; start_partial = match_partial = NULL;
mb->hitend = FALSE; mb->hitend = FALSE;
#if PCRE2_CODE_UNIT_WIDTH == 8
memchr_not_found_first_cu = FALSE;
memchr_not_found_first_cu2 = FALSE;
#endif
for(;;) for(;;)
{ {
PCRE2_SPTR new_start_match; PCRE2_SPTR new_start_match;
/* ----------------- Start of match optimizations ---------------- */ /* ----------------- Start of match optimizations ---------------- */
/* There are some optimizations that avoid running the match if a known /* There are some optimizations that avoid running the match if a known
starting point is not found, or if a known later code unit is not present. starting point is not found, or if a known later code unit is not present.
However, there is an option (settable at compile time) that disables these, However, there is an option (settable at compile time) that disables these,
for testing and for ensuring that all callouts do actually occur. */ for testing and for ensuring that all callouts do actually occur. */
skipping to change at line 7131 skipping to change at line 7136
#ifdef SUPPORT_UNICODE #ifdef SUPPORT_UNICODE
if (utf && end_subject != true_end_subject && if (utf && end_subject != true_end_subject &&
(rc == MATCH_NOMATCH || rc == PCRE2_ERROR_PARTIAL)) (rc == MATCH_NOMATCH || rc == PCRE2_ERROR_PARTIAL))
{ {
for (;;) for (;;)
{ {
/* Advance past the first bad code unit, and then skip invalid character /* Advance past the first bad code unit, and then skip invalid character
starting code units in 8-bit and 16-bit modes. */ starting code units in 8-bit and 16-bit modes. */
start_match = end_subject + 1; start_match = end_subject + 1;
#if PCRE2_CODE_UNIT_WIDTH != 32 #if PCRE2_CODE_UNIT_WIDTH != 32
while (start_match < true_end_subject && NOT_FIRSTCU(*start_match)) while (start_match < true_end_subject && NOT_FIRSTCU(*start_match))
start_match++; start_match++;
#endif #endif
/* If we have hit the end of the subject, there isn't another non-empty /* If we have hit the end of the subject, there isn't another non-empty
fragment, so give up. */ fragment, so give up. */
if (start_match >= true_end_subject) if (start_match >= true_end_subject)
{ {
 End of changes. 3 change blocks. 
2 lines changed or deleted 8 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)