Branch Coverage

hparser.c
Criterion Covered Total %
branch 852 1092 78.0


line true false branch
140 4 29262 if (p_state->eof)
184 0 29262 if (p_state->pending_end_tag && event != E_TEXT && event != E_COMMENT) {
0 0 if (p_state->pending_end_tag && event != E_TEXT && event != E_COMMENT) {
0 0 if (p_state->pending_end_tag && event != E_TEXT && event != E_COMMENT) {
195 154 29108 p_state->offset += CHR_DIST(end, beg);
196 122 29140 if (line) {
199 718 122 while (s < end) {
200 31 687 if (*s == '\n') {
206 27 95 if (nl)
207 10 17 p_state->column = CHR_DIST(end, nl) - 1;
209 22 73 p_state->column += CHR_DIST(end, beg);
212 32 29230 if (event == E_NONE)
216 4 29226 if (p_state->ms == MS_IGNORE)
221 29096 130 if (p_state->ignore_tags || p_state->report_tags || p_state->ignore_elements) {
29010 86 if (p_state->ignore_tags || p_state->report_tags || p_state->ignore_elements) {
197 28813 if (p_state->ignore_tags || p_state->report_tags || p_state->ignore_elements) {
223 308 105 if (event == E_START || event == E_END) {
62 246 if (event == E_START || event == E_END) {
228 38 129 if (utf8)
232 159 8 if (!CASE_SENSITIVE(p_state))
155 4 if (!CASE_SENSITIVE(p_state))
235 7 160 if (p_state->ignoring_element) {
236 7 0 if (sv_eq(p_state->ignoring_element, tagname)) {
237 0 7 if (event == E_START)
239 7 0 else if (--p_state->ignore_depth == 0) {
250 7 1 if (event == E_START) {
268 7 239 else if (p_state->ignoring_element) {
274 3286 25886 if (!h->cb) {
277 2178 1108 if (!h->cb)
281 13551 13443 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
13551 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 13551 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 13551 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
13070 481 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
13070 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
5 13065 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 5 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
5 13065 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
2 479 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
2 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
2 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 2 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
2 0 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
0 479 if (SvTYPE(h->cb) != SVt_PVAV && !SvTRUE(h->cb)) {
286 8981 18006 if (p_state->unbroken_text && event == E_TEXT) {
4510 4471 if (p_state->unbroken_text && event == E_TEXT) {
288 16 4494 if (!p_state->pend_text)
290 4356 154 if (SvOK(p_state->pend_text)) {
4356 0 if (SvOK(p_state->pend_text)) {
0 4356 if (SvOK(p_state->pend_text)) {
291 2 152 if (p_state->is_cdata != p_state->pend_text_is_cdata) {
304 4358 0 if (!utf8)
307 0 4510 if (utf8 && !SvUTF8(p_state->pend_text))
0 0 if (utf8 && !SvUTF8(p_state->pend_text))
309 4510 0 if (utf8 || !SvUTF8(p_state->pend_text)) {
4510 0 if (utf8 || !SvUTF8(p_state->pend_text)) {
320 4458 18019 else if (p_state->pend_text && SvOK(p_state->pend_text)) {
164 4294 else if (p_state->pend_text && SvOK(p_state->pend_text)) {
164 0 else if (p_state->pend_text && SvOK(p_state->pend_text)) {
0 164 else if (p_state->pend_text && SvOK(p_state->pend_text)) {
327 22476 1 argspec = h->argspec ? SvPV(h->argspec, my_na) : "";
22476 0 argspec = h->argspec ? SvPV(h->argspec, my_na) : "";
329 8945 13532 if (SvTYPE(h->cb) == SVt_PVAV) {
331 502 8443 if (*argspec == ARG_FLAG_FLAT_ARRAY) {
342 0 13532 if (*argspec == ARG_FLAG_FLAT_ARRAY)
348 0 13532 PUSHMARK(SP);
351 74876 22477 for (s = argspec; *s; s++) {
363 68 17 if (num_tokens >= 1) {
368 405 68 for (i = 0; i < num_tokens; i++) {
369 405 0 if (tokens[i].beg) {
371 0 405 if (utf8)
376 0 0 av_push(av, p_state->bool_attr_val
386 33 51 if (num_tokens >= 1 && tokens[0].beg >= beg) {
32 1 if (num_tokens >= 1 && tokens[0].beg >= beg) {
390 369 32 for (i = 0; i < num_tokens; i++) {
391 367 2 if (tokens[i].beg) {
392 13 354 av_push(av, newSViv(CHR_DIST(tokens[i].beg, beg)));
393 13 354 av_push(av, newSViv(CHR_DIST(tokens[i].end, tokens[i].beg)));
409 6333 68 if (num_tokens >= 1) {
412 29 6304 if (utf8)
414 6272 61 if (!CASE_SENSITIVE(p_state) && argcode != ARG_TOKEN0)
6267 5 if (!CASE_SENSITIVE(p_state) && argcode != ARG_TOKEN0)
6215 52 if (!CASE_SENSITIVE(p_state) && argcode != ARG_TOKEN0)
416 21 6312 if (argcode == ARG_TAG && event != E_START) {
10 11 if (argcode == ARG_TAG && event != E_START) {
425 4054 92 if (event == E_START) {
428 4045 9 if (argcode == ARG_ATTR) {
440 10205 4054 for (i = 1; i < num_tokens; i += 2) {
445 37 10168 if (utf8)
447 3196 7009 if (tokens[i+1].beg) {
450 3036 160 if (*beg == '"' || *beg == '\'' || (*beg == '`' && p_state->backquote)) {
994 2042 if (*beg == '"' || *beg == '\'' || (*beg == '`' && p_state->backquote)) {
5 989 if (*beg == '"' || *beg == '\'' || (*beg == '`' && p_state->backquote)) {
1 4 if (*beg == '"' || *beg == '\'' || (*beg == '`' && p_state->backquote)) {
455 34 3162 if (utf8)
457 3194 2 if (!p_state->attr_encoded) {
458 20 3174 if (p_state->utf8_mode) {
463 20 3174 if (p_state->utf8_mode)
468 0 7009 if (p_state->bool_attr_val)
474 10192 13 if (!CASE_SENSITIVE(p_state))
10188 4 if (!CASE_SENSITIVE(p_state))
477 10197 8 if (argcode == ARG_ATTR) {
485 4 4 if (array) {
490 0 4 mXPUSHs(attrname);
491 0 4 mXPUSHs(attrval);
496 18 74 else if (argcode == ARG_ATTRARR) {
502 3944 25 if (event == E_START) {
505 10089 3944 for (i = 1; i < num_tokens; i += 2) {
508 0 10089 if (utf8)
510 10079 10 if (!CASE_SENSITIVE(p_state))
10075 4 if (!CASE_SENSITIVE(p_state))
520 115 22069 if (utf8)
525 79 77 if (event == E_TEXT) {
527 23 56 if (utf8)
529 71 8 if (!p_state->is_cdata) {
530 8 63 if (p_state->utf8_mode) {
535 8 63 if (p_state->utf8_mode)
542 15161 53 if (event == E_TEXT) {
543 7 15154 arg = boolSV(p_state->is_cdata);
557 16 58 arg = sv_2mortal(newSViv(offset + CHR_DIST(end, beg)));
561 16 85 arg = sv_2mortal(newSViv(CHR_DIST(end, beg)));
581 0 8319 if (SvUTF8(h->argspec))
596 74849 27 if (push_arg) {
597 366 74483 if (!arg)
600 31113 43736 if (array) {
607 0 43736 XPUSHs(arg);
612 8945 13532 if (array) {
613 8443 502 if (array != (AV*)h->cb)
619 13135 397 if ((enum argcode)*argspec == ARG_SELF && !SvROK(h->cb)) {
13065 70 if ((enum argcode)*argspec == ARG_SELF && !SvROK(h->cb)) {
620 13065 0 char *method = SvPV(h->cb, my_na);
627 13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
0 13532 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
0 13532 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13532 0 if (SvTRUE(ERRSV)) {
13531 1 if (SvTRUE(ERRSV)) {
13531 0 if (SvTRUE(ERRSV)) {
0 13531 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
0 0 if (SvTRUE(ERRSV)) {
1 13531 if (SvTRUE(ERRSV)) {
631 13527 4 FREETMPS;
634 14 22462 if (p_state->skipped_text)
639 38 2230 if (p_state->skipped_text) {
640 20 18 if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text))
2 18 if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text))
0 2 if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text))
0 0 if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text))
0 0 if (event != E_TEXT && p_state->pend_text && SvOK(p_state->pend_text))
642 2 36 if (utf8 && !SvUTF8(p_state->skipped_text))
1 1 if (utf8 && !SvUTF8(p_state->skipped_text))
644 36 2 if (utf8 || !SvUTF8(p_state->skipped_text)) {
35 1 if (utf8 || !SvUTF8(p_state->skipped_text)) {
665 463 0 char *s = SvPV(src, len);
668 0 463 if (SvUTF8(src))
671 0 463 while (isHSPACE(*s))
674 7 456 if (*s == '@') {
677 0 7 while (isHSPACE(*tmp))
679 7 0 if (*tmp == '{') {
683 0 7 while (isHSPACE(*tmp))
688 1267 4 while (s < end) {
689 71 1196 if (isHNAME_FIRST(*s) || *s == '@') {
4 67 if (isHNAME_FIRST(*s) || *s == '@') {
695 4876 1200 while (isHNAME_CHAR(*s))
699 7620 2 for ( arg_name = argname; a < ARG_LITERAL ; ++a, ++arg_name ) {
700 1202 6418 if (strnEQ(*arg_name, name, s - name) &&
1198 4 if (strnEQ(*arg_name, name, s - name) &&
704 1198 2 if (a < ARG_LITERAL) {
708 1194 4 if (a == ARG_LINE || a == ARG_COLUMN) {
5 1189 if (a == ARG_LINE || a == ARG_COLUMN) {
709 5 4 if (!p_state->line)
712 7 1191 if (a == ARG_SKIPPED_TEXT) {
713 5 2 if (!p_state->skipped_text) {
717 1120 78 if (a == ARG_ATTR || a == ARG_ATTRARR) {
4 1116 if (a == ARG_ATTR || a == ARG_ATTRARR) {
718 79 3 if (p_state->argspec_entity_decode != ARG_DTEXT)
721 10 1106 else if (a == ARG_DTEXT) {
729 61 6 else if (*s == '"' || *s == '\'') {
61 0 else if (*s == '"' || *s == '\'') {
732 655 1 while (s < end && *s != *string_beg && *s != '\\')
590 65 while (s < end && *s != *string_beg && *s != '\\')
589 1 while (s < end && *s != *string_beg && *s != '\\')
734 65 2 if (*s == *string_beg) {
738 1 64 if (len > 255)
746 1 1 else if (*s == '\\') {
757 1 1262 while (isHSPACE(*s))
760 7 1255 if (*s == '}' && SvPVX(argspec)[0] == ARG_FLAG_FLAT_ARRAY) {
7 0 if (*s == '}' && SvPVX(argspec)[0] == ARG_FLAG_FLAT_ARRAY) {
763 0 7 while (isHSPACE(*s))
765 0 7 if (s < end)
769 453 809 if (s == end)
771 1 808 if (*s != ',') {
775 32 808 while (isHSPACE(*s))
805 0 4358 SvOK_off(old_pend_text);
822 11184 59 while (s < end) {
823 11153 31 if (!quote && *s == '>')
2875 8278 if (!quote && *s == '>')
825 8281 28 if (*s == '"' || *s == '\'') {
41 8240 if (*s == '"' || *s == '\'') {
826 6 63 if (*s == quote) {
829 63 0 else if (!quote && (prev == ' ' || prev == '=')) {
57 6 else if (!quote && (prev == ' ' || prev == '=')) {
0 57 else if (!quote && (prev == ' ' || prev == '=')) {
843 6 171 if (p_state->strict_comment) {
851 125 0 while (s < end && *s != '-' && *s != '>')
112 13 while (s < end && *s != '-' && *s != '>')
104 8 while (s < end && *s != '-' && *s != '>')
854 0 21 if (s == end) {
855 0 0 FREE_TOKENS;
859 8 13 if (*s == '>') {
861 2 6 if (start_com)
869 0 6 FREE_TOKENS;
875 0 13 if (s == end) {
876 0 0 FREE_TOKENS;
880 12 1 if (*s == '-') {
884 9 3 if (start_com) {
885 0 9 PUSH_TOKEN(start_com, s-2);
894 2 169 else if (p_state->no_dash_dash_comment_end) {
898 16 0 while (s < end && *s != '>')
14 2 while (s < end && *s != '>')
901 2 0 if (s < end) {
915 2226 104 while (s < end && *s != '-')
2131 95 while (s < end && *s != '-')
918 95 104 if (s < end) {
920 78 17 if (*s == '-') {
922 15 78 while (isHSPACE(*s))
924 48 30 if (*s == '>') {
931 30 17 if (s < end) {
937 121 0 if (s == end)
955 32 0 if (ms_stack) {
958 18 32 for (stack_idx = 0; stack_idx <= stack_len; stack_idx++) {
960 18 0 if (svp) {
965 25 18 for (i = 0; i <= tokens_len; i++) {
967 25 0 if (svp) {
969 25 0 char *token_str = SvPV(*svp, len);
971 11 14 if (strEQ(token_str, "include"))
973 4 10 else if (strEQ(token_str, "rcdata"))
975 7 3 else if (strEQ(token_str, "cdata"))
977 2 1 else if (strEQ(token_str, "ignore"))
981 24 1 if (p_state->ms < token)
1001 0 16 if (!p_state->marked_sections)
1010 5 17 while (isHSPACE(*s))
1012 20 17 while (isHNAME_FIRST(*s)) {
1017 97 20 while (isHNAME_CHAR(*s))
1020 19 20 while (isHSPACE(*s))
1022 0 20 if (s == end)
1025 13 7 if (!tokens)
1028 1 19 if (utf8)
1032 1 16 if (*s == '-') {
1034 1 0 if (*s == '-') {
1038 9 0 while (s < end && *s != '-')
8 1 while (s < end && *s != '-')
1040 0 1 if (s == end)
1044 1 0 if (*s == '-') {
1055 16 0 if (*s == '[') {
1059 3 13 if (!tokens) {
1064 4 12 if (!p_state->ms_stack)
1088 186 342 if (*s == '-') {
1093 6 180 if (s == end)
1096 3 177 if (*s != '-')
1103 121 56 return (tmp == s) ? beg : tmp;
1107 16 326 if (*s == '[') {
1111 0 16 if (!tmp)
1117 1 325 if (*s == '>') {
1127 295 30 if (isALPHA(*s)) {
1134 1949 16 while (s < end && isHNAME_CHAR(*s))
1670 279 while (s < end && isHNAME_CHAR(*s))
1137 16 279 if (s == end)
1141 4 10 if (!((decl_id_len == 7 &&
1142 266 0 strnEQx(decl_id, "DOCTYPE", 7, !CASE_SENSITIVE(p_state))) ||
266 0 strnEQx(decl_id, "DOCTYPE", 7, !CASE_SENSITIVE(p_state))) ||
1143 4 0 (decl_id_len == 6 &&
1144 3 1 strnEQx(decl_id, "ENTITY", 6, !CASE_SENSITIVE(p_state)))
3 0 strnEQx(decl_id, "ENTITY", 6, !CASE_SENSITIVE(p_state)))
1152 0 269 PUSH_TOKEN(decl_id, s);
1155 50567 165 while (s < end && isHSPACE(*s))
25413 25154 while (s < end && isHSPACE(*s))
1158 165 25154 if (s == end)
1161 25025 129 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
25025 0 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
0 25025 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
0 0 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
1164 2849 65 while (s < end && *s != *str_beg)
2785 64 while (s < end && *s != *str_beg)
1166 65 64 if (s == end)
1169 0 64 PUSH_TOKEN(str_beg, s);
1171 12405 12620 else if (*s == '-') {
1175 0 12405 if (s == end)
1177 0 12405 if (*s != '-')
1182 62054 0 while (s < end && *s != '-')
49647 12407 while (s < end && *s != '-')
1184 0 12407 if (s == end)
1187 0 12407 if (s == end)
1189 12405 2 if (*s == '-') {
1191 0 12405 PUSH_TOKEN(com_beg, s);
1196 12598 22 else if (*s != '>') {
1200 25705 17 while (s < end && isHNOT_SPACE_GT(*s))
13124 12581 while (s < end && isHNOT_SPACE_GT(*s))
1202 17 12581 if (s == end)
1204 696 11885 PUSH_TOKEN(word_beg, s);
1211 0 22 if (s == end)
1213 22 0 if (*s == '>') {
1216 1 21 FREE_TOKENS;
1221 0 10 FREE_TOKENS;
1225 153 110 FREE_TOKENS;
1231 0 43 if (p_state->strict_comment)
1235 5739 8 while (s < end && *s != '>')
5704 35 while (s < end && *s != '>')
1237 35 8 if (s < end) {
1261 6328 20 if (STRICT_NAMES(p_state)) {
0 6328 if (STRICT_NAMES(p_state)) {
1273 98795 197 while (s < end && isHCTYPE(*s, tag_name_char)) {
92644 6151 while (s < end && isHCTYPE(*s, tag_name_char)) {
1274 363 92281 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
363 0 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
0 363 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1275 0 0 if ((s + 1) == end)
1277 0 0 if (*(s + 1) == '>')
1282 0 6348 PUSH_TOKEN(beg+1, s); /* tagname */
1284 5290 6348 while (isHSPACE(*s))
1286 223 6125 if (s == end)
1289 26617 4857 while (isHCTYPE(*s, attr_name_first)) {
1293 66 26551 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
66 0 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
4 62 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1294 0 4 if ((s + 1) == end)
1296 4 0 if (*(s + 1) == '>')
1300 375738 665 while (s < end && isHCTYPE(*s, attr_name_char)) {
349790 25948 while (s < end && isHCTYPE(*s, attr_name_char)) {
1301 1347 348443 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1347 0 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
0 1347 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1302 0 0 if ((s + 1) == end)
1304 0 0 if (*(s + 1) == '>')
1309 665 25948 if (s == end)
1313 1104 24844 PUSH_TOKEN(attr_name_beg, attr_name_end); /* attr name */
1315 8093 25948 while (isHSPACE(*s))
1317 16 25932 if (s == end)
1320 16784 9148 if (*s == '=') {
1323 30 16784 while (isHSPACE(*s))
1325 32 16752 if (s == end)
1327 6 16746 if (*s == '>') {
1329 0 6 PUSH_TOKEN(s, s);
1332 15915 831 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
13768 2147 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
6 13762 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
1 5 if (*s == '"' || *s == '\'' || (*s == '`' && p_state->backquote)) {
1335 31842 276 while (s < end && *s != *str_beg)
29139 2703 while (s < end && *s != *str_beg)
1337 276 2703 if (s == end)
1340 0 2703 PUSH_TOKEN(str_beg, s);
1344 72848 74 while (s < end && isHNOT_SPACE_GT(*s)) {
59157 13691 while (s < end && isHNOT_SPACE_GT(*s)) {
1345 233 58924 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
232 1 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1 231 if (*s == '/' && ALLOW_EMPTY_TAG(p_state)) {
1346 0 2 if ((s + 1) == end)
1348 2 0 if (*(s + 1) == '>')
1353 74 13693 if (s == end)
1355 0 13693 PUSH_TOKEN(word_start, s);
1357 13769 16396 while (isHSPACE(*s))
1359 195 16201 if (s == end)
1363 0 9148 PUSH_TOKEN(0, 0); /* boolean attr value */
1367 4847 20 if (ALLOW_EMPTY_TAG(p_state) && *s == '/') {
605 4242 if (ALLOW_EMPTY_TAG(p_state) && *s == '/') {
7 618 if (ALLOW_EMPTY_TAG(p_state) && *s == '/') {
1369 0 7 if (s == end)
1374 4867 0 if (*s == '>') {
1378 7 4860 if (empty_tag) {
1381 4843 17 else if (!p_state->xml_mode) {
1387 33718 4738 for (i = 0; literal_mode_elem[i].len; i++) {
1388 549 33169 if (tag_len == literal_mode_elem[i].len) {
1393 997 0 while (len) {
1394 159 838 if (toLOWER(*s) != *t)
444 553 if (toLOWER(*s) != *t)
1398 105 448 if (!--len) {
1412 360 4507 FREE_TOKENS;
1416 0 0 FREE_TOKENS;
1420 263 1218 FREE_TOKENS;
1431 2917 17 if (STRICT_NAMES(p_state)) {
0 2917 if (STRICT_NAMES(p_state)) {
1439 2927 7 if (isHCTYPE(*s, name_first)) {
1443 5230 48 while (s < end && isHCTYPE(*s, name_char))
2351 2879 while (s < end && isHCTYPE(*s, name_char))
1447 0 2927 if (p_state->strict_end) {
1448 0 0 while (isHSPACE(*s))
1454 2869 58 if (s < end) {
1455 2869 0 if (*s == '>') {
1466 7 0 else if (!p_state->strict_comment) {
1468 6 1 if (s < end) {
1492 8004 19 while (s < end) {
1493 50 7954 if (*s == '>') {
1497 44 6 if (p_state->xml_mode || p_state->xml_pic) {
2 42 if (p_state->xml_mode || p_state->xml_pic) {
1499 8 0 if (s - beg < 4 || s[-2] != '?')
2 6 if (s - beg < 4 || s[-2] != '?')
1534 20993 6 while (!p_state->eof) {
1541 287 20874 while (p_state->literal_mode) {
1545 2585 119 while (s < end && *s != '<') {
2417 168 while (s < end && *s != '<') {
1549 119 168 if (s == end) {
1558 147 21 if (*s == '/') {
1560 666 111 while (*l && toLOWER(*s) == *l) {
15 651 while (*l && toLOWER(*s) == *l) {
630 36 while (*l && toLOWER(*s) == *l) {
1565 111 36 if (!*l && (strNE(p_state->literal_mode, "plaintext") || p_state->closing_plaintext)) {
2 109 if (!*l && (strNE(p_state->literal_mode, "plaintext") || p_state->closing_plaintext)) {
1 1 if (!*l && (strNE(p_state->literal_mode, "plaintext") || p_state->closing_plaintext)) {
1571 0 110 while (isHSPACE(*s))
1573 101 9 if (*s == '>') {
1575 101 0 if (t != end_text)
1589 8 20875 while (p_state->ms == MS_CDATA || p_state->ms == MS_RCDATA) {
2 20873 while (p_state->ms == MS_CDATA || p_state->ms == MS_RCDATA) {
1590 115 1 while (s < end && *s != ']')
106 9 while (s < end && *s != ']')
1592 9 1 if (*s == ']') {
1595 9 0 if (*s == ']' && *(s + 1) == '>') {
8 1 if (*s == ']' && *(s + 1) == '>') {
1598 8 0 if (t != end_text)
1608 1 1 if (s == end) {
1616 1797856 4077 while (s < end && *s != '<') {
1781060 16796 while (s < end && *s != '<') {
1618 65 1780995 if (p_state->ms && *s == ']') {
8 57 if (p_state->ms && *s == ']') {
1621 8 0 if (*s == ']') {
1623 8 0 if (*s == '>') {
1639 17212 3661 if (s != t) {
1640 13296 3916 if (*s == '<') {
1646 359 3557 if (isHSPACE(*s)) {
1648 647 133 while (s >= t && isHSPACE(*s))
421 226 while (s >= t && isHSPACE(*s))
1653 111519 639 while (s >= t && !isHSPACE(*s))
108601 2918 while (s >= t && !isHSPACE(*s))
1655 5675 889 while (s >= t && isHSPACE(*s))
3007 2668 while (s >= t && isHSPACE(*s))
1659 2894 1022 if (s != t)
1665 346 16611 if (end - s < 3)
1674 6348 10263 if (isHNAME_FIRST(*s))
1676 2934 7329 else if (*s == '/')
1678 528 6801 else if (*s == '!')
1680 67 6734 else if (*s == '?')
1686 9876 6734 if (new_pos) {
1687 1957 7919 if (new_pos == t) {
1716 211 6333 if (!p_state->start_document) {
1722 197 6347 if (!chunk) {
1725 151 46 if (p_state->buf && SvOK(p_state->buf)) {
2 149 if (p_state->buf && SvOK(p_state->buf)) {
2 0 if (p_state->buf && SvOK(p_state->buf)) {
0 2 if (p_state->buf && SvOK(p_state->buf)) {
1727 149 0 s = SvPV(p_state->buf, len);
1732 152 0 while (s < end) {
1733 2 150 if (p_state->literal_mode) {
1734 0 2 if (strEQ(p_state->literal_mode, "plaintext") ||
0 0 if (strEQ(p_state->literal_mode, "plaintext") ||
1735 0 0 strEQ(p_state->literal_mode, "xmp") ||
1736 0 0 strEQ(p_state->literal_mode, "iframe") ||
1742 0 0 if (strEQ(p_state->literal_mode, "script") ||
0 0 if (strEQ(p_state->literal_mode, "script") ||
1760 135 15 if (!p_state->strict_comment && !p_state->no_dash_dash_comment_end && *s == '<') {
132 3 if (!p_state->strict_comment && !p_state->no_dash_dash_comment_end && *s == '<') {
3 129 if (!p_state->strict_comment && !p_state->no_dash_dash_comment_end && *s == '<') {
1766 132 15 if (!p_state->strict_comment && *s == '<') {
3 129 if (!p_state->strict_comment && *s == '<') {
1768 3 0 if (s1 == end || isHNAME_FIRST(*s1) || *s1 == '/' || *s1 == '!' || *s1 == '?') {
2 1 if (s1 == end || isHNAME_FIRST(*s1) || *s1 == '/' || *s1 == '!' || *s1 == '?') {
1 1 if (s1 == end || isHNAME_FIRST(*s1) || *s1 == '/' || *s1 == '!' || *s1 == '?') {
1 0 if (s1 == end || isHNAME_FIRST(*s1) || *s1 == '/' || *s1 == '!' || *s1 == '?') {
0 1 if (s1 == end || isHNAME_FIRST(*s1) || *s1 == '/' || *s1 == '!' || *s1 == '?') {
1781 147 2 if (s < end) {
1789 60 137 if (p_state->pend_text && SvOK(p_state->pend_text))
0 60 if (p_state->pend_text && SvOK(p_state->pend_text))
0 0 if (p_state->pend_text && SvOK(p_state->pend_text))
0 0 if (p_state->pend_text && SvOK(p_state->pend_text))
1792 0 197 if (p_state->ignoring_element) {
1801 10 187 if (p_state->line)
1810 5 6342 if (p_state->utf8_mode)
1813 6116 231 if (p_state->buf && SvOK(p_state->buf)) {
100 6016 if (p_state->buf && SvOK(p_state->buf)) {
100 0 if (p_state->buf && SvOK(p_state->buf)) {
0 100 if (p_state->buf && SvOK(p_state->buf)) {
1815 6016 0 beg = SvPV(p_state->buf, len);
1819 314 17 beg = SvPV(chunk, len);
1821 211 120 if (p_state->offset == 0 && DOWARN) {
15 196 if (p_state->offset == 0 && DOWARN) {
1823 14 1 if (p_state->argspec_entity_decode &&
1 13 if (p_state->argspec_entity_decode &&
1824 0 1 !(p_state->attr_encoded && p_state->argspec_entity_decode == ARG_ATTR) &&
10 3 !(p_state->attr_encoded && p_state->argspec_entity_decode == ARG_ATTR) &&
1825 7 3 !p_state->utf8_mode && (
1826 7 0 (!utf8 && len >= 3 && strnEQ(beg, "\xEF\xBB\xBF", 3)) ||
5 2 (!utf8 && len >= 3 && strnEQ(beg, "\xEF\xBB\xBF", 3)) ||
3 5 (!utf8 && len >= 3 && strnEQ(beg, "\xEF\xBB\xBF", 3)) ||
1827 3 0 (utf8 && len >= 6 && strnEQ(beg, "\xC3\xAF\xC2\xBB\xC2\xBF", 6)) ||
2 1 (utf8 && len >= 6 && strnEQ(beg, "\xC3\xAF\xC2\xBB\xC2\xBF", 6)) ||
5 2 (utf8 && len >= 6 && strnEQ(beg, "\xC3\xAF\xC2\xBB\xC2\xBF", 6)) ||
1828 1 4 (!utf8 && probably_utf8_chunk(aTHX_ beg, len))
1834 3 12 if (utf8 && len >= 2 && strnEQ(beg, "\xFF\xFE", 2)) {
3 0 if (utf8 && len >= 2 && strnEQ(beg, "\xFF\xFE", 2)) {
0 3 if (utf8 && len >= 2 && strnEQ(beg, "\xFF\xFE", 2)) {
1837 12 3 if (!utf8 && len >= 4 &&
12 0 if (!utf8 && len >= 4 &&
11 1 if (!utf8 && len >= 4 &&
1838 1 10 (strnEQ(beg, "\x00\x00\xFE\xFF", 4) ||
1844 10 3 else if (!utf8 && len >= 2 &&
10 0 else if (!utf8 && len >= 2 &&
9 1 else if (!utf8 && len >= 2 &&
1845 1 8 (strnEQ(beg, "\xFE\xFF", 2) || strnEQ(beg, "\xFF\xFE", 2))
1853 4 6343 if (!len)
1859 6175 167 if (s == end || p_state->eof) {
8 6167 if (s == end || p_state->eof) {
1860 105 70 if (p_state->buf) {
1861 40 65 SvOK_off(p_state->buf);
1866 6011 156 if (p_state->buf) {
1868 86 5925 if (SvOK(p_state->buf)) {
86 0 if (SvOK(p_state->buf)) {
0 86 if (SvOK(p_state->buf)) {
1873 16 70 if (utf8)
1881 8 148 if (utf8)