Condition Coverage

blib/lib/Encode/MIME/Header.pm
Criterion Covered Total %
condition 75 108 69.4


and 3 conditions

line !l l&&!r l&&r condition
90 202 0 420 not $stop and $str =~ s[^((?:[^\r\n]*(?:${re_newline}[ \t])?)*)($re_newline)?][my $line = $1; my $sep = defined $2 ? $2 : ''; $stop = 1 unless length $line or length $sep; '???' while not $STRICT_DECODE and $line =~ s/$re_capture_encoded_word_split\s*=\?\1\2\?\3\?($re_encoded_text)\?=/=?$1$2?$3?$4$5?=/os; '???' while not $stop and $line =~ s[^(.*?)$re_match_decode][my $begin = $1 . $2; my $words = $3; $begin =~ tr/\n\r//d; $output .= $begin; '???' while not $stop and $words =~ s[^(.*?)($re_capture_decode)][$output .= $1; my $orig = $2; my $charset = $3; my($mime_enc, $text) = split(/\?/, $5, 3); $text =~ tr/\n\r//d; my $enc = &Encode::find_mime_encoding($charset); unless (defined $enc or $STRICT_DECODE) { $charset = 'UTF-8' if lc $charset eq 'utf8'; $enc = &Encode::find_encoding($charset); } ; if (not defined $enc) { Carp::croak(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } else { if (uc $mime_enc eq 'B' and $obj->{'decode_b'}) { my $decoded = _decode_b($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } elsif (uc $mime_enc eq 'Q' and $obj->{'decode_q'}) { my $decoded = _decode_q($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } else { Carp::croak(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } ; } ;]es; unless ($stop) { $output .= $words; $words = ''; } ; $words;]es; unless ($stop) { $line =~ tr/\n\r//d; $output .= $line . $sep; $line = ''; $sep = ''; } ; $line . $sep;]es
100 184 236 10052 not $STRICT_DECODE and $line =~ s/$re_capture_encoded_word_split\s*=\?\1\2\?\3\?($re_encoded_text)\?=/=?$1$2?$3?$4$5?=/os
103 202 218 198 not $stop and $line =~ s[^(.*?)$re_match_decode][my $begin = $1 . $2; my $words = $3; $begin =~ tr/\n\r//d; $output .= $begin; '???' while not $stop and $words =~ s[^(.*?)($re_capture_decode)][$output .= $1; my $orig = $2; my $charset = $3; my($mime_enc, $text) = split(/\?/, $5, 3); $text =~ tr/\n\r//d; my $enc = &Encode::find_mime_encoding($charset); unless (defined $enc or $STRICT_DECODE) { $charset = 'UTF-8' if lc $charset eq 'utf8'; $enc = &Encode::find_encoding($charset); } ; if (not defined $enc) { Carp::croak(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } else { if (uc $mime_enc eq 'B' and $obj->{'decode_b'}) { my $decoded = _decode_b($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } elsif (uc $mime_enc eq 'Q' and $obj->{'decode_q'}) { my $decoded = _decode_q($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } else { Carp::croak(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } ; } ;]es; unless ($stop) { $output .= $words; $words = ''; } ; $words;]es
112 4 194 50225 not $stop and $words =~ s[^(.*?)($re_capture_decode)][$output .= $1; my $orig = $2; my $charset = $3; my($mime_enc, $text) = split(/\?/, $5, 3); $text =~ tr/\n\r//d; my $enc = &Encode::find_mime_encoding($charset); unless (defined $enc or $STRICT_DECODE) { $charset = 'UTF-8' if lc $charset eq 'utf8'; $enc = &Encode::find_encoding($charset); } ; if (not defined $enc) { Carp::croak(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[Unknown charset "$charset"]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } else { if (uc $mime_enc eq 'B' and $obj->{'decode_b'}) { my $decoded = _decode_b($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } elsif (uc $mime_enc eq 'Q' and $obj->{'decode_q'}) { my $decoded = _decode_q($enc, $text, $chk); $stop = 1 if not defined $decoded || ref $chk and $chk and $chk & 4; $output .= defined $decoded ? $decoded : $text unless $stop; $stop ? $orig : ''; } else { Carp::croak(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 1; Carp::carp(qq[MIME "$mime_enc" unsupported]) if not ref $chk and $chk and $chk & 2; $stop = 1 if not ref $chk and $chk and $chk & 4; $output .= ($output =~ /(?:\A|[ \t])$/ ? '' : ' ') . $orig unless $stop; $stop ? $orig : ''; } ; } ;]es
131 1 9 3 not ref $chk and $chk
10 3 0 not ref $chk and $chk and $chk & 1
132 1 9 3 not ref $chk and $chk
10 3 0 not ref $chk and $chk and $chk & 2
133 1 9 3 not ref $chk and $chk
10 1 2 not ref $chk and $chk and $chk & 4
137 50166 0 46 uc $mime_enc eq 'B' and $obj->{'decode_b'}
0 50166 0 uc $mime_enc eq 'Q' and $obj->{'decode_q'}
139 46 0 0 not defined $decoded || ref $chk and $chk
46 0 0 not defined $decoded || ref $chk and $chk and $chk & 4
144 50164 0 2 not defined $decoded || ref $chk and $chk
50164 0 2 not defined $decoded || ref $chk and $chk and $chk & 4
148 0 0 0 not ref $chk and $chk
0 0 0 not ref $chk and $chk and $chk & 1
149 0 0 0 not ref $chk and $chk
0 0 0 not ref $chk and $chk and $chk & 2
150 0 0 0 not ref $chk and $chk
0 0 0 not ref $chk and $chk and $chk & 4
178 3 192 7 not ref $chk and $chk
195 4 3 not ref $chk and $chk and not $chk & 8
202 4 50198 10 not ref $chk and $chk
204 4 50198 10 not ref $chk and $chk
50202 8 2 not ref $chk and $chk and $octets ne ''
212 2 51 4 not ref $chk and $chk
53 2 2 not ref $chk and $chk and not $chk & 8
244 2 51 4 not ref $enc_chk and $enc_chk
260 2 51 4 not ref $chk and $chk
53 2 2 not ref $chk and $chk and not $chk & 8

or 3 conditions

line l !l&&r !l&&!r condition
95 216 6 198 length $line or length $sep
124 50209 10 6 defined $enc or $STRICT_DECODE
139 46 0 0 defined $decoded || ref $chk
144 50164 0 2 defined $decoded || ref $chk