| line |
true |
false |
branch |
|
14
|
4 |
21 |
if (fuxmlwr_tail) fuxmlwr_tail->next = wr; |
|
21
|
25 |
0 |
if (fuxmlwr_tail == wr) fuxmlwr_tail = wr->next ? wr->next : wr->prev; |
|
|
0 |
25 |
if (fuxmlwr_tail == wr) fuxmlwr_tail = wr->next ? wr->next : wr->prev; |
|
22
|
0 |
25 |
if (wr->next) wr->next->prev = wr->prev; |
|
23
|
4 |
21 |
if (wr->prev) wr->prev->next = wr->next; |
|
24
|
0 |
25 |
if (wr->out.sv) SvREFCNT_dec(wr->out.sv); |
|
30
|
4 |
22 |
if (SvROK(sv) && !SvAMAGIC(sv)) fu_confess("Invalid attempt to output bare reference"); |
|
|
4 |
0 |
if (SvROK(sv) && !SvAMAGIC(sv)) fu_confess("Invalid attempt to output bare reference"); |
|
|
2 |
2 |
if (SvROK(sv) && !SvAMAGIC(sv)) fu_confess("Invalid attempt to output bare reference"); |
|
|
0 |
2 |
if (SvROK(sv) && !SvAMAGIC(sv)) fu_confess("Invalid attempt to output bare reference"); |
|
39
|
33 |
0 |
while (str < end) { |
|
41
|
2 |
31 |
if (utf8) { |
|
42
|
8 |
2 |
while (tmp < end) { |
|
44
|
8 |
0 |
if (x == '<' || x == '&' || x == '"') break; |
|
|
8 |
0 |
if (x == '<' || x == '&' || x == '"') break; |
|
|
8 |
0 |
if (x == '<' || x == '&' || x == '"') break; |
|
48
|
95 |
22 |
while (tmp < end) { |
|
50
|
92 |
3 |
if (x == '<' || x == '&' || x == '"' || x >= 0x80) break; |
|
|
87 |
5 |
if (x == '<' || x == '&' || x == '"' || x >= 0x80) break; |
|
|
86 |
1 |
if (x == '<' || x == '&' || x == '"' || x >= 0x80) break; |
|
|
86 |
0 |
if (x == '<' || x == '&' || x == '"' || x >= 0x80) break; |
|
55
|
24 |
9 |
if (tmp == end) return; |
|
72
|
32 |
60 |
return (x|32)-'a' < 26 || x-'0' < 10 || x == '_' || x == ':' || x == '-'; |
|
|
31 |
1 |
return (x|32)-'a' < 26 || x-'0' < 10 || x == '_' || x == ':' || x == '-'; |
|
|
31 |
0 |
return (x|32)-'a' < 26 || x-'0' < 10 || x == '_' || x == ':' || x == '-'; |
|
|
31 |
0 |
return (x|32)-'a' < 26 || x-'0' < 10 || x == '_' || x == ':' || x == '-'; |
|
|
1 |
30 |
return (x|32)-'a' < 26 || x-'0' < 10 || x == '_' || x == ':' || x == '-'; |
|
80
|
62 |
30 |
while (fuxmlwr_isnamechar(*x)) x++; |
|
81
|
25 |
5 |
if (*x || x == str) fu_confess("Invalid tag or attribute name: '%s'", str); |
|
|
2 |
23 |
if (*x || x == str) fu_confess("Invalid tag or attribute name: '%s'", str); |
|
91
|
26 |
1 |
if (!selfclose && ((argc - offset) & 1) == 0) fu_confess("Invalid number of arguments"); |
|
|
1 |
25 |
if (!selfclose && ((argc - offset) & 1) == 0) fu_confess("Invalid number of arguments"); |
|
95
|
29 |
20 |
while (offset < argc-1) { |
|
102
|
2 |
27 |
if (!SvPOK(key)) fu_confess("Non-string attribute"); |
|
107
|
13 |
14 |
if (keys[0] == '+' && keys[1] == 0) { |
|
|
13 |
0 |
if (keys[0] == '+' && keys[1] == 0) { |
|
108
|
8 |
5 |
if (!SvOK(val)) { |
|
110
|
4 |
4 |
} else if (isopen) { |
|
113
|
3 |
1 |
} else if (lastkey) { |
|
123
|
1 |
13 |
if (isopen) { |
|
128
|
4 |
7 |
if (!SvOK(val)) { |
|
140
|
9 |
11 |
if (isopen) fustr_write_ch(&wr->out, '"'); |
|
142
|
19 |
1 |
if (offset < argc) { |
|
148
|
9 |
11 |
if (!SvOK(val)) { // undef |
|
150
|
6 |
5 |
} else if (SvROK(val) && strcmp(sv_reftype(SvRV(val), 0), "CODE") == 0) { // CODE ref |
|
|
2 |
4 |
} else if (SvROK(val) && strcmp(sv_reftype(SvRV(val), 0), "CODE") == 0) { // CODE ref |
|
152
|
0 |
2 |
PUSHMARK(SP); |