Branch Coverage

blib/lib/Image/ExifTool/MIE.pm
Criterion Covered Total %
branch 241 498 48.3


line true false branch
757 3 0 unless %Image::ExifTool::UserDefined
761 0 0 unless $tableName =~ /^Image::ExifTool::MIE::/
763 0 0 unless my $tagTablePtr = &GetTagTable($tableName)
774 0 0 unless $parent
775 0 0 unless $mieMap{$parent}
778 0 0 unless ref $tagInfo eq "HASH" and $tagInfo->{'SubDirectory'}
780 0 0 unless my $subTablePtr = &GetTagTable($subTableName)
783 0 0 unless $subTablePtr->{'PROCESS_PROC'} and $subTablePtr->{'PROCESS_PROC'} eq \&Image::ExifTool::MIE::ProcessMIE
785 0 0 unless $group
786 0 0 if ($mieMap{$group} and $mieMap{$group} ne $parent)
791 0 0 if $doneTable{$subTableName}
806 10 48 unless $langCode =~ /^[a-z]{2}([-_])[A-Z]{2}$/
808 0 48 if $1 eq "-"
810 0 48 if $tagInfo->{'Writable'} and $tagInfo->{'Writable'} ne "string"
820 0 0 unless (defined $hasZlib)
822 0 0 unless ($hasZlib)
837 32 0 &GetByteOrder() eq 'MM' ? :
838 32 0 $chr ? :
853 332 161 if ($format =~ /^(utf(8|16|32)|string)/) { }
854 308 24 if ($1 eq 'utf8' or $1 eq 'string') { }
861 24 0 if (&GetByteOrder() eq 'MM') { }
862 24 0 $1 eq 'utf16' ? :
864 0 0 $1 eq 'utf16' ? :
867 24 0 if ($] >= 5.006001) { }
875 324 8 unless $format =~ /_list$/
877 0 161 if $format eq "free"
893 0 547 if not $format or $format eq 1
896 1 546 if ($ulist and $$valPtr =~ /(.*)\((.*)\)$/) { }
7 539 elsif (not $format =~ /^(utf|string|undef)/ and $$valPtr =~ /\)$/) { }
899 0 1 unless defined $units
902 1 0 unless $err
906 0 273 if ($format eq "string" and $et->{'OPTIONS'}{'Charset'} ne "UTF8" and $$valPtr =~ /[\x80-\xff]/)
940 9 37 if ($grp eq 'MIE-Main') { }
956 9 37 if (%{$et->{'DEL_GROUP'};})
960 0 9 if $et->{'DEL_GROUP'}{'MIE'} or $et->{'DEL_GROUP'}{$grp} or $et->{'DEL_GROUP'}{$grp1} or $et->{'DEL_GROUP'}{"MIE$n"}
967 0 0 $raf ? :
0 46 if $verbose
973 125 14 if ($raf)
976 1 124 if ($n != 4)
977 0 1 if $n or defined $sync
982 124 15 if ($raf) { }
984 0 124 unless $sync eq "~"
987 93 31 if ($tagLen) { }
988 0 93 unless $raf->Read($tag, $tagLen) == $tagLen
990 0 93 if $tag lt $lastTag
992 1 92 if $tag =~ s/\((.*)\)$//
998 0 124 if ($valLen > 252)
1001 0 0 unless $raf->Read($buff, $n) == $n
1005 0 0 if ($valLen > 2147483647)
1011 0 0 if ($format == 128 or $delGroup and $tagLen and ($format & 240) != 16)
1012 0 0 unless $raf->Seek($valLen, 1)
1013 0 0 if ($verbose > 1)
1014 0 0 $format == 128 ? :
1017 0 0 if $delGroup
1029 40 98 if $tagLen and $editTags[0] gt $tag
1033 0 98 if length $newTag > 255
1035 38 60 if ($newInfo) { }
1038 0 38 unless ($subTablePtr)
1046 11 27 if ($newTag eq $tag) { }
1048 0 11 if ($isMieGroup xor ($format & 243) == 16)
1053 0 11 if ($format & 4)
1054 0 0 unless &HasZlib($et, "edit")
1055 0 0 unless $raf->Read($oldVal, $valLen) == $valLen
1058 0 0 if $inflate
1059 0 0 unless ($inflate and $stat == Compress::Zlib::Z_STREAM_END())
1068 7 20 unless $addDirs->{$newTag}
1071 25 6 if ($isMieGroup) { }
1073 11 14 if ($newTag eq $tag) { }
0 14 elsif ($optCompress and not $dirInfo->{'IsCompressed'}) { }
1075 11 0 unless $compress
1101 0 14 if $msg
1103 2 12 if (defined $msg) { }
12 0 elsif (not $compress) { }
0 0 elsif (length $newVal <= 4) { }
1111 0 0 if $verbose
1112 0 0 if $newTag eq $tag
1118 0 6 if ($newTag eq $tag)
1119 0 0 unless ($compress)
1121 0 0 unless $raf->Read($oldVal, $valLen) == $valLen
1127 0 0 $dirInfo->{'IsCompressed'} ? :
1132 0 0 if ($compress || $optCompress || $dirInfo->{'IsCompressed'} and eval { do { require Compress::Zlib } })
1144 5 1 if (defined $newVal) { }
1145 0 5 if ($newVal eq "")
1146 0 0 if $newTag eq $tag
1150 1 0 unless defined $oldVal
1165 0 60 unless $isWriting{$writeGroup}
1168 1 59 if ($newTag eq $tag) { }
1171 0 1 if ($isList) { }
1172 0 0 if $nvHash->{'CreateOnly'}
1176 0 1 unless $isOverwriting
1179 0 1 if ($isOverwriting < 0 or $verbose > 1)
1181 0 0 if $format & 4
1183 0 0 unless $raf->Read($oldVal, $valLen) == $valLen
1185 0 0 if ($format & 4)
1191 0 0 if $inflate
1192 0 0 unless ($inflate and $stat == Compress::Zlib::Z_STREAM_END())
1201 0 0 if ($isOverwriting < 0 and defined $val)
1203 0 0 if ($isList) { }
1205 0 0 if ($formatStr =~ /_list$/) { }
1212 0 0 if $et->IsOverwriting($nvHash, $v)
1221 1 0 if ($isOverwriting) { }
1223 1 0 unless (defined $oldVal)
1224 0 1 unless $raf->Seek($valLen, 1)
1226 0 1 if ($verbose > 1)
1227 0 0 if defined $units
1233 0 0 if (defined $oldVal) { }
1235 0 0 if defined $cmpVal
1237 0 0 unless $raf->Read($oldVal, $valLen) == $valLen
1240 0 0 unless &Write($outfile, $toWrite, $oldHdr, $oldVal)
1244 1 0 unless (@newVals)
1253 0 0 unless $nvHash->{'IsCreating'} or $newTag eq $lastTag and $newInfo->{'List'} || $deletedTag eq $lastTag
1257 0 59 unless @newVals
1259 40 19 if ($writable eq 'string') { }
1264 9 31 if ($isUTF8 > 0)
1267 0 9 $isUTF8 > 1 ? :
1269 3 6 if (length $tmp < length $newVal)
1271 0 3 $isUTF8 > 1 ? :
1275 1 39 if @newVals > 1
1281 0 59 unless (defined $newFormat)
1291 1 63 if ($newInfo->{'Units'})
1293 1 0 if ($$valPt =~ /(.*)\((.*)\)$/) { }
1306 17 47 unless ($writable =~ /^(utf|string|undef)/)
1308 0 17 unless defined $val3
1313 0 0 if ($compress || $optCompress and not $dirInfo->{'IsCompressed'} and &HasZlib($et, "write"))
1318 0 0 if ($deflate)
1320 0 0 if defined $val4
1322 0 0 if (defined $val4) { }
1326 0 0 if ($saved > 0) { }
0 0 elsif ($verbose) { }
1327 0 0 if $verbose
1340 61 3 if ($len < 253) { }
3 0 elsif ($len < 65536) { }
0 0 elsif ($len <= 2147483647) { }
1354 0 64 unless &Write($outfile, $hdr, chr $len, $newTag, $extLen, $$valPt)
1357 59 5 unless ($editDirs->{$newTag})
1363 0 64 if defined $oldVal
1369 46 92 unless ($tagLen)
1371 0 46 if $valLen and not $raf->Seek($valLen, 1)
1374 44 2 unless ($toWrite)
1377 9 35 unless ($dirInfo->{'Parent'})
1379 7 2 ref $outfile eq 'SCALAR' ? :
1381 9 0 if ($len and $len <= 2147483647)
1385 0 44 unless &Write($outfile, $term)
1391 23 69 if ($format == 16 or $format == 24)
1394 23 0 if ($tagInfo and $tagInfo->{'SubDirectory'}) { }
1397 23 0 $subTable ? :
1411 0 23 $format & 8 ? :
1414 0 23 if $msg
1415 0 23 if (defined $msg) { }
1424 0 69 unless $raf->Read($oldVal, $valLen) == $valLen
1425 15 54 if ($toWrite)
1426 0 15 unless &Write($outfile, $toWrite)
1429 0 69 unless &Write($outfile, $oldHdr, $oldVal)
1432 0 46 if ($err) { }
0 46 elsif (not $ok || $msg) { }
2 44 elsif (not $msg and $toWrite) { }
1438 0 2 if $verbose
1463 27 113 if ($grp1 eq 'MIE-Main') { }
1465 0 27 if $n > 1
1467 0 113 if $n > 1
1469 0 113 if $cnt->{$grp1} > 1
1474 0 140 if ($verbose)
1483 0 746 unless $raf->Read($buff, 4) == 4
1485 0 746 unless $sync eq "~"
1489 606 140 if ($tagLen) { }
1490 0 606 unless $raf->Read($tag, $tagLen) == $tagLen
1491 0 606 if $tag lt $lastTag
1494 8 598 if $tag =~ s/\((.*)\)$//
1500 3 743 if ($valLen > 252)
1502 0 3 unless $raf->Read($buff, $n) == $n
1505 0 3 if ($valLen > 2147483647)
1512 140 606 unless ($tagLen)
1514 140 0 unless $valLen and not $raf->Seek($valLen, 1)
1522 570 36 if $tagInfo
1524 36 0 if ($tag =~ /\W/)
1525 36 0 if ($tag =~ /^(\w+)-([a-z]{2}_[A-Z]{2})$/) { }
1528 36 0 if $tagInfo
1529 36 0 if $tagInfo
1547 606 0 if ($tagInfo or $formatStr eq "MIE" and $format & 4)
1548 0 606 unless $raf->Read($value, $valLen) == $valLen
1549 0 606 if ($format & 4)
1550 0 0 if ($verbose)
1553 0 0 unless &HasZlib($et, "decode")
1556 0 0 if $inflate
1557 0 0 unless ($inflate and $stat == Compress::Zlib::Z_STREAM_END())
1567 113 493 if ($formatStr eq 'MIE') { }
1570 113 0 if ($tagInfo and $tagInfo->{'SubDirectory'}) { }
1573 113 0 $subTable ? :
1577 0 113 if ($verbose)
1588 0 113 if $valLen
1591 0 113 $format & 8 ? :
1595 0 113 if $msg
1598 493 0 if ($tagInfo) { }
1602 0 493 unless (defined $val)
1607 16 477 if $tag eq "0Type" or $tag eq "2MIME"
1608 0 493 if ($verbose)
1611 0 0 if ($s and not $formatStr =~ /^(utf|string|undef)/)
1614 0 0 $wasCompressed ? :
1623 5 488 if ($tagInfo->{'SubDirectory'}) { }
1635 5 0 unless ($wasCompressed)
1650 117 371 if ($notUTF8 and $formatStr =~ /^(utf|string)/)
1653 8 480 if ($formatStr =~ /_list$/)
1658 8 480 if (defined $units)
1659 0 8 if ref $val
1661 8 0 if defined $units
1664 65 423 if defined $rational and defined $key
1668 0 0 unless $raf->Seek($valLen, 1)
1669 0 0 if $verbose
1674 8 132 if $mime and not $dirInfo->{'Parent'}
1676 0 140 unless $ok or $msg
1677 0 140 if $verbose
1689 661 36 unless defined $et
1697 26 10 if ($dirInfo->{'Trailer'})
1699 0 26 unless $raf->Seek(-10 - $offset, 2)
1702 0 52 unless $raf->Read($buff, 10) == 10
1703 26 26 unless $buff =~ /~\0\0\x06.{4}(\x10|\x18)(\x04)$/s or $buff =~ /(\x10|\x18)(\x08)$/s
1705 26 0 $1 eq "\cP" ? :
1706 26 0 $2 eq "\cD" ? :
1707 0 26 unless my $curPos = $raf->Tell
1708 0 26 if $len < 12 or $len > $curPos
1710 0 26 if ($2 eq "\b")
1711 0 0 if $len < 14
1712 0 0 unless $raf->Seek($curPos - 14, 0) and $raf->Read($buff, 4)
1713 0 0 unless $buff eq "~\0\0\n"
1717 26 0 unless $end
1719 0 26 unless $raf->Seek($pos - 10, 0)
1722 0 26 unless defined $pos and $raf->Seek($pos, 0)
1726 0 26 if ($outfile and $et->{'DEL_GROUP'}{'MIE'}) { }
0 26 elsif ($et->Options('Verbose') or $et->{'HTML_DUMP'}) { }
1741 61 11 if ($num == 8) { }
10 1 elsif ($numDocs) { }
1743 35 26 if ($buff =~ /^~(\x10|\x18)\x04(.)0MIE/s) { }
1744 35 0 $1 eq "\cP" ? :
1747 0 35 if ($len > 252 and not $raf->Seek(1 << 256 - $len, 1))
1752 0 26 unless $numDocs
1753 0 26 if ($buff =~ /^~/) { }
1760 10 0 unless $num
1763 0 1 if $num or not $outfile
1770 26 36 if ($msg)
1771 26 0 if $dirInfo->{'Trailer'}
1772 0 0 if ($outfile) { }
1780 36 0 unless ($numDocs)
1798 9 27 if ($outfile) { }
1800 3 6 unless (%mieCode)
1806 3 6 unless $doneMieMap
1814 0 9 if ($msg) { }
0 18 elsif (defined $msg and $isCreating) { }
1823 0 27 if ($msg)
1832 0 36 $err ? :