Condition Coverage

blib/lib/Image/ExifTool.pm
Criterion Covered Total %
condition 814 1506 54.0


and 2 conditions

line l !l condition
5759 9719 9 0 $desc =~ s/ (0x[\da-f]+)$//i and $tagID = $1
5812 0 9 $self->Filter($filter, \$_) and $rtnVal = 1
5816 0 0 $self->Filter($filter, \$val{$_}) and $rtnVal = 1
7415 19 0 $$segDataPt =~ /^$Image::ExifTool::psAPP13old/ and $isOld = 1

and 3 conditions

line !l l&&!r l&&r condition
2094 5 4 508 ref $_[0] and UNIVERSAL::isa($_[0], "Image::ExifTool")
2138 17348 59 0 ref $oldVal eq "HASH" and $param eq 'Compact' || $param eq 'XMPShorthand'
2144 4835 0 7 $param eq "Exclude" and defined $newVal
2153 0 0 19 $langs{$newVal} and eval "require Image::ExifTool::Lang::$newVal"
2295 3978 59 0 $param eq "TimeZone" and defined $newVal
4037 0 0 $param eq "TimeZone" and defined $newVal and length $newVal
2297 60 5 0 defined $newVal and $newVal eq "XML"
60 0 5 defined $newVal and $newVal eq "HTML"
2444 527 1 2 ref $_[1] eq "HASH" and $_[1]{'ReEntry'}
1 0 2 ref $_[1] eq "HASH" and $_[1]{'ReEntry'} and ref $_[0] eq 'SCALAR' || ref $_[0] eq 'GLOB'
2492 61 0 0 not @startTime and $req->{'processingtime'}
2498 528 0 0 $req->{'imagedatamd5'} and not $self->{'ImageDataMD5'}
2533 0 0 486 defined $filename and $filename ne ""
2539 425 0 61 $reqAll and not $self->{'EXCL_TAG_LOOKUP'}{'basename'}
2544 0 0 486 defined $dir and length $dir
2545 425 0 61 $reqAll and not $self->{'EXCL_TAG_LOOKUP'}{'filepath'}
2557 486 0 0 $^O eq "darwin" and not $self->{'IN_RESOURCE'}
2559 486 0 0 $^O eq "MSWin32" and eval { do { require Win32API::File } }
2623 61 0 0 $^O eq "MSWin32" and defined $filename
61 0 0 $^O eq "MSWin32" and defined $filename and $filename ne ""
0 0 0 $^O eq "MSWin32" and defined $filename and $filename ne "" and $filename ne "-"
2633 0 0 0 defined $wattr and $wattr != 4294967295
2648 530 0 0 $^O eq "darwin" and defined $filename
530 0 0 $^O eq "darwin" and defined $filename and $filename ne ""
0 0 0 $^O eq "darwin" and defined $filename and $filename ne "" and defined $fileSize
2656 0 0 0 $mdItem and $plainFile
2661 24 506 0 defined $stat[2] and ($stat[2] & 61440) == 16384
2673 42 183 305 defined $ext and not defined $Image::ExifTool::magicNumber{$ext}
225 303 2 defined $ext and not defined $Image::ExifTool::magicNumber{$ext} and defined $moduleName{$ext}
486 2 0 defined $ext and not defined $Image::ExifTool::magicNumber{$ext} and defined $moduleName{$ext} and not $moduleName{$ext}
2682 0 0 0 $fast == 4 and $options->{'Composite'}
2718 9 27 0 defined $moduleName{$type} and not $moduleName{$type}
2721 561 9 0 $weakMagic{$type} and defined $recognizedExt
2740 569 1 0 $fast == 3 and not $processType{$type}
2741 0 0 0 $weakMagic{$type} and !$ext || $ext ne $type
2828 0 0 0 defined $type && ($fast || $self->{'FoundXMP'})
530 0 0 $self->Options("ScanForXMP") and not defined $type && ($fast || $self->{'FoundXMP'})
2839 255 25 250 defined $self->{'EXIF_DATA'} and length $self->{'EXIF_DATA'} > 16
280 152 98 defined $self->{'EXIF_DATA'} and length $self->{'EXIF_DATA'} > 16 and $req->{'exif'} || $self->{'TAGS_FROM_FILE'} && !$self->{'EXCL_TAG_LOOKUP'}{'exif'}
2857 0 0 0 defined $self->{'EXIF_POS'} and $pos != $self->{'EXIF_POS'}
2868 488 0 0 $rsize and $options->{'ExtractEmbedded'}
2885 529 0 1 $options->{'Validate'} and not $reEntry
2938 0 182 517 @_ and not defined $_[0]
2998 110 49 197 @$wildTags and $i == $wildTags->[0]
3015 0 3 0 $sort and $sort ne "Input"
3054 0 0 0 $info and not $sort
3060 0 19 417 $sort and $sort ne "Input"
3176 43499 0 53 $tagInfo->{'Struct'} and ref $value
3214 70678 0 650 ref $value eq "SCALAR" and not $tagInfo->{'ConvertBinary'}
3227 21227 1796 2112 $type eq "Both" and $convType eq "PrintConv"
3273 22371 0 2959 ref $val eq "HASH" and not @val
3308 76 0 1 $tagInfo->{'PrintHex'} and $val
76 1 0 $tagInfo->{'PrintHex'} and $val and &IsInt($val)
1 0 0 $tagInfo->{'PrintHex'} and $val and &IsInt($val) and $convType eq "PrintConv"
3320 7362 0 306 $self->{'CUR_LANG'} and $convType eq "PrintConv"
7362 45 261 $self->{'CUR_LANG'} and $convType eq "PrintConv" and ref($tmp = $self->{'CUR_LANG'}{$tagInfo->{'Name'}}) eq "HASH"
45 0 261 $self->{'CUR_LANG'} and $convType eq "PrintConv" and ref($tmp = $self->{'CUR_LANG'}{$tagInfo->{'Name'}}) eq "HASH" and $tmp = $tmp->{'PrintConv'}
3325 261 0 0 $conv->{'BITMASK'} and not defined $conv->{$val}
3366 15 118 0 $nextConv and $nextConv eq "REPEAT"
3376 24056 0 125 $convList and ref $value eq "ARRAY"
3404 34632 5 441 $self->{'OPTIONS'}{'Filter'} and $type eq "PrintConv"
3407 19 103 165 $type eq "PrintConv" and not $self->{'OPTIONS'}{'List'}
122 1 164 $type eq "PrintConv" and not $self->{'OPTIONS'}{'List'} and not ref $value->[0]
3430 0 2 23470 $tagInfo and defined $tagInfo->{'TagID'}
3459 128 0 1 $tagInfo->{'LangCode'} and ($name = $tagInfo->{'Name'}) =~ s/-$tagInfo->{'LangCode'}$//
128 0 1 $tagInfo->{'LangCode'} and ($name = $tagInfo->{'Name'}) =~ s/-$tagInfo->{'LangCode'}$// and $desc = $self->{'CUR_LANG'}{$name}
3517 77187 15407 99575 defined $family and $family ne -1
3524 2736 0 0 @families == 1 and $families[0] != 7
3586 0 2736 2736 $simplify and @grps
2736 2720 16 $simplify and @grps and $grp eq $grps[-1]
3589 0 16 2720 $simplify and @grps > 1
16 2720 0 $simplify and @grps > 1 and $grps[0] eq "Main"
3680 38009 2674 195 $tagInfo->{'SubDoc'} && $self->{'DOC_COUNT'}
3696 55782 0 5063 $notBuilt{$reqTag} and not $inhibit->{$index}
3728 24533 677 2142 $reqGroup eq "Composite" and $notBuilt{$name}
3731 274 1419 449 $inhibit->{$index} and $allBuilt
3739 25657 1 1 $reqTag =~ /\b(File\d+):/i and $self->{'ALT_EXIFTOOL'}{$1}
3889 0 0 0 defined $desc and $desc eq 0
3897 0 0 0 defined $module and $module eq 0
3912 49 919 443 $fileType and not ref $fileType
3915 49 919 0 $fileType and !defined($desc) || $desc ne '0'
3917 0 0 0 $Image::ExifTool::static_vars{'OverrideFileDescription'} and $Image::ExifTool::static_vars{'OverrideFileDescription'}{$fileExt}
3930 259 660 0 defined $mod and $mod eq 0
4160 0 1 0 $trunc and $pos + $n > length $$strPt
4165 38 39 0 $ch == 224 and (ord $1 & 224) == 128
77 0 0 $ch == 237 and (ord $1 & 224) == 160
76 1 0 $ch == 239 and ord $1 == 191
77 0 0 $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190
4170 75 0 0 $ch == 240 and (ord $1 & 240) == 128
75 0 0 $ch == 244 and ord $1 > 143
4210 1152 0 0 $^O eq "MSWin32" and $file =~ /[\x80-\xff]/
1152 0 0 $^O eq "MSWin32" and $file =~ /[\x80-\xff]/ and not defined $enc
4245 702 0 0 $file =~ /\|$/ && $self->{'TRUST_PIPE'}
4311 222 0 0 -e $file && !(-p $file)
4327 0 0 0 $attrs and $attrs != 4294967295
0 0 0 $attrs and $attrs != 4294967295 and $attrs & $dirBit
4419 1367 0 155 ref $arg and not overload::Method($arg, "\"\"")
4433 171 0 0 @oldGroupOpts and $opt =~ /^Group/
4446 1 0 22 ref $arg eq "SCALAR" and $] >= "5.006"
1 22 0 ref $arg eq "SCALAR" and $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$arg) } } || $@
4519 0 0 0 $grp =~ s/^0x0*// and $grp eq sprintf("%x", $id)
4522 0 1 0 $tmp =~ s/([^-_A-Za-z0-9])/sprintf "%.2x", ord $1;/eg and $grp eq $tmp
4678 868 0 15 $tag =~ s/#$// and $options->{'PrintConv'}
4679 693 190 0 defined $tagHash->{$reqTag} and not $doDups
4710 642 0 241 defined $group and not $allGrp
4763 631 0 68 $exclude || @groupOptions and @$rtnTags
4788 27 0 30 $group and @matches
4796 0 1 40 $duplicates and not @groupOptions
4839 1035 0 0 $wantTag and $wantTag < $wanted
4922 30 1 0 $ignorable eq 3 and $self->{'OPTIONS'}{'Validate'}
4936 32 16 0 $ignorable and $self->{'OPTIONS'}{'IgnoreMinorErrors'}
4970 0 0 516 $tagList and @$tagList
4988 7 1019 30 not $excl and $tag =~ /(.+?)([-+]?[<>].+)/s
4999 0 0 0 $p2 and /(.+:)(.+)/
5029 0 0 0 $pre and /(.+:)(.+)/
5094 5135 0 0 $override and not defined $tagInfo->{'Override'}
5216 224130 1 2987 $tagInfo->{'Mask'} and not defined $tagInfo->{'BitShift'}
5297 1300 0 0 $Image::ExifTool::swapWords and length $_[0] == 8
5594 26901 76 3141 $isRational{$format} and $ratPt
5636 5141 7 1089 $from ne $to and length $val
5640 0 0 1089 $cs1 and $cs2
0 0 1089 $cs1 and $cs2 and not $cs2 & 2
5796 12796 0 462 defined $filter and defined $$valPt
5846 0 0 0 $maxLen > 2048 and $verbose < 5
5864 0 0 8 $shift =~ s/^([-+])// && $1 eq '-'
5879 0 0 5 @a and $a[-1] >= 1000
0 0 5 @a and $a[-1] >= 1000 and $a[-1] < 3000
0 0 5 @a and $a[-1] >= 1000 and $a[-1] < 3000 and eval { do { require POSIX } }
5896 0 0 0 $frac =~ s/^(\d)// and $1 ne 0
5920 0 0 0 not $tz and eval { do { require Time::Local } }
5922 0 0 0 $tz && $tz =~ /^([-+]\d{2}):(\d{2})$/
5924 0 0 0 $fmt =~ /%s/ and eval { do { require Time::Local } }
5946 0 0 3 &IsFloat($val) and $val != 0
5951 1 0 2 $mult && $mult >= 60
5952 2 0 1 $val == 60 && $mult
6037 0 0 0 $dec =~ s/^(\d)// and $1 eq 1
6084 47 112 1 $tzStr and $tzStr =~ /^(\.\d+)/
6140 20 0 18 $bitrate >= 1000 and @units
6212 0 0 580 $raf->Seek(-$offset, 2) and ($len = $raf->Tell) > 0
6215 0 0 580 $raf->Seek(-$len, 1) and $raf->Read($buff, $len) == $len
6329 0 0 185 $result > 0 and $dirInfo->{'DirLen'}
6394 0 0 1178 $markerName and $markerName =~ /^([A-Z]+)\d+$/
6440 8 2 236 $self->{'FILE_TYPE'} eq "JPEG" and not $self->{'DOC_NUM'}
6446 0 0 246 $raf->Read($s, 2) == 2 and $s =~ /^\xff[\xd8\x4f\x01]/
6448 0 0 2 $raf->Read($s, 5) == 5 and $s eq "Exiv2"
6453 204 42 0 $options->{'RequestAll'} and $options->{'RequestAll'} > 2
6456 6 2 0 $self->{'DOC_NUM'} and $options->{'ExtractEmbedded'}
6491 246 1893 1 $marker and $marker == 217 || $marker == 218 && !$wantTrailer && !$md5 || $marker == 147
6506 246 0 0 $md5 and defined $marker
246 0 0 $md5 and defined $marker and $marker == 0 || $marker == 218 || $marker >= 208 && $marker <= 215
6510 0 0 1648 defined $len and $len >= 2
6519 0 0 0 defined $len and $len >= 4
6544 1894 0 0 $skipped and not $foundSOS
1894 0 0 $skipped and not $foundSOS and $markerName ne "SOS"
6555 1407 245 242 ($marker & 240) == 192 and $marker == 192 || $marker & 3
1163 0 243 $marker == 219 and length $$segDataPt
1163 243 0 $marker == 219 and length $$segDataPt and $req->{'jpegdigest'} || $req->{'jpegqualityestimate'} || $options->{'RequestAll'} && $options->{'RequestAll'} > 2
6573 0 0 242 $n == 3 and $length >= 15
6593 0 0 242 $hmin and $vmin
6602 3 0 0 $htmlDump and $dumpEnd
6637 0 0 0 $self->{'Make'} =~ /(Minolta|Sony)/i and $buff =~ /.\xd8\xff\xdb/g
6642 0 0 0 $raf->Seek($pos, 0) and $raf->Read($buff, $len) == $len
6659 0 0 0 $start and $start ne $actual
0 0 0 $start and $start ne $actual and $verbose > 1
6668 0 0 0 $self->{'PreviewError'} and $self->{'PreviewImageLength'}
6669 0 0 0 $raf->Seek($actual, 0) and $raf->Read($buff, $self->{'PreviewImageLength'})
6718 213 0 28 $trailInfo and $verbose < 3
213 0 28 $trailInfo and $verbose < 3 and not $htmlDump
6723 241 0 0 $wantTrailer and $self->{'PreviewImageStart'}
6727 0 0 0 $raf->Seek($self->{'PreviewImageStart'}, 0) and $raf->Read($buff, 4) == 4
0 0 0 $raf->Seek($self->{'PreviewImageStart'}, 0) and $raf->Read($buff, 4) == 4 and $buff =~ /^.\xd8\xff[\xc4\xdb\xe0-\xef]/
6758 0 0 0 $verbose and $marker
6828 69 0 1 $$segDataPt =~ /^FLIR\0/ and $length >= 8
6853 176 23 0 $nextMarker == $marker and $$nextSegDataPt =~ /^$Image::ExifTool::exifAPP1hdr(?!(MM\0\x2a|II\x2a\0))/
6878 12 4 0 not $plen and $self->{'PreviewError'}
6882 183 4 12 $start and $plen
187 0 12 $start and $plen and &IsInt($start)
4 0 12 $start and $plen and &IsInt($start) and &IsInt($plen)
0 12 0 $start and $plen and &IsInt($start) and &IsInt($plen) and $start + $plen > $self->{'EXIF_POS'} + length($self->{'EXIF_DATA'})
12 0 0 $start and $plen and &IsInt($start) and &IsInt($plen) and $start + $plen > $self->{'EXIF_POS'} + length($self->{'EXIF_DATA'}) and $req->{'previewimage'} || $options->{'Binary'} && !$self->{'EXCL_TAG_LOOKUP'}{'previewimage'}
6955 0 1 0 defined $_ and $flir .= $_
6986 0 69 0 $processed and not $start
6990 69 0 0 $verbose and not $processed
6995 87 0 34 $$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14
7020 34 34 0 defined $_ and $icc_profile .= $_
7042 2 19 46 $nextMarker == $marker && $$nextSegDataPt =~ /^FPXR\0/
7071 121 0 0 $preview and $nextMarker ne $marker
7125 21 0 0 $preview and $nextMarker ne 228
7130 1 0 0 $$segDataPt =~ /^SCALADO\0/ and $length >= 16
1 0 0 $self->{'Make'} eq "DJI" and $$segDataPt =~ /^\xaa\x55\x12\x06/
1 0 0 $self->{'Make'} eq "DJI" and $$segDataPt =~ /^(.{32})?.{32}\x2c\x01\x20\0/s
1 0 0 $self->{'Make'} eq "DJI" and $$segDataPt =~ /^.{32}\xaa\x55\x38\0/s
0 0 1 $self->{'HasIJPEG'} and $length >= 120
7153 0 0 0 $nextMarker == $marker && $$nextSegDataPt =~ /^FPXR\0/
7182 1 0 0 $preview and $nextMarker ne 229
7187 0 0 1 $self->{'HasIJPEG'} and $length >= 38
7213 2 0 0 $$segDataPt =~ /^TDHD\x01\0\0\0/ and $length > 12
0 0 1 $self->{'HasIJPEG'} and $length >= 129
7252 0 0 1 $self->{'HasIJPEG'} and $length >= 32
7305 1 0 19 $$segDataPt =~ /^SPIFF\0/ and $length == 32
0 0 1 $self->{'HasIJPEG'} and $length >= 32
7317 1 0 19 $$segDataPt =~ /^Media Jukebox\0/ and $length > 22
0 0 1 $self->{'HasIJPEG'} and $length >= 768
7332 0 0 0 $$segDataPt =~ /^AROT\0/ and $length > 10
7342 0 0 19 $$segDataPt =~ /^(JP..)/s and length $$segDataPt >= 16
7353 0 19 0 $nextMarker == $marker and $$nextSegDataPt =~ /^HDR_RI /
7370 19 0 0 $len == 1 and length $$segDataPt >= 24
7424 44 19 0 $nextMarker == $marker and $$nextSegDataPt =~ /^$Image::ExifTool::psAPP13hdr/
7453 29 0 16 $self->{'TAGS_FROM_FILE'} and not $self->{'EXCL_TAG_LOOKUP'}{'adobe'}
7466 0 0 19 $$segDataPt =~ /^Q\s*(\d+)/ and $length == 4
7493 1150 1 0 not $dumpType and $options->{'Unknown'} || $options->{'Validate'}
7551 245 0 0 $md5size and $verbose
7620 36 6 406 $dataPt and length $$dataPt
7651 404 2 0 $self->{'OPTIONS'}{'Verbose'} and length $self->{'INDENT'} > 2
7660 0 43 0 $dirInfo->{'DirName'} and $dirInfo->{'DirName'} eq "GPS"
7684 209 280 0 $fileType eq "APP1" and $identifier != 42
7695 3 20 17 $identifier == 42 and $offset >= 16
20 0 3 $identifier == 85 and $fileType =~ /^(RAW|RW2|RWL|TIFF)$/
7712 0 0 3 $offset >= 24 and $raf->Read($magic, 16)
0 0 3 $offset >= 24 and $raf->Read($magic, 16) and $magic eq "\210\347t\330\370%\35M\224znw\202+]j"
7723 13 0 0 $byteOrder eq "II" and ($identifier & 255) == 188
7748 0 2 38 $fileType and not $self->{'VALUE'}{'FileType'}
7757 13 27 0 not $outfile and $self->{'OPTIONS'}{'FastScan'}
27 0 0 not $outfile and $self->{'OPTIONS'}{'FastScan'} and $self->{'OPTIONS'}{'FastScan'} == 3
7760 296 175 18 $dirInfo->{'DirName'} && $dirInfo->{'DirName'} =~ /^(ExifIFD|GPS)$/
7811 27 0 0 $self->{'HTML_DUMP'} and $self->{'KnownTrailer'}
7820 363 2 0 $self->{'DNGVersion'} and not $self->{'FileType'} =~ /^(DNG|GPR)$/
7869 5 0 0 $pi and $pi->{'Fixup'}
7871 115 0 0 $self->{'TIFF_TYPE'} eq "ARW" and not $err
7884 111 0 10 ref $dirInfo{'ImageData'} and not $err
7894 111 1 12 $raf and $tiffEnd
112 0 12 $raf and $tiffEnd and not $err
7918 8 3 1 $extra > 0 and $tiffEnd & 1
7921 0 0 1 defined $buf and $buf eq "\0"
7925 3 0 0 $self->{'DEL_GROUP'}{'Trailer'} and not $known
7965 0 0 1 $ver =~ /^(\d+) (\d+)/ and "$1.$2" <= "1.6"
8038 1381 2267 924 $defaultGroups->{'0'} and $defaultGroups->{'1'}
8070 3989 581 2 %Image::ExifTool::UserDefined and $Image::ExifTool::UserDefined{$tableName}
581 0 2 %Image::ExifTool::UserDefined and $Image::ExifTool::UserDefined{$tableName} and $table ne \%Image::ExifTool::Composite
8085 89050 0 1344 $table eq \%Image::ExifTool::Composite and not $table->{'VARS'}{'LOADED_USERDEFINED'}
89050 1202 142 $table eq \%Image::ExifTool::Composite and not $table->{'VARS'}{'LOADED_USERDEFINED'} and %Image::ExifTool::UserDefined
1202 142 0 $table eq \%Image::ExifTool::Composite and not $table->{'VARS'}{'LOADED_USERDEFINED'} and %Image::ExifTool::UserDefined and $Image::ExifTool::UserDefined{$tableName}
8106 0 0 4988 $tagTablePtr and $dirInfo
8118 193 560 4235 defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'}
753 4234 1 defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and $dirInfo->{'DirLen'} || !defined($dirInfo->{'DirLen'})
8126 0 0 0 $dirName eq "GPS" and $self->{'PROCESSED'}{$addr} eq "InteropIFD"
8128 3839 347 0 $tagTablePtr->{'VARS'} and $tagTablePtr->{'VARS'}{'ALLOW_REPROCESS'}
8167 84 47 1826 $filename and $filename =~ /^.*\.([^.]+)$/s
8222 6919 5689 687 $condition =~ /\$(valPt|format|count)\b/ and not defined $valPt
8234 100256 928 2180 $tagInfo->{'Unknown'} and not $self->{'OPTIONS'}{'Unknown'}
101184 85 2095 $tagInfo->{'Unknown'} and not $self->{'OPTIONS'}{'Unknown'} and not $self->{'OPTIONS'}{'Verbose'} || $self->{'HTML_DUMP'} || $self->{'OPTIONS'}{'Validate'} && !$tagInfo->{'AddedUnknown'}
8244 0 4422 840 not $tagInfo and $self->{'OPTIONS'}{'Unknown'} || $self->{'OPTIONS'}{'Verbose'}
4422 121 719 not $tagInfo and $self->{'OPTIONS'}{'Unknown'} || $self->{'OPTIONS'}{'Verbose'} and $tagID =~ /^\d+$/
4543 129 590 not $tagInfo and $self->{'OPTIONS'}{'Unknown'} || $self->{'OPTIONS'}{'Verbose'} and $tagID =~ /^\d+$/ and not $self->{'NO_UNKNOWN'}
8302 4653 1 1442 defined $tagTablePtr->{'AVOID'} and not defined $tagInfo->{'Avoid'}
8353 873 0 574 $subdir and not $tagInfo->{'Writable'}
873 0 574 $subdir and not $tagInfo->{'Writable'} and not $tagInfo->{'RawConv'}
8359 0 0 873 $start >= 0 and $start + $size <= $dLen
8361 103 451 319 not $format and $pfmt
554 0 319 not $format and $pfmt and $formatSize{$pfmt}
8388 746 0 1 $tagInfo->{'RawConv'} and not $tagInfo->{'Writable'}
8436 0 0 1 $num & 65280 and $num >> 8 > ($num & 255)
8450 6584 0 12 defined $rational and defined $key
8487 2099 53152 39 not defined $priority and $tagInfo->{'Avoid'}
8496 7574 0 1814 ref $value eq "HASH" and $tagInfo->{'IsComposite'}
8564 587 3026 411 $self->{'DIR_NAME'} and $self->{'LOW_PRIORITY_DIR'}{$self->{'DIR_NAME'}}
8567 87 158 1822 not $priority and $self->{'DIR_NAME'}
158 1782 40 not $priority and $self->{'DIR_NAME'} and $self->{'DIR_NAME'} eq $self->{'PRIORITY_DIR'}
8575 2327 496 3268 $priority >= $oldPriority and !$self->{'DOC_NUM'} || $self->{'TAG_EXTRA'}{$tag} && $self->{'TAG_EXTRA'}{$tag}{'G3'} && $self->{'DOC_NUM'} eq $self->{'TAG_EXTRA'}{$tag}{'G3'}
456 53 2745 $priority >= $oldPriority and !$self->{'DOC_NUM'} || $self->{'TAG_EXTRA'}{$tag} && $self->{'TAG_EXTRA'}{$tag}{'G3'} && $self->{'DOC_NUM'} eq $self->{'TAG_EXTRA'}{$tag}{'G3'} and not $noListDel
8630 55300 116 1176 $tagInfo->{'List'} and not $self->{'NO_LIST'}
55416 65 1111 $tagInfo->{'List'} and not $self->{'NO_LIST'} and not $noListDel
8637 56357 22 213 $options->{'Validate'} and not ref $value
8706 603 0 48 $self->{'FileType'} and not $self->{'DOC_NUM'}
8711 44 289 270 defined $ext and $ext ne $fileType
333 0 270 defined $ext and $ext ne $fileType and not $self->{'DOC_NUM'}
8713 15 242 13 ref $f eq "ARRAY" and ref $e eq "ARRAY"
257 3 10 ref $f eq "ARRAY" and ref $e eq "ARRAY" and $f->[0] eq $e->[0]
8740 0 6 12 defined $self->{'VALUE'}{'FileType'} and $fileType ne $self->{'VALUE'}{'FileType'}
8785 9307 0 4 $self->{'OPTIONS'}{'Verbose'} and $self->{'OPTIONS'}{'Verbose'} > $level
8820 128 0 0 $verbose and $verbose > 2
8860 9 0 34 !$self->{'OPTIONS'}{'Binary'} || $self->{'EXCL_TAG_LOOKUP'}{$lcTag} and not $self->{'OPTIONS'}{'Verbose'}
9 0 34 !$self->{'OPTIONS'}{'Binary'} || $self->{'EXCL_TAG_LOOKUP'}{$lcTag} and not $self->{'OPTIONS'}{'Verbose'} and not $self->{'REQ_TAG_LOOKUP'}{$lcTag}
8866 0 5 8 $self->{'RAF'}->Seek($offset, 0) and $self->{'RAF'}->Read($buff, $length) == $length
8870 0 5 0 $isPreview and not $self->{'BuildingComposite'}
8910 2113 0 0 $unknown > 1 and defined $tagTablePtr->{'FIRST_ENTRY'}
8937 0 0 0 $topIndex and $$tagTablePtr{$index - $topIndex}
8955 16696 262 0 $tagInfo->{'Unknown'} and $tagInfo->{'Unknown'} > $unknown || $index < $nextIndex
9007 0 0 0 $tagInfo->{'LargeTag'} and $dirInfo->{'VarFormatData'}
9063 292 1 0 $varSize != $oldVarSize and $verbose > 2
9081 16684 0 0 $tagInfo->{'LargeTag'} and $self->{'EXCL_TAG_LOOKUP'}{lc $tagInfo->{'Name'}}
9083 16499 0 185 defined $val and not $tagInfo->{'SubDirectory'}
9089 16486 0 198 $verbose and not $tagInfo->{'Hidden'}
9113 2 0 12 $tagInfo->{'Format'} and $formatSize{$format}
9118 0 0 2 $subTablePtr->{'PROCESS_PROC'} and $subTablePtr->{'PROCESS_PROC'} eq \&Image::ExifTool::ProcessBinaryData
9139 0 0 0 $len and $len <= $dataLen - $start
9156 16632 0 38 $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} ne 3

or 2 conditions

line l !l condition
2047 490 0 ref $that || $that || 'Image::ExifTool'
2438 2 528 $options->{'FastScan'} || 0
2440 61 469 $options->{'RequestAll'} || 0
2784 0 0 &GetFileType($realname) || ''
2855 0 0 $self->{'FIRST_EXIF_POS'} || 0
2961 2 35 $nonVal{$_} || 0
2985 699 0 $self->{'REQUESTED_TAGS'} || []
3065 0 414 $1 || 0
3144 0 0 $self->{'DUPL_TAG'}{$tg} || 0
3454 254 9 $desc = $desc->{'Description'} or last
3460 0 0 $desc = $desc->{'Description'} or last
3500 70642 0 $self->{'TAG_INFO'}{$tag} || {}
3507 36088 0 $tagInfo->{'Table'} || {'GROUPS', {}}
3512 100914 0 $tagTablePtr->{'GROUPS'}{$_} || ''
3562 255 89521 defined $groups[$_] or $groups[$_] = ""
3566 28855 0 $groups[$family] || ''
3571 0 34 $1 || '1'
3681 35060 5818 $tagInfo->{'Require'} || {}
3682 17961 22917 $tagInfo->{'Desire'} || {}
3683 2596 38282 $tagInfo->{'Inhibit'} || {}
3701 0 0 $2 || 0
3711 0 285 $self->{'DUPL_TAG'}{$reqTag} || 0
3721 0 0 $ex->{$_}{'G3'} || 0
3744 508 25151 $et->{'DUPL_TAG'}{$name} || 0
4326 0 0 eval { do { Win32API::File::FILE_ATTRIBUTE_DIRECTORY() } } || 0
4627 8 0 $et->{'TAG_EXTRA'}{$tag} || {}
4628 8 0 $et->{'FILE_ORDER'}{$tag} || 0
4645 699 0 $self->{'REQUESTED_TAGS'} || []
4721 0 0 $et->{'PRIORITY'}{$tag} || 1
4727 0 0 $priority || 1
4805 20 9 $1 || 0
5100 0 344 $tagInfo->{'Override'} || 0
0 344 $$compTable{$compositeID{$tagID}[0]}{'Override'} || 0
6209 185 395 shift() || 0
6256 0 57 $dirInfo->{'Offset'} || 0
6429 2 244 $options->{'FastScan'} || 0
7510 1 0 $self->{'VALUE'}{'HasExtendedXMP'} || ''
7512 1 0 $options->{'ExtendedXMP'} || 0
7612 440 55 $dirInfo->{'Parent'} || ''
7614 374 121 $dirInfo->{'Base'} || 0
7648 368 38 $dirInfo->{'DirStart'} || 0
7945 0 0 &CopyBlock($raf, $outfile, $size - $n) or $err = 1
7956 0 0 $self->WriteTrailerBuffer($trailInfo, $outfile) or $err = 1
7959 2 0 &Write($outfile, $$trailPt) or $err = 1
8108 3537 1040 $tagTablePtr->{'PROCESS_PROC'} || \&Image::ExifTool::Exif::ProcessExif
8122 2685 1501 $dirInfo->{'Base'} || 0
8354 865 8 $parms{'Start'} || 0
8379 0 0 $parms{'Size'} || 0
0 0 $formatSize{$format} || 1
8545 1692 4399 $self->{'DUPL_TAG'}{$tag} || 0
8729 600 3 $mimeType || 'application/unknown'
8891 1361 752 $dirInfo->{'DirStart'} || 0
8894 1037 1076 $dirInfo->{'Base'} || 0
8897 861 1252 $dirInfo->{'DataPos'} || 0
8901 1375 738 $tagTablePtr->{'FORMAT'} || 'int8u'
8999 0 0 $formatSize{$format} || 1
9075 0 0 $formatSize{$format} || 1
9091 198 0 $formatSize{$format} || 1
9131 0 14 $subdir->{'Start'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
2138 0 0 59 $param eq 'Compact' || $param eq 'XMPShorthand'
2144 363 1 4471 $param =~ /^Charset/ or $param eq "IPTCCharset"
0 1 4162 $param eq "Compact" or $param eq "XMPShorthand"
2174 60 59 0 $param eq "CharsetEXIF" or $param eq "CharsetFileName"
119 0 0 $param eq "CharsetEXIF" or $param eq "CharsetFileName" or $param eq "CharsetRIFF"
2221 0 0 0 length $newVal or $force
2444 2 0 0 ref $_[0] eq 'SCALAR' || ref $_[0] eq 'GLOB'
2461 11 0 517 defined $_[0] or $options->{'HtmlDump'}
0 1 516 defined $_[0] or $options->{'HtmlDump'} or $req->{'validate'}
2485 0 61 467 $req->{'now'} or $reqAll
2486 0 61 467 $req->{'newguid'} or $reqAll
2488 0 61 467 $req->{'filesequence'} or $reqAll
2490 0 61 467 $req->{'processingtime'} or $reqAll
2539 0 206 280 $req->{'basename'} or $reqAll and not $self->{'EXCL_TAG_LOOKUP'}{'basename'}
2545 0 206 280 $req->{'filepath'} or $reqAll and not $self->{'EXCL_TAG_LOOKUP'}{'filepath'}
2576 0 0 486 $filename eq "-" or $filename =~ /\|$/
2588 530 0 0 $raf or $isDir
2619 0 61 445 $options->{'SystemTags'} || $reqAll && !defined($options->{'SystemTags'})
2620 61 0 445 $sys or $req->{'fileattributes'}
2638 61 0 445 $sys or $req->{'filedevicenumber'}
2639 61 0 445 $sys or $req->{'fileinodenumber'}
2640 61 0 445 $sys or $req->{'filehardlinks'}
2641 61 0 445 $sys or $req->{'fileuserid'}
2642 61 0 445 $sys or $req->{'filegroupid'}
2643 61 0 445 $sys or $req->{'filedeviceid'}
2644 61 0 445 $sys or $req->{'fileblocksize'}
2645 61 0 445 $sys or $req->{'fileblockcount'}
2649 0 0 0 $reqAll > 1 || $req->{'macos:'}
2650 0 0 0 $reqMacOS || $req->{'filecreatedate'}
2651 0 0 0 $reqMacOS || $options->{'MDItemTags'} || grep(/^mditem/, keys %$req)
2652 0 0 0 $reqMacOS || $options->{'XAttrTags'} || grep(/^xattr/, keys %$req)
2653 0 0 0 $crDate or $mdItem
0 0 0 $crDate or $mdItem or $xattr
2661 0 0 530 $isDir or defined $stat[2] and ($stat[2] & 61440) == 16384
2715 532 2 1355 $buff =~ /^$Image::ExifTool::magicNumber{$type}/s or $noMagic{$type}
2741 0 0 0 !$ext || $ext ne $type
2780 530 0 0 defined $type or $self->{'DOC_NUM'}
2790 0 0 0 length $buff < 16 or $buff =~ /[^\Q$ch\E]/
2839 1 97 152 $req->{'exif'} || $self->{'TAGS_FROM_FILE'} && !$self->{'EXCL_TAG_LOOKUP'}{'exif'}
2919 0 0 530 not defined $type or exists $self->{'VALUE'}{'Error'}
3015 3 0 3 @$reqTags or $sort and $sort ne "Input"
3055 0 0 0 $self->{'FOUND_TAGS'} || $self->SetFoundTags
3062 0 0 417 $sort eq "Tag" or $sort eq "Alpha"
3079 0 0 414 $sort2 eq "Tag" or $sort2 eq "Alpha"
3107 1 0 0 $self->{'FOUND_TAGS'} || $self->SetFoundTags
3284 7666 9297 383 defined $val[$_] or not $tagInfo->{'Require'}{$_}
3431 10 23001 459 $tagInfo->{'KeysID'} || $tagInfo->{'TagID'}
3520 0 0 0 $ex && $ex->{'G0'} || $groups->{'0'}
3526 166 67818 0 $ex && $$ex{"G$family"} || $groups->{$family}
67642 342 28855 $family == 0 or $family == 2
3530 0 380 0 $ex && $ex->{'G0'} || $groups->{'0'}
3541 218 37 0 $ex->{'G5'} || $groups[1]
3553 36 43990 862 $tagInfo->{'KeysID'} || $tagInfo->{'TagID'}
3690 48425 1938 9154 $require->{$index} || $desire->{$index} || $inhibit->{$index}
3725 0 285 0 $cacheTag->[$doc] || "$reqTag (0)"
3753 2062 23597 0 $key || "$name (0)"
3915 919 0 0 !defined($desc) || $desc ne '0'
3953 0 0 0 &GetFileExtension($file) || uc $file
3957 0 0 0 &GetFileExtension($file) || uc $file
3974 0 23 0 &GetFileExtension($file) || uc $file
3976 23 0 0 $createTypes{$ext} or $createTypes{$type}
4145 29 1 153 $ch < 194 or $ch >= 248
4165 0 0 77 $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160
0 0 77 $ch == 224 and (ord $1 & 224) == 128 or $ch == 237 and (ord $1 & 224) == 160 or $ch == 239 and ord $1 == 191 and (ord substr($1, 1) & 254) == 190
4170 0 0 75 $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143
0 0 75 $ch == 240 and (ord $1 & 240) == 128 or $ch == 244 and ord $1 > 143 or $ch > 244
4211 0 0 0 $file =~ /[\x80-\xff]/ or $force
4252 0 0 0 $mode eq ">" or $mode eq ">>"
4278 0 0 0 not defined $fd or $fd < 0
4420 22 1 19 ref $arg eq "SCALAR" or UNIVERSAL::isa($arg, "GLOB")
4446 0 0 22 eval { do { require Encode; &Encode::is_utf8($$arg) } } || $@
4488 41 0 669 @exclude or $wasExcludeOpt
4558 0 0 15871 $grp eq "*" or $grp eq "all"
4591 1 5 63 @$list1 or @$list2
4650 691 6 2 $duplicates || $exclude || @groupOptions
4668 6 0 0 $self->{'ALT_EXIFTOOL'}{$g8} || $self
4679 738 1 0 $doDups or defined $group
4683 138 0 1 $doDups or $allGrp
4694 5 0 0 $doDups or $allGrp
4713 191 35 15 @matches or not $allTag
4719 145 1 0 $doDups or $allTag
146 0 0 $doDups or $allTag or $allGrp
4763 41 27 631 $exclude || @groupOptions
4853 0 0 0 not $bestTag =~ / \((\d+)\)$/ or $1 > $tagNum
4990 10 13 7 $post =~ /^[-+]?>/ or not $post =~ /\$/
5024 1 0 16 length $pre or length $post
1 0 16 length $pre or length $post or $v
5484 0 0 15316 $pack1d eq "\000\000\cO\363\000\000\000\000" || $pack1d eq "\000\000\360?\000\000\000\000"
5584 8 21 1331 defined $count or $size < $len
5642 700 76 313 ($cs1 | $cs2) & 1664 or $val =~ /[\x80-\xff]/
5705 76 0 130 $$imagePt =~ /^(Binary data|\xff\xd8\xff)/ or $$imagePt =~ s/^.(\xd8\xff\xdb)/\377$1/s
76 10 120 $$imagePt =~ /^(Binary data|\xff\xd8\xff)/ or $$imagePt =~ s/^.(\xd8\xff\xdb)/\377$1/s or $self->Options("IgnoreMinorErrors")
6216 26 0 421 $buff =~ /~\0\x04\0zmie~\0\0\x06.{4}[\x10\x18]\x04$/s or $buff =~ /~\0\x04\0zmie~\0\0\x0a.{8}[\x10\x18]\x08$/s
6456 238 0 8 not $self->{'VALUE'}{'FileType'} or $self->{'DOC_NUM'} and $options->{'ExtractEmbedded'}
6491 242 1 1648 $marker == 217 || $marker == 218 && !$wantTrailer && !$md5 || $marker == 147
6506 0 0 0 $marker == 0 || $marker == 218 || $marker >= 208 && $marker <= 215
6555 242 0 245 $marker == 192 || $marker & 3
0 0 242 $req->{'jpegdigest'} || $req->{'jpegqualityestimate'} || $options->{'RequestAll'} && $options->{'RequestAll'} > 2
6607 1 2 0 $foundSOS or $self->{'FILE_TYPE'} eq "EXV"
6629 0 0 0 $start or $options->{'ExtractEmbedded'}
6637 0 0 0 $buff =~ /\xff\xd8\xff./g or $self->{'Make'} =~ /(Minolta|Sony)/i and $buff =~ /.\xd8\xff\xdb/g
6696 1 0 2 $verbose or $htmlDump
6743 0 0 241 $trailInfo or $wantTrailer
0 1 240 $trailInfo or $wantTrailer or $verbose > 2
1 0 240 $trailInfo or $wantTrailer or $verbose > 2 or $htmlDump
6746 0 0 241 $options->{'Validate'} or $calcImageLen
0 0 241 $options->{'Validate'} or $calcImageLen or $req->{'trailer'}
0 0 241 $options->{'Validate'} or $calcImageLen or $req->{'trailer'} or $md5
6754 0 0 1 $verbose > 2 or $htmlDump
6878 183 0 16 not $start or not $plen and $self->{'PreviewError'}
6882 0 0 0 $req->{'previewimage'} || $options->{'Binary'} && !$self->{'EXCL_TAG_LOOKUP'}{'previewimage'}
6977 69 0 0 $$segDataPt =~ /^(http|XMP\0)/ or $$segDataPt =~ /<(exif:|\?xpacket)/
7076 1 0 0 $self->{'HasIJPEG'} or $self->{'Make'} eq "DJI"
7415 63 0 19 $$segDataPt =~ /^$Image::ExifTool::psAPP13hdr/ or $$segDataPt =~ /^$Image::ExifTool::psAPP13old/ and $isOld = 1
7453 0 35 10 $req->{'adobe'} or $self->{'TAGS_FROM_FILE'} and not $self->{'EXCL_TAG_LOOKUP'}{'adobe'}
7482 0 0 2 $reg == 0 || $reg == 65535
7493 0 0 1 $options->{'Unknown'} || $options->{'Validate'}
7528 1 0 0 $guid eq $readGuid or $readGuid eq 2
7634 0 0 1 $n or not $outfile
0 0 1 $n or not $outfile or $fileType ne "EXIF"
7649 353 53 0 $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart
7723 0 0 13 $identifier == 20306 or $identifier == 21330
7750 38 0 0 ref $lookup or not $lookup
7753 37 0 1 $baseType eq 'TIFF' || $fileType =~ /RAW/
7761 239 174 76 not $tagTablePtr or $tagTablePtr->{'GROUPS'}{'0'} eq "EXIF"
7858 0 1 120 $fileType eq "ORF" or $identifier != 42
7943 0 0 0 &Write($outfile, scalar "\0" x ($extra - $size)) or $err = 1, last
8048 514 1 4057 $defaultGroups->{'0'} eq "XMP" or $table->{'NAMESPACE'}
8060 759 3713 0 $tableName =~ /Image::.*?::(.*)::Main/ or $tableName =~ /Image::.*?::(.*)/
8118 4185 1 49 $dirInfo->{'DirLen'} || !defined($dirInfo->{'DirLen'})
8234 0 4 2095 $self->{'OPTIONS'}{'Verbose'} || $self->{'HTML_DUMP'} || $self->{'OPTIONS'}{'Validate'} && !$tagInfo->{'AddedUnknown'}
8244 802 38 4422 $self->{'OPTIONS'}{'Unknown'} || $self->{'OPTIONS'}{'Verbose'}
8311 6072 2 22 defined $tagInfo->{'Name'} or $noPrefix
6074 0 22 defined $tagInfo->{'Name'} or $noPrefix or not $tagTablePtr->{'TAG_PREFIX'}
8317 13 1 6082 length $name < 2 or not $name =~ /^[A-Z]/i
8321 83 0 6013 defined $tagTablePtr->{$tagID} or $Image::ExifTool::specialTags{$tagID}
8341 1608 5735 2159 $parms{'TagInfo'} || $self->GetTagInfo($tagTablePtr, $tag, \$val, $pfmt, $parms{'Count'})
8353 5896 1377 70 defined $val or $subdir and not $tagInfo->{'Writable'} and not $tagInfo->{'RawConv'}
8360 78 25 770 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'}
8429 162 585 0 $subdir->{'DirName'} || $tagInfo->{'Name'}
8442 747 0 0 &GetTagTable($subdir->{'TagTable'}) || $tagTablePtr
8443 59 35 653 $subdir->{'ProcessProc'} || $parms{'ProcessProc'}
8555 1006 1588 2589 $self->{'DOC_NUM'} or not $self->{'TAG_EXTRA'}{$tag}
2594 0 2589 $self->{'DOC_NUM'} or not $self->{'TAG_EXTRA'}{$tag} or $tag eq "Warning"
1588 2554 35 $self->{'DOC_NUM'} or not $self->{'TAG_EXTRA'}{$tag} or $tag eq "Warning" or not $self->{'TAG_EXTRA'}{$tag}{'G3'}
8564 0 0 4024 $self->{'LOW_PRIORITY_DIR'}{'*'} or $self->{'DIR_NAME'} and $self->{'LOW_PRIORITY_DIR'}{$self->{'DIR_NAME'}}
8575 2780 488 496 !$self->{'DOC_NUM'} || $self->{'TAG_EXTRA'}{$tag} && $self->{'TAG_EXTRA'}{$tag}{'G3'} && $self->{'DOC_NUM'} eq $self->{'TAG_EXTRA'}{$tag}{'G3'}
8715 4 0 6 $f->[0] eq $fileType or not $Image::ExifTool::fileTypeLookup{$f->[0]}
8720 583 0 20 $mimeType or $baseType eq "TIFF"
8765 8 0 0 $mime =~ m[/] or $mime = $Image::ExifTool::mimeType{$mime}
8803 0 0 0 $name->{'Name'} || $name->{'DirName'}
8807 22 0 22 $entries || defined $entries && !$size
8860 34 0 9 !$self->{'OPTIONS'}{'Binary'} || $self->{'EXCL_TAG_LOOKUP'}{$lcTag}
8899 30 0 2083 not defined $size or $size > $maxLen
8955 1 0 261 $tagInfo->{'Unknown'} > $unknown || $index < $nextIndex
9014 2 168 15 $format eq "pstr32" or $format eq "ustr32"
9042 0 0 185 not defined $count or $count > $more
9046 0 168 14 $format eq "ustring" or $format eq "ustr32"
9090 198 0 0 not $tagInfo->{'SubDirectory'} or $tagInfo->{'Format'}
9137 0 0 0 $start < $dirStart or $start > $dataLen

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
4595 0 154 0 79 $exclude->{$tag} xor $inv
4605 1019 235 3486 2124 $exclude->{$_} xor $inv