Lines Matching full:mb
59 #define NLBLOCK mb /* Block containing newline information */
206 mb points to the match block
215 match_block *mb, pcre2_match_data *match_data, const char *s, ...) in display_frames() argument
235 i, Q->group_frame_type, Q->eptr - mb->start_subject, *(Q->ecode), in display_frames()
260 mb points to the match block
268 do_callout(heapframe *F, match_block *mb, PCRE2_SIZE *lengthptr) in do_callout() argument
278 if (mb->callout == NULL) return 0; /* No callout function provided */ in do_callout()
296 cb = mb->cb; in do_callout()
300 cb->mark = mb->nomatch_mark; in do_callout()
301 cb->current_position = (PCRE2_SIZE)(Feptr - mb->start_subject); in do_callout()
324 rc = mb->callout(cb, mb->callout_data); in do_callout()
347 mb points to match block
356 match_ref(PCRE2_SIZE offset, BOOL caseless, heapframe *F, match_block *mb, in match_ref() argument
369 if ((mb->poptions & PCRE2_MATCH_UNSET_BACKREF) != 0) in match_ref()
380 p = mb->start_subject + Fovector[offset]; in match_ref()
386 BOOL utf = (mb->poptions & PCRE2_UTF) != 0; in match_ref()
388 if (utf || (mb->poptions & PCRE2_UCP) != 0) in match_ref()
405 if (eptr >= mb->end_subject) return 1; /* Partial match */ in match_ref()
438 if (eptr >= mb->end_subject) return 1; /* Partial match */ in match_ref()
441 if (TABLE_GET(cp, mb->lcc, cp) != TABLE_GET(cc, mb->lcc, cc)) in match_ref()
455 if (mb->partial != 0) in match_ref()
459 if (eptr >= mb->end_subject) return 1; /* Partial match */ in match_ref()
468 if ((PCRE2_SIZE)(mb->end_subject - eptr) < length) return 1; /* Partial */ in match_ref()
527 if (Feptr >= mb->end_subject) \
533 if (mb->partial != 0 && \
534 (Feptr > mb->start_used_ptr || mb->allowemptypartial)) \
536 mb->hitend = TRUE; \
537 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; \
569 mb structure (e.g. end_subject) into individual variables to improve
579 mb pointer to "static" variables block
590 PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb) in match() argument
627 BOOL utf = (mb->poptions & PCRE2_UTF) != 0; in match()
628 BOOL ucp = (mb->poptions & PCRE2_UCP) != 0; in match()
670 if (newsize > mb->heap_limit) in match()
672 PCRE2_SIZE maxsize = (mb->heap_limit/frame_size) * frame_size; in match()
760 if (mb->match_call_count++ >= mb->match_limit) return PCRE2_ERROR_MATCHLIMIT; in match()
761 if (Frdepth >= mb->match_limit_depth) return PCRE2_ERROR_DEPTHLIMIT; in match()
796 Fovector[offset] = P->eptr - mb->start_subject; in match()
797 Fovector[offset+1] = Feptr - mb->start_subject; in match()
810 if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; in match()
852 ((mb->moptions & PCRE2_NOTEMPTY) != 0 || in match()
853 ((mb->moptions & PCRE2_NOTEMPTY_ATSTART) != 0 && in match()
854 Fstart_match == mb->start_subject + mb->start_offset))) in match()
861 if (Feptr < mb->end_subject && in match()
862 ((mb->moptions | mb->poptions) & PCRE2_ENDANCHORED) != 0) in match()
875 mb->end_match_ptr = Feptr; /* Record where we ended */ in match()
876 mb->end_offset_top = Foffset_top; /* and how many extracts were taken */ in match()
877 mb->mark = Fmark; /* and the last success mark */ in match()
878 if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; in match()
880 match_data->ovector[0] = Fstart_match - mb->start_subject; in match()
881 match_data->ovector[1] = Feptr - mb->start_subject; in match()
898 if (mb->partial != 0 && in match()
899 Feptr == mb->end_subject - 1 && in match()
904 mb->hitend = TRUE; in match()
905 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
912 if (Feptr >= mb->end_subject) /* DO NOT merge the Feptr++ here; it must */ in match()
919 if (utf) ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
931 if (Feptr >= mb->end_subject) /* DO NOT merge the Feptr++ here; it must */ in match()
951 if (Flength > (PCRE2_SIZE)(mb->end_subject - Feptr)) in match()
966 if (mb->end_subject - Feptr < 1) in match()
984 if (Feptr >= mb->end_subject) in match()
1005 if (mb->lcc[fc] != TABLE_GET(cc, mb->lcc, cc)) RRETURN(MATCH_NOMATCH); in match()
1033 if (mb->lcc[fc] != TABLE_GET(cc, mb->lcc, cc)) RRETURN(MATCH_NOMATCH); in match()
1048 if (TABLE_GET(Fecode[1], mb->lcc, Fecode[1]) in match()
1049 != TABLE_GET(*Feptr, mb->lcc, *Feptr)) RRETURN(MATCH_NOMATCH); in match()
1061 if (Feptr >= mb->end_subject) in match()
1083 ch = (mb->fcc)[ch]; in match()
1106 ch = (mb->fcc)[ch]; in match()
1119 if (ch == fc || (Fop == OP_NOTI && TABLE_GET(ch, mb->fcc, ch) == fc)) in match()
1247 if (Feptr <= mb->end_subject - Flength && in match()
1250 Feptr <= mb->end_subject - Loclength && in match()
1269 if (Feptr <= mb->end_subject - Flength && in match()
1272 Feptr <= mb->end_subject - Loclength && in match()
1289 if (Feptr <= mb->end_subject - Flength && in match()
1293 Feptr <= mb->end_subject - Loclength && in match()
1342 Loc = mb->fcc[Lc]; in match()
1348 Loc = TABLE_GET(Lc, mb->fcc, Lc); in match()
1354 if (Feptr >= mb->end_subject) in match()
1373 if (Feptr >= mb->end_subject) in match()
1391 if (Feptr >= mb->end_subject) in match()
1416 if (Feptr >= mb->end_subject) in match()
1433 if (Feptr >= mb->end_subject) in match()
1447 if (Feptr >= mb->end_subject) in match()
1583 Loc = TABLE_GET(Lc, mb->fcc, Lc); /* Other case from table */ in match()
1591 if (Feptr >= mb->end_subject) in match()
1607 if (Feptr >= mb->end_subject) in match()
1630 if (Feptr >= mb->end_subject) in match()
1649 if (Feptr >= mb->end_subject) in match()
1674 if (Feptr >= mb->end_subject) in match()
1704 if (Feptr >= mb->end_subject) in match()
1733 if (Feptr >= mb->end_subject) in match()
1748 if (Feptr >= mb->end_subject) in match()
1770 if (Feptr >= mb->end_subject) in match()
1788 if (Feptr >= mb->end_subject) in match()
1812 if (Feptr >= mb->end_subject) in match()
1841 if (Feptr >= mb->end_subject) in match()
1930 if (Feptr >= mb->end_subject) in match()
1950 if (Feptr >= mb->end_subject) in match()
1984 if (Feptr >= mb->end_subject) in match()
2007 if (Feptr >= mb->end_subject) in match()
2038 if (Feptr >= mb->end_subject) in match()
2073 if (Feptr >= mb->end_subject) in match()
2165 if (Feptr >= mb->end_subject) in match()
2188 if (Feptr >= mb->end_subject) in match()
2207 if (Feptr >= mb->end_subject) in match()
2255 if (Feptr >= mb->end_subject) in match()
2261 if (CHMAX_255(fc) && (mb->ctypes[fc] & ctype_digit) != 0) in match()
2267 if (Feptr >= mb->end_subject) in match()
2273 if (!CHMAX_255(fc) || (mb->ctypes[fc] & ctype_digit) == 0) in match()
2279 if (Feptr >= mb->end_subject) in match()
2285 if (CHMAX_255(fc) && (mb->ctypes[fc] & ctype_space) != 0) in match()
2291 if (Feptr >= mb->end_subject) in match()
2297 if (!CHMAX_255(fc) || (mb->ctypes[fc] & ctype_space) == 0) in match()
2303 if (Feptr >= mb->end_subject) in match()
2309 if (CHMAX_255(fc) && (mb->ctypes[fc] & ctype_word) != 0) in match()
2315 if (Feptr >= mb->end_subject) in match()
2321 if (!CHMAX_255(fc) || (mb->ctypes[fc] & ctype_word) == 0) in match()
2327 if (Feptr >= mb->end_subject) in match()
2338 if (Feptr >= mb->end_subject) in match()
2355 if (mb->bsr_convention == PCRE2_BSR_ANYCRLF) RRETURN(MATCH_NOMATCH); in match()
2362 if (Feptr >= mb->end_subject) in match()
2377 if (Feptr >= mb->end_subject) in match()
2392 if (Feptr >= mb->end_subject) in match()
2407 if (Feptr >= mb->end_subject) in match()
2430 if (Feptr >= mb->end_subject) in match()
2559 if (Feptr >= mb->end_subject) in match()
2567 Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, utf, in match()
2672 if (Feptr >= mb->end_subject) in match()
2685 if (Feptr >= mb->end_subject) in match()
2702 if (Feptr >= mb->end_subject) in match()
2716 if (Feptr >= mb->end_subject) in match()
2730 if (Feptr >= mb->end_subject) in match()
2746 if (Feptr >= mb->end_subject) in match()
2764 if (Feptr >= mb->end_subject) in match()
2784 if (Feptr >= mb->end_subject) in match()
2809 if (Feptr >= mb->end_subject) in match()
2826 if (Feptr >= mb->end_subject) in match()
2852 if (Feptr >= mb->end_subject) in match()
2868 if (Feptr >= mb->end_subject) in match()
2884 if (Feptr >= mb->end_subject) in match()
2912 if (Feptr >= mb->end_subject) in match()
2920 Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, in match()
2921 mb->end_subject, utf, NULL); in match()
2937 if (Feptr >= mb->end_subject) in match()
2943 if (mb->partial != 0 && in match()
2944 Feptr + 1 >= mb->end_subject && in match()
2949 mb->hitend = TRUE; in match()
2950 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
2953 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
2960 if (Feptr >= mb->end_subject) in match()
2966 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
2971 if (Feptr > mb->end_subject - Lmin) RRETURN(MATCH_NOMATCH); in match()
2978 if (Feptr >= mb->end_subject) in match()
2989 if (Feptr < mb->end_subject && UCHAR21(Feptr) == CHAR_LF) Feptr++; in match()
3002 if (mb->bsr_convention == PCRE2_BSR_ANYCRLF) RRETURN(MATCH_NOMATCH); in match()
3011 if (Feptr >= mb->end_subject) in match()
3028 if (Feptr >= mb->end_subject) in match()
3045 if (Feptr >= mb->end_subject) in match()
3062 if (Feptr >= mb->end_subject) in match()
3079 if (Feptr >= mb->end_subject) in match()
3085 if (fc < 128 && (mb->ctypes[fc] & ctype_digit) != 0) in match()
3094 if (Feptr >= mb->end_subject) in match()
3100 if (cc >= 128 || (mb->ctypes[cc] & ctype_digit) == 0) in match()
3111 if (Feptr >= mb->end_subject) in match()
3117 if (cc < 128 && (mb->ctypes[cc] & ctype_space) != 0) in match()
3120 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
3128 if (Feptr >= mb->end_subject) in match()
3134 if (cc >= 128 || (mb->ctypes[cc] & ctype_space) == 0) in match()
3145 if (Feptr >= mb->end_subject) in match()
3151 if (cc < 128 && (mb->ctypes[cc] & ctype_word) != 0) in match()
3154 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
3162 if (Feptr >= mb->end_subject) in match()
3168 if (cc >= 128 || (mb->ctypes[cc] & ctype_word) == 0) in match()
3190 if (Feptr >= mb->end_subject) in match()
3196 if (mb->partial != 0 && in match()
3197 Feptr + 1 >= mb->end_subject && in match()
3202 mb->hitend = TRUE; in match()
3203 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
3210 if (Feptr > mb->end_subject - Lmin) in match()
3223 * if (Feptr > mb->end_subject - Lmin) in match()
3234 if (Feptr >= mb->end_subject) in match()
3244 if (Feptr < mb->end_subject && *Feptr == CHAR_LF) Feptr++; in match()
3257 if (mb->bsr_convention == PCRE2_BSR_ANYCRLF) RRETURN(MATCH_NOMATCH); in match()
3266 if (Feptr >= mb->end_subject) in match()
3286 if (Feptr >= mb->end_subject) in match()
3306 if (Feptr >= mb->end_subject) in match()
3326 if (Feptr >= mb->end_subject) in match()
3346 if (Feptr >= mb->end_subject) in match()
3351 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_digit) != 0) in match()
3360 if (Feptr >= mb->end_subject) in match()
3365 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_digit) == 0) in match()
3374 if (Feptr >= mb->end_subject) in match()
3379 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_space) != 0) in match()
3388 if (Feptr >= mb->end_subject) in match()
3393 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_space) == 0) in match()
3402 if (Feptr >= mb->end_subject) in match()
3407 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_word) != 0) in match()
3416 if (Feptr >= mb->end_subject) in match()
3421 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_word) == 0) in match()
3454 if (Feptr >= mb->end_subject) in match()
3471 if (Feptr >= mb->end_subject) in match()
3491 if (Feptr >= mb->end_subject) in match()
3508 if (Feptr >= mb->end_subject) in match()
3525 if (Feptr >= mb->end_subject) in match()
3544 if (Feptr >= mb->end_subject) in match()
3565 if (Feptr >= mb->end_subject) in match()
3588 if (Feptr >= mb->end_subject) in match()
3616 if (Feptr >= mb->end_subject) in match()
3637 if (Feptr >= mb->end_subject) in match()
3666 if (Feptr >= mb->end_subject) in match()
3685 if (Feptr >= mb->end_subject) in match()
3704 if (Feptr >= mb->end_subject) in match()
3734 if (Feptr >= mb->end_subject) in match()
3742 Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, in match()
3761 if (Feptr >= mb->end_subject) in match()
3771 if (mb->partial != 0 && /* Take care with CRLF partial */ in match()
3772 Feptr >= mb->end_subject && in match()
3777 mb->hitend = TRUE; in match()
3778 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
3792 if (Feptr < mb->end_subject && UCHAR21(Feptr) == CHAR_LF) Feptr++; in match()
3805 if (mb->bsr_convention == PCRE2_BSR_ANYCRLF) in match()
3844 if (fc < 256 && (mb->ctypes[fc] & ctype_digit) != 0) in match()
3849 if (fc >= 256 || (mb->ctypes[fc] & ctype_digit) == 0) in match()
3854 if (fc < 256 && (mb->ctypes[fc] & ctype_space) != 0) in match()
3859 if (fc >= 256 || (mb->ctypes[fc] & ctype_space) == 0) in match()
3864 if (fc < 256 && (mb->ctypes[fc] & ctype_word) != 0) in match()
3869 if (fc >= 256 || (mb->ctypes[fc] & ctype_word) == 0) in match()
3888 if (Feptr >= mb->end_subject) in match()
3899 if (mb->partial != 0 && /* Take care with CRLF partial */ in match()
3900 Feptr >= mb->end_subject && in match()
3905 mb->hitend = TRUE; in match()
3906 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
3920 if (Feptr < mb->end_subject && *Feptr == CHAR_LF) Feptr++; in match()
3933 if (mb->bsr_convention == PCRE2_BSR_ANYCRLF) in match()
3988 if (MAX_255(fc) && (mb->ctypes[fc] & ctype_digit) != 0) in match()
3993 if (!MAX_255(fc) || (mb->ctypes[fc] & ctype_digit) == 0) in match()
3998 if (MAX_255(fc) && (mb->ctypes[fc] & ctype_space) != 0) in match()
4003 if (!MAX_255(fc) || (mb->ctypes[fc] & ctype_space) == 0) in match()
4008 if (MAX_255(fc) && (mb->ctypes[fc] & ctype_word) != 0) in match()
4013 if (!MAX_255(fc) || (mb->ctypes[fc] & ctype_word) == 0) in match()
4044 if (Feptr >= mb->end_subject) in match()
4060 if (Feptr >= mb->end_subject) in match()
4079 if (Feptr >= mb->end_subject) in match()
4094 if (Feptr >= mb->end_subject) in match()
4109 if (Feptr >= mb->end_subject) in match()
4126 if (Feptr >= mb->end_subject) in match()
4145 if (Feptr >= mb->end_subject) in match()
4167 if (Feptr >= mb->end_subject) in match()
4195 if (Feptr >= mb->end_subject) in match()
4214 if (Feptr >= mb->end_subject) in match()
4237 if (Feptr >= mb->end_subject) in match()
4255 if (Feptr >= mb->end_subject) in match()
4272 if (Feptr >= mb->end_subject) in match()
4315 if (Feptr >= mb->end_subject) in match()
4323 Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, in match()
4387 if (Feptr >= mb->end_subject) in match()
4393 if (mb->partial != 0 && /* Take care with CRLF partial */ in match()
4394 Feptr + 1 >= mb->end_subject && in match()
4399 mb->hitend = TRUE; in match()
4400 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
4403 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
4412 if (Feptr >= mb->end_subject) in match()
4418 ACROSSCHAR(Feptr < mb->end_subject, Feptr, Feptr++); in match()
4423 Feptr = mb->end_subject; /* Unlimited UTF-8 repeat */ in match()
4432 if (fc > (uint32_t)(mb->end_subject - Feptr)) in match()
4434 Feptr = mb->end_subject; in match()
4444 if (Feptr >= mb->end_subject) in match()
4452 if (++Feptr >= mb->end_subject) break; in match()
4458 (mb->bsr_convention == PCRE2_BSR_ANYCRLF || in match()
4476 if (Feptr >= mb->end_subject) in match()
4498 if (Feptr >= mb->end_subject) in match()
4518 if (Feptr >= mb->end_subject) in match()
4524 if (fc < 256 && (mb->ctypes[fc] & ctype_digit) != 0) break; in match()
4533 if (Feptr >= mb->end_subject) in match()
4539 if (fc >= 256 ||(mb->ctypes[fc] & ctype_digit) == 0) break; in match()
4548 if (Feptr >= mb->end_subject) in match()
4554 if (fc < 256 && (mb->ctypes[fc] & ctype_space) != 0) break; in match()
4563 if (Feptr >= mb->end_subject) in match()
4569 if (fc >= 256 ||(mb->ctypes[fc] & ctype_space) == 0) break; in match()
4578 if (Feptr >= mb->end_subject) in match()
4584 if (fc < 256 && (mb->ctypes[fc] & ctype_word) != 0) break; in match()
4593 if (Feptr >= mb->end_subject) in match()
4599 if (fc >= 256 || (mb->ctypes[fc] & ctype_word) == 0) break; in match()
4636 if (Feptr >= mb->end_subject) in match()
4642 if (mb->partial != 0 && /* Take care with CRLF partial */ in match()
4643 Feptr + 1 >= mb->end_subject && in match()
4648 mb->hitend = TRUE; in match()
4649 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
4658 if (fc > (uint32_t)(mb->end_subject - Feptr)) in match()
4660 Feptr = mb->end_subject; in match()
4669 if (Feptr >= mb->end_subject) in match()
4677 if (++Feptr >= mb->end_subject) break; in match()
4682 if (fc != CHAR_LF && (mb->bsr_convention == PCRE2_BSR_ANYCRLF || in match()
4696 if (Feptr >= mb->end_subject) in match()
4717 if (Feptr >= mb->end_subject) in match()
4738 if (Feptr >= mb->end_subject) in match()
4759 if (Feptr >= mb->end_subject) in match()
4780 if (Feptr >= mb->end_subject) in match()
4785 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_digit) != 0) in match()
4794 if (Feptr >= mb->end_subject) in match()
4799 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_digit) == 0) in match()
4808 if (Feptr >= mb->end_subject) in match()
4813 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_space) != 0) in match()
4822 if (Feptr >= mb->end_subject) in match()
4827 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_space) == 0) in match()
4836 if (Feptr >= mb->end_subject) in match()
4841 if (MAX_255(*Feptr) && (mb->ctypes[*Feptr] & ctype_word) != 0) in match()
4850 if (Feptr >= mb->end_subject) in match()
4855 if (!MAX_255(*Feptr) || (mb->ctypes[*Feptr] & ctype_word) == 0) in match()
4906 PCRE2_SPTR slot = mb->name_table + GET2(Fecode, 1) * mb->name_entry_size; in match()
4913 slot += mb->name_entry_size; in match()
4954 rrc = match_ref(Loffset, Lcaseless, F, mb, &length); in match()
4957 if (rrc > 0) Feptr = mb->end_subject; /* Partial match */ in match()
4979 if (Lmin == 0 || (mb->poptions & PCRE2_MATCH_UNSET_BACKREF) != 0) in match()
4988 rrc = match_ref(Loffset, Lcaseless, F, mb, &slength); in match()
4991 if (rrc > 0) Feptr = mb->end_subject; /* Partial match */ in match()
5012 rrc = match_ref(Loffset, Lcaseless, F, mb, &slength); in match()
5015 if (rrc > 0) Feptr = mb->end_subject; /* Partial match */ in match()
5036 rrc = match_ref(Loffset, Lcaseless, F, mb, &slength); in match()
5042 if (rrc > 0 && mb->partial != 0 && in match()
5043 mb->end_subject > mb->start_used_ptr) in match()
5045 mb->hitend = TRUE; in match()
5046 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
5087 (void)match_ref(Loffset, Lcaseless, F, mb, &slength); in match()
5217 if (mb->verb_ecode_ptr < next_ecode && in match()
5257 if (mb->hasthen || Frdepth == 0) in match()
5311 if (mb->verb_ecode_ptr < next_ecode && in match()
5333 bracode = mb->start_code + GET(Fecode, 1); in match()
5334 number = (bracode == mb->start_code)? 0 : GET2(bracode, 1 + LINK_SIZE); in match()
5380 mb->verb_current_recurse == (Lframe_type ^ GF_RECURSE)) in match()
5382 if (rrc == MATCH_THEN && mb->verb_ecode_ptr < next_ecode && in match()
5494 rrc = do_callout(F, mb, &length); in match()
5527 rrc = do_callout(F, mb, &length); in match()
5555 PCRE2_SPTR slot = mb->name_table + GET2(Fecode, 1) * mb->name_entry_size; in match()
5561 slot += mb->name_entry_size; in match()
5574 PCRE2_SPTR slot = mb->name_table + GET2(Fecode, 1) * mb->name_entry_size; in match()
5580 slot += mb->name_entry_size; in match()
5698 if (Feptr <= mb->check_subject) RRETURN(MATCH_NOMATCH); in match()
5709 if ((ptrdiff_t)number > Feptr - mb->start_subject) RRETURN(MATCH_NOMATCH); in match()
5715 if (Feptr < mb->start_used_ptr) mb->start_used_ptr = Feptr; in match()
5753 (char *)P->eptr - (char *)mb->start_subject); in match()
5789 if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; in match()
5799 if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; in match()
5862 Fovector[offset] = P->eptr - mb->start_subject; in match()
5863 Fovector[offset+1] = Feptr - mb->start_subject; in match()
5915 if (Feptr != mb->start_subject || (mb->moptions & PCRE2_NOTBOL) != 0) in match()
5921 if (Feptr != mb->start_subject) RRETURN(MATCH_NOMATCH); in match()
5929 if ((mb->moptions & PCRE2_NOTEOL) != 0) RRETURN(MATCH_NOMATCH); in match()
5930 if ((mb->poptions & PCRE2_DOLLAR_ENDONLY) == 0) goto ASSERT_NL_OR_EOS; in match()
5936 if (Feptr < mb->end_subject) RRETURN(MATCH_NOMATCH); in match()
5937 if (mb->partial != 0) in match()
5939 mb->hitend = TRUE; in match()
5940 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
5949 if (Feptr < mb->end_subject && in match()
5950 (!IS_NEWLINE(Feptr) || Feptr != mb->end_subject - mb->nllen)) in match()
5952 if (mb->partial != 0 && in match()
5953 Feptr + 1 >= mb->end_subject && in match()
5958 mb->hitend = TRUE; in match()
5959 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
5966 if (mb->partial != 0) in match()
5968 mb->hitend = TRUE; in match()
5969 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
5982 if ((mb->moptions & PCRE2_NOTBOL) != 0 && Feptr == mb->start_subject) in match()
5984 if (Feptr != mb->start_subject && in match()
5985 ((Feptr == mb->end_subject && in match()
5986 (mb->poptions & PCRE2_ALT_CIRCUMFLEX) == 0) || in match()
5996 if (Feptr < mb->end_subject) in match()
6000 if (mb->partial != 0 && in match()
6001 Feptr + 1 >= mb->end_subject && in match()
6006 mb->hitend = TRUE; in match()
6007 if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; in match()
6014 if ((mb->moptions & PCRE2_NOTEOL) != 0) RRETURN(MATCH_NOMATCH); in match()
6025 if (Feptr != mb->start_subject + mb->start_offset) RRETURN(MATCH_NOMATCH); in match()
6048 if (Feptr == mb->check_subject) prev_is_word = FALSE; else in match()
6060 if (lastptr < mb->start_used_ptr) mb->start_used_ptr = lastptr; in match()
6062 if ((mb->poptions & PCRE2_UCP) != 0) in match()
6072 prev_is_word = CHMAX_255(fc) && (mb->ctypes[fc] & ctype_word) != 0; in match()
6077 if (Feptr >= mb->end_subject) in match()
6088 FORWARDCHARTEST(nextptr, mb->end_subject); in match()
6094 if (nextptr > mb->last_used_ptr) mb->last_used_ptr = nextptr; in match()
6096 if ((mb->poptions & PCRE2_UCP) != 0) in match()
6106 cur_is_word = CHMAX_255(fc) && (mb->ctypes[fc] & ctype_word) != 0; in match()
6122 Fmark = mb->nomatch_mark = Fecode + 2; in match()
6127 argument. It is passed back in mb->verb_skip_ptr. If it does match, we in match()
6128 return MATCH_SKIP with mb->verb_skip_ptr now pointing to the subject in match()
6133 PRIV(strcmp)(Fecode + 2, mb->verb_skip_ptr) == 0) in match()
6135 mb->verb_skip_ptr = Feptr; /* Pass back current position */ in match()
6143 /* Record the current recursing group number in mb->verb_current_recurse in match()
6150 mb->verb_current_recurse = Fcurrent_recurse; in match()
6154 Fmark = mb->nomatch_mark = Fecode + 2; in match()
6157 mb->verb_current_recurse = Fcurrent_recurse; in match()
6163 mb->verb_current_recurse = Fcurrent_recurse; in match()
6167 Fmark = mb->nomatch_mark = Fecode + 2; in match()
6170 mb->verb_current_recurse = Fcurrent_recurse; in match()
6176 mb->verb_skip_ptr = Feptr; /* Pass back current position */ in match()
6177 mb->verb_current_recurse = Fcurrent_recurse; in match()
6185 SKIP_ARG gets to top level, the match is re-run with mb->ignore_skip_arg in match()
6189 mb->skip_arg_count++; in match()
6190 if (mb->skip_arg_count <= mb->ignore_skip_arg) in match()
6200 top, where it causes a rematch with mb->ignore_skip_arg set to the value of in match()
6201 mb->skip_arg_count. */ in match()
6203 mb->verb_skip_ptr = Fecode + 2; in match()
6204 mb->verb_current_recurse = Fcurrent_recurse; in match()
6213 mb->verb_ecode_ptr = Fecode; in match()
6214 mb->verb_current_recurse = Fcurrent_recurse; in match()
6218 Fmark = mb->nomatch_mark = Fecode + 2; in match()
6221 mb->verb_ecode_ptr = Fecode; in match()
6222 mb->verb_current_recurse = Fcurrent_recurse; in match()
6251 if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; in match()
6254 mb->cb->callout_flags |= PCRE2_CALLOUT_BACKTRACK; /* Note for callouts */ in match()
6365 /* We need to have mb as a pointer to a match block, because the IS_NEWLINE in pcre2_match()
6370 match_block *mb = &actual_match_block; in pcre2_match() local
6439 mb->partial = ((options & PCRE2_PARTIAL_HARD) != 0)? 2 : in pcre2_match()
6445 if (mb->partial != 0 && in pcre2_match()
6575 mb->check_subject = subject; in pcre2_match()
6628 /* The mb->check_subject field points to the start of UTF checking; in pcre2_match()
6631 mb->check_subject = start_match; in pcre2_match()
6641 for (i = re->max_lookbehind; i > 0 && mb->check_subject > subject; i--) in pcre2_match()
6643 mb->check_subject--; in pcre2_match()
6644 while (mb->check_subject > subject && in pcre2_match()
6646 (*mb->check_subject & 0xc0) == 0x80) in pcre2_match()
6648 (*mb->check_subject & 0xfc00) == 0xdc00) in pcre2_match()
6650 mb->check_subject--; in pcre2_match()
6660 mb->check_subject -= re->max_lookbehind; in pcre2_match()
6662 mb->check_subject = subject; in pcre2_match()
6671 match_data->rc = PRIV(valid_utf)(mb->check_subject, in pcre2_match()
6672 length - (mb->check_subject - subject), &(match_data->startchar)); in pcre2_match()
6681 match_data->startchar += mb->check_subject - subject; in pcre2_match()
6692 mb->check_subject = end_subject + 1; in pcre2_match()
6694 while (mb->check_subject < start_match && NOT_FIRSTCU(*mb->check_subject)) in pcre2_match()
6695 mb->check_subject++; in pcre2_match()
6717 mb->memctl = re->memctl; in pcre2_match()
6719 else mb->memctl = mcontext->memctl; in pcre2_match()
6730 mb->cb = &cb; in pcre2_match()
6739 mb->callout = mcontext->callout; in pcre2_match()
6740 mb->callout_data = mcontext->callout_data; in pcre2_match()
6742 mb->start_subject = subject; in pcre2_match()
6743 mb->start_offset = start_offset; in pcre2_match()
6744 mb->end_subject = end_subject; in pcre2_match()
6745 mb->hasthen = (re->flags & PCRE2_HASTHEN) != 0; in pcre2_match()
6746 mb->allowemptypartial = (re->max_lookbehind > 0) || in pcre2_match()
6748 mb->poptions = re->overall_options; /* Pattern options */ in pcre2_match()
6749 mb->ignore_skip_arg = 0; in pcre2_match()
6750 mb->mark = mb->nomatch_mark = NULL; /* In case never set */ in pcre2_match()
6755 mb->name_table = (PCRE2_UCHAR *)((uint8_t *)re + sizeof(pcre2_real_code)); in pcre2_match()
6756 mb->name_count = re->name_count; in pcre2_match()
6757 mb->name_entry_size = re->name_entry_size; in pcre2_match()
6758 mb->start_code = mb->name_table + re->name_count * re->name_entry_size; in pcre2_match()
6762 mb->bsr_convention = re->bsr_convention; in pcre2_match()
6763 mb->nltype = NLTYPE_FIXED; in pcre2_match()
6767 mb->nllen = 1; in pcre2_match()
6768 mb->nl[0] = CHAR_CR; in pcre2_match()
6772 mb->nllen = 1; in pcre2_match()
6773 mb->nl[0] = CHAR_NL; in pcre2_match()
6777 mb->nllen = 1; in pcre2_match()
6778 mb->nl[0] = CHAR_NUL; in pcre2_match()
6782 mb->nllen = 2; in pcre2_match()
6783 mb->nl[0] = CHAR_CR; in pcre2_match()
6784 mb->nl[1] = CHAR_NL; in pcre2_match()
6788 mb->nltype = NLTYPE_ANY; in pcre2_match()
6792 mb->nltype = NLTYPE_ANYCRLF; in pcre2_match()
6818 mb->heap_limit = ((mcontext->heap_limit < re->limit_heap)? in pcre2_match()
6821 mb->match_limit = (mcontext->match_limit < re->limit_match)? in pcre2_match()
6824 mb->match_limit_depth = (mcontext->depth_limit < re->limit_depth)? in pcre2_match()
6835 if (heapframes_size > mb->heap_limit) in pcre2_match()
6837 if (frame_size > mb->heap_limit ) return PCRE2_ERROR_HEAPLIMIT; in pcre2_match()
6838 heapframes_size = mb->heap_limit; in pcre2_match()
6866 mb->lcc = re->tables + lcc_offset; in pcre2_match()
6867 mb->fcc = re->tables + fcc_offset; in pcre2_match()
6868 mb->ctypes = re->tables + ctypes_offset; in pcre2_match()
6879 first_cu2 = TABLE_GET(first_cu, mb->fcc, first_cu); in pcre2_match()
6901 req_cu2 = TABLE_GET(req_cu, mb->fcc, req_cu); in pcre2_match()
6923 mb->hitend = FALSE; in pcre2_match()
7090 if (mb->partial == 0 && start_match >= mb->end_subject) in pcre2_match()
7102 if (start_match > mb->start_subject + start_offset) in pcre2_match()
7123 (mb->nltype == NLTYPE_ANY || mb->nltype == NLTYPE_ANYCRLF) && in pcre2_match()
7149 if (mb->partial == 0 && start_match >= mb->end_subject) in pcre2_match()
7159 end_subject = mb->end_subject; in pcre2_match()
7163 if (mb->partial == 0) in pcre2_match()
7278 mb->start_used_ptr = start_match; in pcre2_match()
7279 mb->last_used_ptr = start_match; in pcre2_match()
7281 mb->moptions = options | fragment_options; in pcre2_match()
7283 mb->moptions = options; in pcre2_match()
7285 mb->match_call_count = 0; in pcre2_match()
7286 mb->end_offset_top = 0; in pcre2_match()
7287 mb->skip_arg_count = 0; in pcre2_match()
7289 rc = match(start_match, mb->start_code, re->top_bracket, frame_size, in pcre2_match()
7290 match_data, mb); in pcre2_match()
7292 if (mb->hitend && start_partial == NULL) in pcre2_match()
7294 start_partial = mb->start_used_ptr; in pcre2_match()
7309 mb->ignore_skip_arg = mb->skip_arg_count; in pcre2_match()
7316 if (mb->verb_skip_ptr > start_match) in pcre2_match()
7318 new_start_match = mb->verb_skip_ptr; in pcre2_match()
7329 mb->ignore_skip_arg = 0; in pcre2_match()
7382 (mb->nltype == NLTYPE_ANY || in pcre2_match()
7383 mb->nltype == NLTYPE_ANYCRLF || in pcre2_match()
7384 mb->nllen == 2)) in pcre2_match()
7387 mb->mark = NULL; /* Reset for start of next match attempt */ in pcre2_match()
7444 mb->check_subject = start_match; in pcre2_match()
7452 mb->end_subject = end_subject = true_end_subject; in pcre2_match()
7462 mb->end_subject = end_subject = start_match + match_data->startchar; in pcre2_match()
7476 match_data->mark = mb->mark; in pcre2_match()
7486 match_data->rc = ((int)mb->end_offset_top >= 2 * match_data->oveccount)? in pcre2_match()
7487 0 : (int)mb->end_offset_top/2 + 1; in pcre2_match()
7489 match_data->leftchar = mb->start_used_ptr - subject; in pcre2_match()
7490 match_data->rightchar = ((mb->last_used_ptr > mb->end_match_ptr)? in pcre2_match()
7491 mb->last_used_ptr : mb->end_match_ptr) - subject; in pcre2_match()
7509 match_data->mark = mb->nomatch_mark; in pcre2_match()