Lines Matching refs:md

46 #define NLBLOCK md             /* Block containing newline information */
129 pchars(const pcre_uchar *p, int length, BOOL is_subject, match_data *md) in pchars() argument
132 BOOL utf = md->utf; in pchars()
133 if (is_subject && length > md->end_subject - p) length = md->end_subject - p; in pchars()
163 match_ref(int offset, register PCRE_PUCHAR eptr, int length, match_data *md, in match_ref() argument
167 register PCRE_PUCHAR p = md->start_subject + md->offset_vector[offset]; in match_ref()
169 BOOL utf = md->utf; in match_ref()
173 if (eptr >= md->end_subject) in match_ref()
178 pchars(eptr, length, TRUE, md); in match_ref()
181 pchars(p, length, FALSE, md); in match_ref()
213 if (eptr >= md->end_subject) return -2; /* Partial match */ in match_ref()
237 if (eptr >= md->end_subject) return -2; /* Partial match */ in match_ref()
240 if (TABLE_GET(cp, md->lcc, cp) != TABLE_GET(cc, md->lcc, cc)) return -1; in match_ref()
254 if (eptr >= md->end_subject) return -2; /* Partial match */ in match_ref()
472 if (md->partial != 0 && eptr >= md->end_subject && \
473 eptr > md->start_used_ptr) \
475 md->hitend = TRUE; \
476 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); \
480 if (md->partial != 0 && eptr > md->start_used_ptr) \
482 md->hitend = TRUE; \
483 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); \
512 PCRE_PUCHAR mstart, int offset_top, match_data *md, eptrblock *eptrb, in match() argument
536 heapframe *frame = (heapframe *)md->match_frames_base; in match()
714 utf = md->utf; /* Local copy of the flag */ in match()
722 if (md->match_call_count++ >= md->match_limit) RRETURN(PCRE_ERROR_MATCHLIMIT); in match()
723 if (rdepth >= md->match_limit_recursion) RRETURN(PCRE_ERROR_RECURSIONLIMIT); in match()
737 if (md->match_function_type == MATCH_CBEGROUP) in match()
742 md->match_function_type = 0; in match()
755 md->nomatch_mark = ecode + 2; in match()
756 md->mark = NULL; /* In case previously set by assertion */ in match()
757 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, md, in match()
760 md->mark == NULL) md->mark = ecode + 2; in match()
770 STRCMP_UC_UC_TEST(ecode + 2, md->start_match_ptr) == 0) in match()
772 md->start_match_ptr = eptr; in match()
781 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
787 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
793 md->nomatch_mark = ecode + 2; in match()
794 md->mark = NULL; /* In case previously set by assertion */ in match()
795 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, md, in match()
798 md->mark == NULL) md->mark = ecode + 2; in match()
803 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
806 md->start_match_ptr = eptr; /* Pass back current position */ in match()
818 md->skip_arg_count++; in match()
819 if (md->skip_arg_count <= md->ignore_skip_arg) in match()
824 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, md, in match()
833 md->start_match_ptr = ecode + 2; in match()
841 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
844 md->start_match_ptr = ecode; in match()
848 md->nomatch_mark = ecode + 2; in match()
849 md->mark = NULL; /* In case previously set by assertion */ in match()
851 md, eptrb, RM58); in match()
853 md->mark == NULL) md->mark = ecode + 2; in match()
855 md->start_match_ptr = ecode; in match()
874 save_mark = md->mark; in match()
877 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM64); in match()
880 mstart = md->start_match_ptr; in match()
886 if (md->start_match_ptr < next && in match()
893 md->mark = save_mark; in match()
906 offset_top = md->end_offset_top; in match()
907 eptr = md->end_match_ptr; in match()
926 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM65); in match()
933 RMATCH(eptr, prev, offset_top, md, eptrb, RM66); in match()
962 pchars(eptr, 16, TRUE, md); in match()
966 if (offset < md->offset_max) in match()
968 save_offset1 = md->offset_vector[offset]; in match()
969 save_offset2 = md->offset_vector[offset+1]; in match()
970 save_offset3 = md->offset_vector[md->offset_end - number]; in match()
971 save_capture_last = md->capture_last; in match()
972 save_mark = md->mark; in match()
975 md->offset_vector[md->offset_end - number] = in match()
976 (int)(eptr - md->start_subject); in match()
980 if (op >= OP_SBRA) md->match_function_type = MATCH_CBEGROUP; in match()
981 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
999 if (md->start_match_ptr < next && in match()
1007 md->capture_last = save_capture_last; in match()
1009 md->mark = save_mark; in match()
1014 md->offset_vector[offset] = save_offset1; in match()
1015 md->offset_vector[offset+1] = save_offset2; in match()
1016 md->offset_vector[md->offset_end - number] = save_offset3; in match()
1062 md->match_function_type = MATCH_CBEGROUP; in match()
1068 else if (!md->hasthen && ecode[GET(ecode, 1)] != OP_ALT) in match()
1076 save_mark = md->mark; in match()
1077 save_capture_last = md->capture_last; in match()
1078 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, eptrb, in match()
1087 if (md->start_match_ptr < next && in match()
1102 if (md->once_target == scode) rrc = MATCH_NOMATCH; in match()
1107 md->mark = save_mark; in match()
1109 md->capture_last = save_capture_last; in match()
1133 pchars(eptr, 16, TRUE, md); in match()
1137 if (offset >= md->offset_max) goto POSSESSIVE_NON_CAPTURE; in match()
1140 code_offset = (int)(ecode - md->start_code); in match()
1142 save_offset1 = md->offset_vector[offset]; in match()
1143 save_offset2 = md->offset_vector[offset+1]; in match()
1144 save_offset3 = md->offset_vector[md->offset_end - number]; in match()
1145 save_capture_last = md->capture_last; in match()
1160 md->offset_vector[md->offset_end - number] = in match()
1161 (int)(eptr - md->start_subject); in match()
1162 if (op >= OP_SBRA) md->match_function_type = MATCH_CBEGROUP; in match()
1163 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
1167 offset_top = md->end_offset_top; in match()
1168 ecode = md->start_code + code_offset; in match()
1169 save_capture_last = md->capture_last; in match()
1171 mstart = md->start_match_ptr; /* In case \K changed it */ in match()
1172 if (eptr == md->end_match_ptr) /* Matched an empty string */ in match()
1177 eptr = md->end_match_ptr; in match()
1187 if (md->start_match_ptr < next && in match()
1193 md->capture_last = save_capture_last; in match()
1200 md->offset_vector[offset] = save_offset1; in match()
1201 md->offset_vector[offset+1] = save_offset2; in match()
1202 md->offset_vector[md->offset_end - number] = save_offset3; in match()
1224 code_offset = (int)(ecode - md->start_code); in match()
1225 save_capture_last = md->capture_last; in match()
1229 if (op >= OP_SBRA) md->match_function_type = MATCH_CBEGROUP; in match()
1230 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, md, in match()
1234 offset_top = md->end_offset_top; in match()
1235 ecode = md->start_code + code_offset; in match()
1237 mstart = md->start_match_ptr; /* In case \K reset it */ in match()
1238 if (eptr == md->end_match_ptr) /* Matched an empty string */ in match()
1243 eptr = md->end_match_ptr; in match()
1253 if (md->start_match_ptr < next && in match()
1261 md->capture_last = save_capture_last; in match()
1299 cb.offset_vector = md->offset_vector; in match()
1301 cb.subject = (PCRE_SPTR)md->start_subject; in match()
1303 cb.subject = (PCRE_SPTR16)md->start_subject; in match()
1305 cb.subject = (PCRE_SPTR32)md->start_subject; in match()
1307 cb.subject_length = (int)(md->end_subject - md->start_subject); in match()
1308 cb.start_match = (int)(mstart - md->start_subject); in match()
1309 cb.current_position = (int)(eptr - md->start_subject); in match()
1313 cb.capture_last = md->capture_last & CAPLMASK; in match()
1316 cb.callout_data = md->callout_data; in match()
1317 cb.mark = md->nomatch_mark; in match()
1335 if (md->recursive != NULL) /* Not recursing => FALSE */ in match()
1338 condition = (recno == RREF_ANY || recno == md->recursive->group_num); in match()
1343 if (md->recursive != NULL) in match()
1346 pcre_uchar *slot = md->name_table + GET2(ecode, 1) * md->name_entry_size; in match()
1350 condition = recno == md->recursive->group_num; in match()
1352 slot += md->name_entry_size; in match()
1359 condition = offset < offset_top && md->offset_vector[offset] >= 0; in match()
1365 pcre_uchar *slot = md->name_table + GET2(ecode, 1) * md->name_entry_size; in match()
1369 condition = offset < offset_top && md->offset_vector[offset] >= 0; in match()
1371 slot += md->name_entry_size; in match()
1385 md->match_function_type = MATCH_CONDASSERT; in match()
1386 RMATCH(eptr, ecode, offset_top, md, NULL, RM3); in match()
1389 if (md->end_offset_top > offset_top) in match()
1390 offset_top = md->end_offset_top; /* Captures may have happened */ in match()
1436 md->match_function_type = MATCH_CBEGROUP; in match()
1437 RMATCH(eptr, ecode, offset_top, md, eptrb, RM49); in match()
1461 md->capture_last = (md->capture_last & OVFLMASK) | number; in match()
1462 if (offset >= md->offset_max) md->capture_last |= OVFLBIT; else in match()
1464 md->offset_vector[offset] = in match()
1465 md->offset_vector[md->offset_end - number]; in match()
1466 md->offset_vector[offset+1] = (int)(eptr - md->start_subject); in match()
1474 register int *iptr = md->offset_vector + offset_top; in match()
1475 register int *iend = md->offset_vector + offset; in match()
1496 md->recursive == NULL && in match()
1497 (md->notempty || in match()
1498 (md->notempty_atstart && in match()
1499 mstart == md->start_subject + md->start_offset))) in match()
1504 md->end_match_ptr = eptr; /* Record where we ended */ in match()
1505 md->end_offset_top = offset_top; /* and how many extracts were taken */ in match()
1506 md->start_match_ptr = mstart; /* and the start (\K can modify) */ in match()
1527 save_mark = md->mark; in match()
1528 if (md->match_function_type == MATCH_CONDASSERT) in match()
1531 md->match_function_type = 0; in match()
1539 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, NULL, RM4); in match()
1546 mstart = md->start_match_ptr; /* In case \K reset it */ in match()
1552 md->mark = save_mark; in match()
1560 if (md->start_match_ptr < next && in match()
1590 offset_top = md->end_offset_top; in match()
1598 save_mark = md->mark; in match()
1599 if (md->match_function_type == MATCH_CONDASSERT) in match()
1602 md->match_function_type = 0; in match()
1610 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, NULL, RM5); in match()
1611 md->mark = save_mark; /* Always restore the mark setting */ in match()
1627 if (md->start_match_ptr < next && in match()
1679 if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); in match()
1690 if (eptr < md->start_subject) RRETURN(MATCH_NOMATCH); in match()
1695 if (eptr < md->start_used_ptr) md->start_used_ptr = eptr; in match()
1709 cb.offset_vector = md->offset_vector; in match()
1711 cb.subject = (PCRE_SPTR)md->start_subject; in match()
1713 cb.subject = (PCRE_SPTR16)md->start_subject; in match()
1715 cb.subject = (PCRE_SPTR32)md->start_subject; in match()
1717 cb.subject_length = (int)(md->end_subject - md->start_subject); in match()
1718 cb.start_match = (int)(mstart - md->start_subject); in match()
1719 cb.current_position = (int)(eptr - md->start_subject); in match()
1723 cb.capture_last = md->capture_last & CAPLMASK; in match()
1726 cb.callout_data = md->callout_data; in match()
1727 cb.mark = md->nomatch_mark; in match()
1756 callpat = md->start_code + GET(ecode, 1); in match()
1757 recno = (callpat == md->start_code)? 0 : in match()
1764 for (ri = md->recursive; ri != NULL; ri = ri->prevrec) in match()
1771 new_recursive.saved_capture_last = md->capture_last; in match()
1773 new_recursive.prevrec = md->recursive; in match()
1774 md->recursive = &new_recursive; in match()
1782 new_recursive.saved_max = md->offset_end; in match()
1791 memcpy(new_recursive.offset_save, md->offset_vector, in match()
1803 if (cbegroup) md->match_function_type = MATCH_CBEGROUP; in match()
1805 md, eptrb, RM6); in match()
1806 memcpy(md->offset_vector, new_recursive.offset_save, in match()
1808 md->capture_last = new_recursive.saved_capture_last; in match()
1809 md->recursive = new_recursive.prevrec; in match()
1820 eptr = md->end_match_ptr; in match()
1821 mstart = md->start_match_ptr; in match()
1846 md->recursive = &new_recursive; in match()
1852 md->recursive = new_recursive.prevrec; in match()
1876 RMATCH(eptr, next, offset_top, md, eptrb, RM10); in match()
1885 RMATCH(eptr, next + 1+LINK_SIZE, offset_top, md, eptrb, RM11); in match()
1932 md->end_match_ptr = eptr; /* For ONCE_NC */ in match()
1933 md->end_offset_top = offset_top; in match()
1934 md->start_match_ptr = mstart; in match()
1959 if (md->recursive != NULL && md->recursive->group_num == number) in match()
1961 md->end_match_ptr = eptr; in match()
1962 md->start_match_ptr = mstart; in match()
1968 md->capture_last = (md->capture_last & OVFLMASK) | number; in match()
1969 if (offset >= md->offset_max) md->capture_last |= OVFLBIT; else in match()
1983 register int *iptr = md->offset_vector + offset_top; in match()
1984 register int *iend = md->offset_vector + offset; in match()
1990 md->offset_vector[offset] = in match()
1991 md->offset_vector[md->offset_end - number]; in match()
1992 md->offset_vector[offset+1] = (int)(eptr - md->start_subject); in match()
2004 md->start_match_ptr = mstart; /* In case \K reset it */ in match()
2005 md->end_match_ptr = eptr; in match()
2006 md->end_offset_top = offset_top; in match()
2023 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM12); in match()
2025 md->once_target = prev; /* Level at which to change to MATCH_NOMATCH */ in match()
2040 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM7); in match()
2044 RMATCH(eptr, prev, offset_top, md, eptrb, RM8); in match()
2046 md->once_target = prev; /* Level at which to change to MATCH_NOMATCH */ in match()
2051 RMATCH(eptr, prev, offset_top, md, eptrb, RM50); in match()
2059 RMATCH(eptr, prev, offset_top, md, eptrb, RM13); in match()
2060 if (rrc == MATCH_ONCE && md->once_target == prev) rrc = MATCH_NOMATCH; in match()
2064 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, md, eptrb, RM9); in match()
2066 md->once_target = prev; in match()
2077 if (md->notbol && eptr == md->start_subject) RRETURN(MATCH_NOMATCH); in match()
2082 if (eptr != md->start_subject) RRETURN(MATCH_NOMATCH); in match()
2089 if (md->notbol && eptr == md->start_subject) RRETURN(MATCH_NOMATCH); in match()
2090 if (eptr != md->start_subject && in match()
2091 (eptr == md->end_subject || !WAS_NEWLINE(eptr))) in match()
2099 if (eptr != md->start_subject + md->start_offset) RRETURN(MATCH_NOMATCH); in match()
2114 if (eptr < md->end_subject) in match()
2118 if (md->partial != 0 && in match()
2119 eptr + 1 >= md->end_subject && in match()
2124 md->hitend = TRUE; in match()
2125 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
2132 if (md->noteol) RRETURN(MATCH_NOMATCH); in match()
2142 if (md->noteol) RRETURN(MATCH_NOMATCH); in match()
2143 if (!md->endonly) goto ASSERT_NL_OR_EOS; in match()
2150 if (eptr < md->end_subject) RRETURN(MATCH_NOMATCH); in match()
2159 if (eptr < md->end_subject && in match()
2160 (!IS_NEWLINE(eptr) || eptr != md->end_subject - md->nllen)) in match()
2162 if (md->partial != 0 && in match()
2163 eptr + 1 >= md->end_subject && in match()
2168 md->hitend = TRUE; in match()
2169 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
2196 if (eptr == md->start_subject) prev_is_word = FALSE; else in match()
2200 if (lastptr < md->start_used_ptr) md->start_used_ptr = lastptr; in match()
2203 if (md->use_ucp) in match()
2213 prev_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0; in match()
2218 if (eptr >= md->end_subject) in match()
2227 if (md->use_ucp) in match()
2237 cur_is_word = c < 256 && (md->ctypes[c] & ctype_word) != 0; in match()
2249 if (eptr == md->start_subject) prev_is_word = FALSE; else in match()
2251 if (eptr <= md->start_used_ptr) md->start_used_ptr = eptr - 1; in match()
2253 if (md->use_ucp) in match()
2265 && ((md->ctypes[eptr[-1]] & ctype_word) != 0); in match()
2270 if (eptr >= md->end_subject) in match()
2277 if (md->use_ucp) in match()
2289 && ((md->ctypes[*eptr] & ctype_word) != 0); in match()
2305 if (md->partial != 0 && in match()
2306 eptr + 1 >= md->end_subject && in match()
2311 md->hitend = TRUE; in match()
2312 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
2320 if (eptr >= md->end_subject) /* DO NOT merge the eptr++ here; it must */ in match()
2327 if (utf) ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
2336 if (eptr >= md->end_subject) /* DO NOT merge the eptr++ here; it must */ in match()
2346 if (eptr >= md->end_subject) in match()
2356 (md->ctypes[c] & ctype_digit) != 0 in match()
2363 if (eptr >= md->end_subject) in match()
2373 (md->ctypes[c] & ctype_digit) == 0 in match()
2380 if (eptr >= md->end_subject) in match()
2390 (md->ctypes[c] & ctype_space) != 0 in match()
2397 if (eptr >= md->end_subject) in match()
2407 (md->ctypes[c] & ctype_space) == 0 in match()
2414 if (eptr >= md->end_subject) in match()
2424 (md->ctypes[c] & ctype_word) != 0 in match()
2431 if (eptr >= md->end_subject) in match()
2441 (md->ctypes[c] & ctype_word) == 0 in match()
2448 if (eptr >= md->end_subject) in match()
2459 if (eptr >= md->end_subject) in match()
2476 if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); in match()
2483 if (eptr >= md->end_subject) in match()
2498 if (eptr >= md->end_subject) in match()
2513 if (eptr >= md->end_subject) in match()
2528 if (eptr >= md->end_subject) in match()
2548 if (eptr >= md->end_subject) in match()
2653 if (eptr >= md->end_subject) in match()
2663 while (eptr < md->end_subject) in match()
2707 pcre_uchar *slot = md->name_table + GET2(ecode, 1) * md->name_entry_size; in match()
2713 length = (md->jscript_compat)? 0 : -1; in match()
2719 if (offset < offset_top && md->offset_vector[offset] >= 0) in match()
2721 length = md->offset_vector[offset+1] - md->offset_vector[offset]; in match()
2724 slot += md->name_entry_size; in match()
2734 if (offset >= offset_top || md->offset_vector[offset] < 0) in match()
2735 length = (md->jscript_compat)? 0 : -1; in match()
2737 length = md->offset_vector[offset+1] - md->offset_vector[offset]; in match()
2767 if ((length = match_ref(offset, eptr, length, md, caseless)) < 0) in match()
2769 if (length == -2) eptr = md->end_subject; /* Partial match */ in match()
2793 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) in match()
2795 if (slength == -2) eptr = md->end_subject; /* Partial match */ in match()
2814 RMATCH(eptr, ecode, offset_top, md, eptrb, RM14); in match()
2817 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) in match()
2819 if (slength == -2) eptr = md->end_subject; /* Partial match */ in match()
2836 if ((slength = match_ref(offset, eptr, length, md, caseless)) < 0) in match()
2841 if (slength == -2 && md->partial != 0 && in match()
2842 md->end_subject > md->start_used_ptr) in match()
2844 md->hitend = TRUE; in match()
2845 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
2854 RMATCH(eptr, ecode, offset_top, md, eptrb, RM15); in match()
2924 if (eptr >= md->end_subject) in match()
2944 if (eptr >= md->end_subject) in match()
2976 RMATCH(eptr, ecode, offset_top, md, eptrb, RM16); in match()
2979 if (eptr >= md->end_subject) in match()
2999 RMATCH(eptr, ecode, offset_top, md, eptrb, RM17); in match()
3002 if (eptr >= md->end_subject) in match()
3033 if (eptr >= md->end_subject) in match()
3052 RMATCH(eptr, ecode, offset_top, md, eptrb, RM18); in match()
3064 if (eptr >= md->end_subject) in match()
3085 RMATCH(eptr, ecode, offset_top, md, eptrb, RM19); in match()
3148 if (eptr >= md->end_subject) in match()
3169 RMATCH(eptr, ecode, offset_top, md, eptrb, RM20); in match()
3172 if (eptr >= md->end_subject) in match()
3191 if (eptr >= md->end_subject) in match()
3209 RMATCH(eptr, ecode, offset_top, md, eptrb, RM21); in match()
3232 if (length > md->end_subject - eptr) in match()
3243 if (md->end_subject - eptr < 1) in match()
3257 if (eptr >= md->end_subject) in match()
3278 if (md->lcc[fc] != TABLE_GET(cc, md->lcc, cc)) RRETURN(MATCH_NOMATCH); in match()
3310 if (TABLE_GET(ecode[1], md->lcc, ecode[1]) in match()
3311 != TABLE_GET(*eptr, md->lcc, *eptr)) RRETURN(MATCH_NOMATCH); in match()
3423 if (eptr <= md->end_subject - length && in match()
3427 eptr <= md->end_subject - oclength && in match()
3443 RMATCH(eptr, ecode, offset_top, md, eptrb, RM22); in match()
3446 if (eptr <= md->end_subject - length && in match()
3450 eptr <= md->end_subject - oclength && in match()
3467 if (eptr <= md->end_subject - length && in match()
3471 eptr <= md->end_subject - oclength && in match()
3485 RMATCH(eptr, ecode, offset_top, md, eptrb, RM23); in match()
3523 foc = md->fcc[fc]; in match()
3535 foc = TABLE_GET(fc, md->fcc, fc); in match()
3541 if (eptr >= md->end_subject) in match()
3556 RMATCH(eptr, ecode, offset_top, md, eptrb, RM24); in match()
3559 if (eptr >= md->end_subject) in match()
3576 if (eptr >= md->end_subject) in match()
3589 RMATCH(eptr, ecode, offset_top, md, eptrb, RM25); in match()
3603 if (eptr >= md->end_subject) in match()
3617 RMATCH(eptr, ecode, offset_top, md, eptrb, RM26); in match()
3620 if (eptr >= md->end_subject) in match()
3634 if (eptr >= md->end_subject) in match()
3646 RMATCH(eptr, ecode, offset_top, md, eptrb, RM27); in match()
3660 if (eptr >= md->end_subject) in match()
3688 och = TABLE_GET(ch, md->fcc, ch); in match()
3697 if (ch == c || (op == OP_NOTI && TABLE_GET(ch, md->fcc, ch) == c)) in match()
3804 foc = TABLE_GET(fc, md->fcc, fc); in match()
3812 if (eptr >= md->end_subject) in match()
3827 if (eptr >= md->end_subject) in match()
3847 RMATCH(eptr, ecode, offset_top, md, eptrb, RM28); in match()
3850 if (eptr >= md->end_subject) in match()
3865 RMATCH(eptr, ecode, offset_top, md, eptrb, RM29); in match()
3868 if (eptr >= md->end_subject) in match()
3893 if (eptr >= md->end_subject) in match()
3906 RMATCH(eptr, ecode, offset_top, md, eptrb, RM30); in match()
3918 if (eptr >= md->end_subject) in match()
3930 RMATCH(eptr, ecode, offset_top, md, eptrb, RM31); in match()
3949 if (eptr >= md->end_subject) in match()
3964 if (eptr >= md->end_subject) in match()
3983 RMATCH(eptr, ecode, offset_top, md, eptrb, RM32); in match()
3986 if (eptr >= md->end_subject) in match()
4001 RMATCH(eptr, ecode, offset_top, md, eptrb, RM33); in match()
4004 if (eptr >= md->end_subject) in match()
4028 if (eptr >= md->end_subject) in match()
4041 RMATCH(eptr, ecode, offset_top, md, eptrb, RM34); in match()
4053 if (eptr >= md->end_subject) in match()
4065 RMATCH(eptr, ecode, offset_top, md, eptrb, RM35); in match()
4167 if (eptr >= md->end_subject) in match()
4180 if (eptr >= md->end_subject) in match()
4197 if (eptr >= md->end_subject) in match()
4211 if (eptr >= md->end_subject) in match()
4225 if (eptr >= md->end_subject) in match()
4240 if (eptr >= md->end_subject) in match()
4260 if (eptr >= md->end_subject) in match()
4285 if (eptr >= md->end_subject) in match()
4302 if (eptr >= md->end_subject) in match()
4322 if (eptr >= md->end_subject) in match()
4349 if (eptr >= md->end_subject) in match()
4359 while (eptr < md->end_subject) in match()
4384 if (eptr >= md->end_subject) in match()
4390 if (md->partial != 0 && in match()
4391 eptr + 1 >= md->end_subject && in match()
4396 md->hitend = TRUE; in match()
4397 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
4400 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
4407 if (eptr >= md->end_subject) in match()
4413 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
4418 if (eptr > md->end_subject - min) RRETURN(MATCH_NOMATCH); in match()
4425 if (eptr >= md->end_subject) in match()
4436 if (eptr < md->end_subject && UCHAR21(eptr) == CHAR_LF) eptr++; in match()
4449 if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); in match()
4458 if (eptr >= md->end_subject) in match()
4475 if (eptr >= md->end_subject) in match()
4492 if (eptr >= md->end_subject) in match()
4509 if (eptr >= md->end_subject) in match()
4526 if (eptr >= md->end_subject) in match()
4532 if (c < 128 && (md->ctypes[c] & ctype_digit) != 0) in match()
4541 if (eptr >= md->end_subject) in match()
4547 if (cc >= 128 || (md->ctypes[cc] & ctype_digit) == 0) in match()
4558 if (eptr >= md->end_subject) in match()
4564 if (cc < 128 && (md->ctypes[cc] & ctype_space) != 0) in match()
4567 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
4575 if (eptr >= md->end_subject) in match()
4581 if (cc >= 128 || (md->ctypes[cc] & ctype_space) == 0) in match()
4592 if (eptr >= md->end_subject) in match()
4598 if (cc < 128 && (md->ctypes[cc] & ctype_word) != 0) in match()
4601 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
4609 if (eptr >= md->end_subject) in match()
4615 if (cc >= 128 || (md->ctypes[cc] & ctype_word) == 0) in match()
4637 if (eptr >= md->end_subject) in match()
4643 if (md->partial != 0 && in match()
4644 eptr + 1 >= md->end_subject && in match()
4649 md->hitend = TRUE; in match()
4650 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
4657 if (eptr > md->end_subject - min) in match()
4666 if (eptr > md->end_subject - min) in match()
4677 if (eptr >= md->end_subject) in match()
4687 if (eptr < md->end_subject && *eptr == CHAR_LF) eptr++; in match()
4700 if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); in match()
4709 if (eptr >= md->end_subject) in match()
4729 if (eptr >= md->end_subject) in match()
4749 if (eptr >= md->end_subject) in match()
4769 if (eptr >= md->end_subject) in match()
4789 if (eptr >= md->end_subject) in match()
4794 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_digit) != 0) in match()
4803 if (eptr >= md->end_subject) in match()
4808 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_digit) == 0) in match()
4817 if (eptr >= md->end_subject) in match()
4822 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_space) != 0) in match()
4831 if (eptr >= md->end_subject) in match()
4836 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_space) == 0) in match()
4845 if (eptr >= md->end_subject) in match()
4850 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_word) != 0) in match()
4859 if (eptr >= md->end_subject) in match()
4864 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_word) == 0) in match()
4893 RMATCH(eptr, ecode, offset_top, md, eptrb, RM36); in match()
4896 if (eptr >= md->end_subject) in match()
4910 RMATCH(eptr, ecode, offset_top, md, eptrb, RM37); in match()
4913 if (eptr >= md->end_subject) in match()
4930 RMATCH(eptr, ecode, offset_top, md, eptrb, RM38); in match()
4933 if (eptr >= md->end_subject) in match()
4947 RMATCH(eptr, ecode, offset_top, md, eptrb, RM39); in match()
4950 if (eptr >= md->end_subject) in match()
4964 RMATCH(eptr, ecode, offset_top, md, eptrb, RM40); in match()
4967 if (eptr >= md->end_subject) in match()
4982 RMATCH(eptr, ecode, offset_top, md, eptrb, RM59); in match()
4985 if (eptr >= md->end_subject) in match()
5005 RMATCH(eptr, ecode, offset_top, md, eptrb, RM61); in match()
5008 if (eptr >= md->end_subject) in match()
5033 RMATCH(eptr, ecode, offset_top, md, eptrb, RM62); in match()
5036 if (eptr >= md->end_subject) in match()
5055 RMATCH(eptr, ecode, offset_top, md, eptrb, RM67); in match()
5058 if (eptr >= md->end_subject) in match()
5078 RMATCH(eptr, ecode, offset_top, md, eptrb, RM60); in match()
5081 if (eptr >= md->end_subject) in match()
5107 RMATCH(eptr, ecode, offset_top, md, eptrb, RM41); in match()
5110 if (eptr >= md->end_subject) in match()
5120 while (eptr < md->end_subject) in match()
5141 RMATCH(eptr, ecode, offset_top, md, eptrb, RM42); in match()
5144 if (eptr >= md->end_subject) in match()
5155 if (md->partial != 0 && /* Take care with CRLF partial */ in match()
5156 eptr >= md->end_subject && in match()
5161 md->hitend = TRUE; in match()
5162 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
5175 if (eptr < md->end_subject && UCHAR21(eptr) == CHAR_LF) eptr++; in match()
5188 if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); in match()
5226 if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) in match()
5231 if (c >= 256 || (md->ctypes[c] & ctype_digit) == 0) in match()
5236 if (c < 256 && (md->ctypes[c] & ctype_space) != 0) in match()
5241 if (c >= 256 || (md->ctypes[c] & ctype_space) == 0) in match()
5246 if (c < 256 && (md->ctypes[c] & ctype_word) != 0) in match()
5251 if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) in match()
5266 RMATCH(eptr, ecode, offset_top, md, eptrb, RM43); in match()
5269 if (eptr >= md->end_subject) in match()
5280 if (md->partial != 0 && /* Take care with CRLF partial */ in match()
5281 eptr >= md->end_subject && in match()
5286 md->hitend = TRUE; in match()
5287 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
5300 if (eptr < md->end_subject && *eptr == CHAR_LF) eptr++; in match()
5313 if (md->bsr_anycrlf) RRETURN(MATCH_NOMATCH); in match()
5367 if (MAX_255(c) && (md->ctypes[c] & ctype_digit) != 0) RRETURN(MATCH_NOMATCH); in match()
5371 if (!MAX_255(c) || (md->ctypes[c] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); in match()
5375 if (MAX_255(c) && (md->ctypes[c] & ctype_space) != 0) RRETURN(MATCH_NOMATCH); in match()
5379 if (!MAX_255(c) || (md->ctypes[c] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); in match()
5383 if (MAX_255(c) && (md->ctypes[c] & ctype_word) != 0) RRETURN(MATCH_NOMATCH); in match()
5387 if (!MAX_255(c) || (md->ctypes[c] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); in match()
5415 if (eptr >= md->end_subject) in match()
5431 if (eptr >= md->end_subject) in match()
5450 if (eptr >= md->end_subject) in match()
5465 if (eptr >= md->end_subject) in match()
5480 if (eptr >= md->end_subject) in match()
5496 if (eptr >= md->end_subject) in match()
5518 if (eptr >= md->end_subject) in match()
5546 if (eptr >= md->end_subject) in match()
5565 if (eptr >= md->end_subject) in match()
5588 if (eptr >= md->end_subject) in match()
5612 RMATCH(eptr, ecode, offset_top, md, eptrb, RM44); in match()
5626 if (eptr >= md->end_subject) in match()
5636 while (eptr < md->end_subject) in match()
5664 RMATCH(eptr, ecode, offset_top, md, eptrb, RM45); in match()
5707 if (eptr >= md->end_subject) in match()
5713 if (md->partial != 0 && /* Take care with CRLF partial */ in match()
5714 eptr + 1 >= md->end_subject && in match()
5719 md->hitend = TRUE; in match()
5720 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
5723 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
5732 if (eptr >= md->end_subject) in match()
5738 ACROSSCHAR(eptr < md->end_subject, *eptr, eptr++); in match()
5743 eptr = md->end_subject; /* Unlimited UTF-8 repeat */ in match()
5752 if (c > (unsigned int)(md->end_subject - eptr)) in match()
5754 eptr = md->end_subject; in match()
5764 if (eptr >= md->end_subject) in match()
5772 if (++eptr >= md->end_subject) break; in match()
5778 (md->bsr_anycrlf || in match()
5796 if (eptr >= md->end_subject) in match()
5818 if (eptr >= md->end_subject) in match()
5838 if (eptr >= md->end_subject) in match()
5844 if (c < 256 && (md->ctypes[c] & ctype_digit) != 0) break; in match()
5853 if (eptr >= md->end_subject) in match()
5859 if (c >= 256 ||(md->ctypes[c] & ctype_digit) == 0) break; in match()
5868 if (eptr >= md->end_subject) in match()
5874 if (c < 256 && (md->ctypes[c] & ctype_space) != 0) break; in match()
5883 if (eptr >= md->end_subject) in match()
5889 if (c >= 256 ||(md->ctypes[c] & ctype_space) == 0) break; in match()
5898 if (eptr >= md->end_subject) in match()
5904 if (c < 256 && (md->ctypes[c] & ctype_word) != 0) break; in match()
5913 if (eptr >= md->end_subject) in match()
5919 if (c >= 256 || (md->ctypes[c] & ctype_word) == 0) break; in match()
5932 RMATCH(eptr, ecode, offset_top, md, eptrb, RM46); in match()
5949 if (eptr >= md->end_subject) in match()
5955 if (md->partial != 0 && /* Take care with CRLF partial */ in match()
5956 eptr + 1 >= md->end_subject && in match()
5961 md->hitend = TRUE; in match()
5962 if (md->partial > 1) RRETURN(PCRE_ERROR_PARTIAL); in match()
5971 if (c > (unsigned int)(md->end_subject - eptr)) in match()
5973 eptr = md->end_subject; in match()
5982 if (eptr >= md->end_subject) in match()
5990 if (++eptr >= md->end_subject) break; in match()
5995 if (c != CHAR_LF && (md->bsr_anycrlf || in match()
6009 if (eptr >= md->end_subject) in match()
6030 if (eptr >= md->end_subject) in match()
6051 if (eptr >= md->end_subject) in match()
6072 if (eptr >= md->end_subject) in match()
6093 if (eptr >= md->end_subject) in match()
6098 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_digit) != 0) break; in match()
6106 if (eptr >= md->end_subject) in match()
6111 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_digit) == 0) break; in match()
6119 if (eptr >= md->end_subject) in match()
6124 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_space) != 0) break; in match()
6132 if (eptr >= md->end_subject) in match()
6137 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_space) == 0) break; in match()
6145 if (eptr >= md->end_subject) in match()
6150 if (MAX_255(*eptr) && (md->ctypes[*eptr] & ctype_word) != 0) break; in match()
6158 if (eptr >= md->end_subject) in match()
6163 if (!MAX_255(*eptr) || (md->ctypes[*eptr] & ctype_word) == 0) break; in match()
6176 RMATCH(eptr, ecode, offset_top, md, eptrb, RM47); in match()
6374 match_data *md = &match_block; in pcre_exec() local
6390 md->match_frames_base = &frame_zero; in pcre_exec()
6431 utf = md->utf = (re->options & PCRE_UTF8) != 0; in pcre_exec()
6432 md->partial = ((options & PCRE_PARTIAL_HARD) != 0)? 2 : in pcre_exec()
6451 return (errorcode <= PCRE_UTF8_ERR5 && md->partial > 1)? in pcre_exec()
6454 return (errorcode <= PCRE_UTF16_ERR1 && md->partial > 1)? in pcre_exec()
6494 md->name_table = (pcre_uchar *)re + re->name_table_offset; in pcre_exec()
6495 md->name_count = re->name_count; in pcre_exec()
6496 md->name_entry_size = re->name_entry_size; in pcre_exec()
6502 md->match_limit = MATCH_LIMIT; in pcre_exec()
6503 md->match_limit_recursion = MATCH_LIMIT_RECURSION; in pcre_exec()
6504 md->callout_data = NULL; in pcre_exec()
6518 md->match_limit = extra_data->match_limit; in pcre_exec()
6520 md->match_limit_recursion = extra_data->match_limit_recursion; in pcre_exec()
6522 md->callout_data = extra_data->callout_data; in pcre_exec()
6528 if ((re->flags & PCRE_MLSET) != 0 && re->limit_match < md->match_limit) in pcre_exec()
6529 md->match_limit = re->limit_match; in pcre_exec()
6532 re->limit_recursion < md->match_limit_recursion) in pcre_exec()
6533 md->match_limit_recursion = re->limit_recursion; in pcre_exec()
6549 md->start_code = (const pcre_uchar *)re + re->name_table_offset + in pcre_exec()
6552 md->start_subject = (PCRE_PUCHAR)subject; in pcre_exec()
6553 md->start_offset = start_offset; in pcre_exec()
6554 md->end_subject = md->start_subject + length; in pcre_exec()
6555 end_subject = md->end_subject; in pcre_exec()
6557 md->endonly = (re->options & PCRE_DOLLAR_ENDONLY) != 0; in pcre_exec()
6558 md->use_ucp = (re->options & PCRE_UCP) != 0; in pcre_exec()
6559 md->jscript_compat = (re->options & PCRE_JAVASCRIPT_COMPAT) != 0; in pcre_exec()
6560 md->ignore_skip_arg = 0; in pcre_exec()
6565 md->notbol = (options & PCRE_NOTBOL) != 0; in pcre_exec()
6566 md->noteol = (options & PCRE_NOTEOL) != 0; in pcre_exec()
6567 md->notempty = (options & PCRE_NOTEMPTY) != 0; in pcre_exec()
6568 md->notempty_atstart = (options & PCRE_NOTEMPTY_ATSTART) != 0; in pcre_exec()
6570 md->hitend = FALSE; in pcre_exec()
6571 md->mark = md->nomatch_mark = NULL; /* In case never set */ in pcre_exec()
6573 md->recursive = NULL; /* No recursion at top level */ in pcre_exec()
6574 md->hasthen = (re->flags & PCRE_HASTHEN) != 0; in pcre_exec()
6576 md->lcc = tables + lcc_offset; in pcre_exec()
6577 md->fcc = tables + fcc_offset; in pcre_exec()
6578 md->ctypes = tables + ctypes_offset; in pcre_exec()
6586 md->bsr_anycrlf = (re->options & PCRE_BSR_ANYCRLF) != 0; in pcre_exec()
6589 md->bsr_anycrlf = TRUE; in pcre_exec()
6591 md->bsr_anycrlf = FALSE; in pcre_exec()
6596 md->bsr_anycrlf = TRUE; in pcre_exec()
6600 md->bsr_anycrlf = FALSE; in pcre_exec()
6624 md->nltype = NLTYPE_ANYCRLF; in pcre_exec()
6628 md->nltype = NLTYPE_ANY; in pcre_exec()
6632 md->nltype = NLTYPE_FIXED; in pcre_exec()
6635 md->nllen = 2; in pcre_exec()
6636 md->nl[0] = (newline >> 8) & 255; in pcre_exec()
6637 md->nl[1] = newline & 255; in pcre_exec()
6641 md->nllen = 1; in pcre_exec()
6642 md->nl[0] = newline; in pcre_exec()
6650 if (md->partial && (re->flags & PCRE_NOPARTIAL) != 0) in pcre_exec()
6664 md->offset_vector = (int *)(PUBL(malloc))(ocount * sizeof(int)); in pcre_exec()
6665 if (md->offset_vector == NULL) return PCRE_ERROR_NOMEMORY; in pcre_exec()
6669 else md->offset_vector = offsets; in pcre_exec()
6670 md->offset_end = ocount; in pcre_exec()
6671 md->offset_max = (2*ocount)/3; in pcre_exec()
6672 md->capture_last = 0; in pcre_exec()
6680 if (md->offset_vector != NULL) in pcre_exec()
6682 register int *iptr = md->offset_vector + ocount; in pcre_exec()
6684 if (iend < md->offset_vector + 2) iend = md->offset_vector + 2; in pcre_exec()
6686 if (offsetcount > 0) md->offset_vector[0] = -1; in pcre_exec()
6687 if (offsetcount > 1) md->offset_vector[1] = -1; in pcre_exec()
6704 first_char2 = TABLE_GET(first_char, md->fcc, first_char); in pcre_exec()
6726 req_char2 = TABLE_GET(req_char, md->fcc, req_char); in pcre_exec()
6757 while (t < md->end_subject && !IS_NEWLINE(t)) in pcre_exec()
6765 while (t < md->end_subject && !IS_NEWLINE(t)) t++; in pcre_exec()
6796 if (start_match > md->start_subject + start_offset) in pcre_exec()
6818 (md->nltype == NLTYPE_ANY || md->nltype == NLTYPE_ANYCRLF) && in pcre_exec()
6848 if (((options | re->options) & PCRE_NO_START_OPTIMIZE) == 0 && !md->partial) in pcre_exec()
6921 pchars(start_match, end_subject - start_match, TRUE, md); in pcre_exec()
6928 md->start_match_ptr = start_match; in pcre_exec()
6929 md->start_used_ptr = start_match; in pcre_exec()
6930 md->match_call_count = 0; in pcre_exec()
6931 md->match_function_type = 0; in pcre_exec()
6932 md->end_offset_top = 0; in pcre_exec()
6933 md->skip_arg_count = 0; in pcre_exec()
6934 rc = match(start_match, md->start_code, start_match, 2, md, NULL, 0); in pcre_exec()
6935 if (md->hitend && start_partial == NULL) in pcre_exec()
6937 start_partial = md->start_used_ptr; in pcre_exec()
6952 md->ignore_skip_arg = md->skip_arg_count; in pcre_exec()
6959 if (md->start_match_ptr > start_match) in pcre_exec()
6961 new_start_match = md->start_match_ptr; in pcre_exec()
6972 md->ignore_skip_arg = 0; in pcre_exec()
7025 (md->nltype == NLTYPE_ANY || in pcre_exec()
7026 md->nltype == NLTYPE_ANYCRLF || in pcre_exec()
7027 md->nllen == 2)) in pcre_exec()
7030 md->mark = NULL; /* Reset for start of next match attempt */ in pcre_exec()
7061 memcpy(offsets + 2, md->offset_vector + 2, in pcre_exec()
7065 if (md->end_offset_top > arg_offset_max) md->capture_last |= OVFLBIT; in pcre_exec()
7067 (PUBL(free))(md->offset_vector); in pcre_exec()
7073 rc = ((md->capture_last & OVFLBIT) != 0 && in pcre_exec()
7074 md->end_offset_top >= arg_offset_max)? in pcre_exec()
7075 0 : md->end_offset_top/2; in pcre_exec()
7086 if (md->end_offset_top/2 <= re->top_bracket && offsets != NULL) in pcre_exec()
7091 iptr = offsets + md->end_offset_top; in pcre_exec()
7102 offsets[0] = (int)(md->start_match_ptr - md->start_subject); in pcre_exec()
7103 offsets[1] = (int)(md->end_match_ptr - md->start_subject); in pcre_exec()
7109 *(extra_data->mark) = (pcre_uchar *)md->mark; in pcre_exec()
7123 (PUBL(free))(md->offset_vector); in pcre_exec()
7142 md->mark = NULL; in pcre_exec()
7164 *(extra_data->mark) = (pcre_uchar *)md->nomatch_mark; in pcre_exec()