Condition Coverage

blib/lib/Image/ExifTool/Writer.pl
Criterion Covered Total %
condition 824 1552 53.0


and 2 conditions

line l !l condition
826 10369 21129 $writeGroup eq "MakerNotes" and $permanent = 1
2193 0 0 $self->SetFileModifyDate($infile) > 0 and $rtnVal = 1
2194 0 0 $self->SetFileModifyDate($infile, undef, "FileCreateDate") > 0 and $rtnVal = 1
2500 0 0 $rtnVal and $rtnVal = -1
2537 0 0 $rtnVal and $rtnVal = -1
4853 2044 6 0 length $_ < 2 and $_ = "0$_"

and 3 conditions

line !l l&&!r l&&r condition
353 281 26 5311 defined $value and not ref $value
307 3 5308 defined $value and not ref $value and not $options{'Sanitized'}
369 0 0 2427 length $_ and /^(\d+)?(.*)/
375 1 0 0 defined $f and $f ne 7
392 5569 1 48 $tag eq "*" and not defined $value
5570 2 46 $tag eq "*" and not defined $value and not $family2
3 0 46 $tag eq "*" and not defined $value and not $family2 and @wantGroup < 2
395 39 0 7 $options{'Replace'} && $options{'Replace'} > 1
399 7 23 4 @del and $remove
431 0 0 3 $$delGroup{"$x-*"} and not $$delGroup{"-$grp"}
465 45 0 1 $verbose > 1 and @donegrps
498 2262 12 19 defined $fg->[0] and $fg->[0] != 1
502 6 1071 498 not $ifdName and /^XMP\b/i
510 274 0 0 $ifdName and $allFam0{$_}
527 1575 0 699 $grpName and $grpName ne $_
577 29 20 0 not $pre and uc $origTag eq "TAG"
616 47435 1331 112 $tagInfo->{'WriteGroup'} && $tagInfo->{'WriteGroup'} eq 'All'
625 108 0 132 $fam != 1 and not $tagInfo->{'AllowGroup'}
629 2146 5 4 $wgAll and not $writeGroup
637 83 12 15 $wgAll and not $fam
95 10 5 $wgAll and not $fam and $allFam0{$lcWant}
644 32426 6 1 $tagInfo->{'AllowGroup'} && $lcWant =~ /^$tagInfo->{'AllowGroup'}$/i
645 1109 10 434 $ifdName and $lcWant eq lc $ifdName
646 1075 12 32 $wgAll and not $fam
1087 25 7 $wgAll and not $fam and $allFam0{$lcWant}
650 385 39 10 $wgAll and $allFam0{$lcWant}
39 8 2 $wgAll and $allFam0{$lcWant} and $fam
656 15 0 1 $movGroup and $lcWant eq lc $movGroup
660 72 1426 28 $grp and $lcWant eq lc $grp
664 742 0 2 $mieGroup and $lcWant eq lc $mieGroup
667 2 0 0 $writeGroup =~ /^MIE\d+$/ and $tagInfo->{'Table'}{'WRITE_GROUP'}
691 0 119 33317 $writeProc and &$writeProc()
696 1 0 20850 $table->{'WRITABLE'} and not defined $writable
1 0 20850 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
698 13403 80 0 $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
718 32399 1005 31 $noFlat and defined $tagInfo->{'Flat'}
735 31566 508 198 $table->{'GROUPS'}{'0'} eq "QuickTime" and !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
768 0 9378 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0
9378 0 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0 and %{$self->{'WRITE_PRIORITY'};}
774 8055 0 1332 $avoid{$lcTag} and $preferred{$lcTag}
821 31759 271 221 defined $listOnly and ($listOnly xor $tagInfo->{'List'})
845 24 0 0 $options{'DelValue'} and defined $shiftable
24 0 0 $options{'DelValue'} and defined $shiftable and $shiftable eq "Time"
847 0 0 164 defined $value && length $value
0 164 0 $shift and not defined $value && length $value
856 117 47 0 defined $shiftable and not $shiftable
164 0 0 defined $shiftable and not $shiftable and $shift || $shiftable eq '0' && $options{'DelValue'}
868 21352 39 9 $addValue and not $shift || $tagInfo->{'List'}
877 20938 289 0 not length $val and $options{'DelValue'}
21168 22 2 ref $val eq "HASH" and not $tagInfo->{'Struct'}
878 117 0 47 $tagInfo->{'Shift'} and $tagInfo->{'Shift'} eq "Time"
932 3966 0 3 $tagInfo->{'DelGroup'} and not $options{'DelValue'}
960 19725 9485 2775 not defined $val and defined $value
973 19 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
19 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
989 19601 0 54 $options{'DelValue'} && !$shift
992 19136 211 308 $tagInfo->{'List'} and not $options{'Replace'}
1037 3362 8 358 $tagInfo->{'List'} and not $options{'DelValue'}
3312 0 58 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1062 226 0 1 $verbose > 1 and @grps
1075 505 0 0 defined $nvHash->{'AddBefore'} and @{$nvHash->{'Value'};} >= $nvHash->{'AddBefore'}
1092 7 0 0 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1120 30 0 43 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
30 0 43 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
1148 11 75 148 $n and $pref->{$tagInfo}
1150 223 11 0 $Image::ExifTool::evalWarning and !$err || $verbose > 2
1163 3676 434 85 defined $err and not $prioritySet
3057 0 434 $err and not $verbose
1164 0 85 0 $err and not wantarray
1169 25 335 12 $options{'Replace'} and $options{'Replace'} == 2
1173 0 0 240 $wantGroup and @matchingTags
1246 0 43 15 $structOpt eq 2 and not @setTags
1299 58 0 0 $options->{'FastScan'} && $options->{'FastScan'} > 1
1337 58 0 0 $info->{'Error'} and $info->{'Error'} eq "Error opening file"
1353 2648 0 0 $opts{'SrcType'} and $opts{'SrcType'} ne $srcType
1425 0 0 32 length $_ and /^(\d+)?(.*)/
1439 34 20 2 $tag =~ /[?*]/ and $tag ne "*"
1483 5735 514 14 $set->[3]{'WILD'} and $lcTag =~ /^$set->[1]$/
1499 0 0 0 defined $grp[$f] and $g eq $grp[$f]
1523 5 0 0 $dstTag =~ /[?*]/ and $dstTag ne "*"
1531 1444 0 0 $opts->{'SrcType'} and $opts->{'SrcType'} ne $srcType
1562 1267 118 26 $srcExifTool->{'TAG_INFO'}{$tag}{'Protected'} and $srcExifTool->{'TAG_INFO'}{$tag}{'Binary'}
1579 659 759 0 $wrn and not $noWarn
1605 2644 49 3930 ref $tag eq "HASH" and $tag->{'IsNVH'}
1611 1068 1458 0 defined($tagInfo = $Image::ExifTool::Extra{$tag}) and $tagInfo->{'Writable'}
1637 0 0 0 /^ID-(.*)/i and &IsSameID($tagInfo->{'TagID'}, $1)
1650 2599 1767 2257 $nvHash and $nvHash->{'Value'}
1664 32 0 26 $nvHash->{'Shift'} and $table
1834 0 0 0 $tag eq "FileCreateDate" and $^O ne "MSWin32"
1891 0 0 1 defined $filename and $self->IsOverwriting($nvHash, $file)
1893 1 0 0 defined $dir and $self->IsOverwriting($nvHash, $file)
1909 0 0 0 $newName =~ /:/ and not $newName =~ /^[A-Z]:[^:]*$/i
1913 0 0 0 $newName =~ /\?/ and not $newName =~ m[^[\\/]{2}\?[\\/][^?]*$]
1924 0 0 0 length $newName > 259 and not $newName =~ /\?/
1933 1 0 0 $self->Exists($newName) and !defined($usedFlag) || $usedFlag
1973 0 0 0 not $file =~ m[^/] and $newName =~ m[/]
2151 232 0 0 $setModDate and $self->IsOverwriting($nvHash) < 0
232 0 0 $setModDate and $self->IsOverwriting($nvHash) < 0 and defined $infile
0 0 0 $setModDate and $self->IsOverwriting($nvHash) < 0 and defined $infile and ref $infile ne "SCALAR"
2157 232 0 0 $setCreateDate and $self->IsOverwriting($nvHash2) < 0
232 0 0 $setCreateDate and $self->IsOverwriting($nvHash2) < 0 and defined $infile
0 0 0 $setCreateDate and $self->IsOverwriting($nvHash2) < 0 and defined $infile and ref $infile ne "SCALAR"
2167 228 0 4 not defined $outfile and defined $infile
2171 4 0 0 defined $hardLink and not length $hardLink
2172 4 0 0 defined $symLink and not length $symLink
2173 4 0 0 defined $testName and not length $testName
2176 4 0 0 defined $newDir and length $newDir
2181 3 0 0 defined $newFileName and length $newFileName
2183 0 0 1 defined $newFileName || defined $newDir and not ref $infile
2198 0 0 0 $hardLink and $self->SetFileName($infile, $hardLink, "HardLink")
2199 0 0 0 $symLink and $self->SetFileName($infile, $symLink, "SymLink")
2200 0 0 0 $testName and $self->SetFileName($infile, $testName, "Test")
2226 23 0 203 defined $infile and $infile ne ""
2228 0 4 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2330 5 225 0 not ref $infile and $infile eq '-' || $infile =~ /\|$/
2357 0 23 242 $Image::ExifTool::magicNumber{$type} and length $hdr
23 207 35 $Image::ExifTool::magicNumber{$type} and length $hdr and not $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s
2422 0 0 0 $fileType and defined $rtnVal
2446 0 0 0 $infile and &GetFileType($infile)
2459 208 0 23 $outType and $type
208 23 0 $outType and $type and $outType ne $type
2466 0 231 0 $rtnVal > 0 and not &Tell($outRef)
231 0 0 $rtnVal > 0 and not &Tell($outRef) and not $self->{'VALUE'}{'Error'}
2468 0 0 0 defined $hdr and length $hdr
2491 0 0 1 seek $inRef, 0, 2 and ($size = tell $inRef) >= 0
0 0 1 seek $inRef, 0, 2 and ($size = tell $inRef) >= 0 and seek $inRef, 0, 0
0 0 1 seek $inRef, 0, 2 and ($size = tell $inRef) >= 0 and seek $inRef, 0, 0 and print $inRef $outBuff
0 0 1 seek $inRef, 0, 2 and ($size = tell $inRef) >= 0 and seek $inRef, 0, 0 and print $inRef $outBuff and $len >= $size || eval { do { truncate $inRef, $len } }
2503 203 0 0 $^O eq "darwin" and -s "$infile/..namedfork/rsrc"
2527 0 0 0 $err and $self->Error("Error $err Mac OS resource fork", 2)
2560 0 211 20 $rtnVal > 0 and $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2565 194 0 0 $setModDate and $self->SetFileModifyDate($target, $originalTime, undef, 1) > 0
2567 194 0 0 $setCreateDate and $self->SetFileModifyDate($target, $createTime, "FileCreateDate", 1) > 0
2569 194 0 0 defined $hardLink and $self->SetFileName($target, $hardLink, "HardLink")
2570 194 0 0 defined $symLink and $self->SetFileName($target, $symLink, "SymLink")
2607 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2618 0 0 0 $tagInfo->{'SubDirectory'} and not $tagInfo->{'Writable'}
2652 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2672 0 0 0 $table->{'WRITABLE'} and not defined $writable
0 0 0 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2712 0 0 0 $grps = $table->{'GROUPS'} and $grp = $grps->{$family}
2721 0 0 0 $self and $self->{'OPTIONS'}{'HexTagIDs'}
2729 0 0 0 $grps = $tagInfo->{'Groups'} and $grp = $grps->{$family}
2802 0 5381 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2839 494 1 74 defined $listSplit and not $tagInfo->{'Struct'}
495 4 70 defined $listSplit and not $tagInfo->{'Struct'} and $wantGroup || !defined($wantGroup)
2842 15 0 59 $listSplit eq 1 and $tagInfo->{'AutoSplit'}
2852 22865 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'}
0 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'} and not ref $val
2865 68 575 22201 $table and $table->{'CHECK_PROC'}
575 209 21992 $table and $table->{'CHECK_PROC'} and not $tagInfo->{'RawConvInv'}
2941 165 0 8610 ref $conv eq "HASH" and !exists($$tagInfo{"${type}Inv"}) || $convInvList
2944 8610 0 0 $self->{'CUR_LANG'} and $type eq "PrintConv"
8610 0 0 $self->{'CUR_LANG'} and $type eq "PrintConv" and ref($lc = $self->{'CUR_LANG'}{$tag}) eq "HASH"
0 0 0 $self->{'CUR_LANG'} and $type eq "PrintConv" and ref($lc = $self->{'CUR_LANG'}{$tag}) eq "HASH" and $lc = $lc->{'PrintConv'}
3055 0 0 0 $line =~ /^self\b/ and not $rtnStr =~ /\$$/
3072 2 6 1 $bra and $line =~ s/^\@(#)?//
3078 2 4 3 $bra and not $line =~ s/^\s*\}//
6 0 3 $bra and not $line =~ s/^\s*\}// and $line =~ s/^\s*;\s*(.*?)\s*\}//s
3085 3 0 4 $level and $line =~ s/^(.*?)\s*\}//s
3104 9 0 0 $cache and not $lcTag =~ /(^|:)all$/
3123 0 0 0 / \((\d+)\)$/ and $1 < $cur
3135 9 0 0 $docGrp and not $lcTag =~ /\b(main|doc\d+):/
3155 3 0 0 defined $val and $tg =~ / \((\d+)\)$/
3208 6 0 3 defined $expr and defined $val
3229 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3245 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3249 0 0 0 $opt and $opt eq 'Silent' || &$opt($self, $msg, 2)
3278 0 0 0 $advFmtSelf and defined($shift = $advFmtSelf->{'OPTIONS'}{'GlobalTimeShift'})
3296 0 0 0 $_[0] && $new eq $_
3347 0 0 0 $interrupted and $SIG{'INT'}
3378 0 1 0 $dir and not $self->IsDirectory($dir)
3383 0 0 0 length $dir and not $self->IsDirectory($dir)
3422 0 0 2 defined $mode and not defined $self->GetNewValue("FilePermissions")
3427 0 0 2 defined $uid and defined $gid
2 0 0 defined $newUid && defined $newGid
0 0 2 defined $uid and defined $gid and not defined $newUid && defined $newGid
3499 3154 173 3117 $matches > 1 and not $pattern =~ /\$$/
3502 8839 13 499 defined $conv->{$_} and $conv->{$_} =~ /$pattern/
3571 6 0 7 $shiftType and $shiftType eq "Time"
3590 0 0 0 defined $val and &IsFloat($val)
3658 40803 5250 2008 $nvHash and $nvHash->{'WriteGroup'} ne $writeGroup
3662 1404 556 12 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
3668 43850 23238 9 defined $nvHash and $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3669 2399 0 0 defined $_[4] && defined $nvHash->{'Save'} && $nvHash->{'Save'} > $_[4]
3673 0 0 0 $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
2399 0 0 $protect and not $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
3694 9 0 0 $protect and $nvHash->{'Value'}
3697 20857 23308 22932 not defined $nvHash and $opts{'create'}
3840 30041 2265 56308 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3861 0 287 21095 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3898 33114 570 250 $editDirs->{$dirName} and $editDirs->{$dirName} eq $parent
3972 108 575 142 $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup}
575 138 4 $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup} and !$altGroup || $altGroup ne $g0
3978 9 2595 93 $nvHash->{'Value'} and $preferredGroup eq $g0
2604 0 93 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'}
2595 0 93 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'} and $self->{'OPTIONS'}{'WriteMode'} =~ /g/
3990 12906 0 0 $dirName eq "*" and $nvHash->{'Value'}
4012 47129 52 5281 $isCreating and $isCreating != 2
4039 81 32 86 $editDirs->{'IFD0'} and $fileDirs->{'JFIF'}
4080 28 10 0 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType
38 0 0 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType and !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}
4091 10 0 0 $grp0 eq "EXIF" and $delGroup->{$grp0}
4116 21 16 1 not $right and $grp1 eq "EXIF"
4117 14 3 21 $delFlag == 2 and $right
4160 657 788 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo}
1445 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash)
13 0 0 $nvHash->{'CreateOnly'} && $isRewriting
788 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash) and not $nvHash->{'CreateOnly'} && $isRewriting
4178 0 0 13 defined $newVal and length $newVal
4181 0 0 0 $blockName eq "MakerNotes" and $rawType{$self->{'FileType'}}
4194 206 15 1224 defined $dataPt and defined $dirInfo->{'DirStart'}
221 158 1066 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'}
173 389 677 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and not $dirInfo->{'NoRefTest'}
4199 677 0 0 $self->{'PROCESSED'}{$addr} and $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4200 0 0 0 defined $dirInfo->{'DirLen'} and not $dirInfo->{'DirLen'}
0 0 0 defined $dirInfo->{'DirLen'} and not $dirInfo->{'DirLen'} and $dirName ne $self->{'PROCESSED'}{$addr}
4222 4 0 0 $dirName eq 'MakerNotes' && $dirInfo->{'TagInfo'}
4240 52 932 461 defined $newData and length $newData || $isRewriting
4244 1441 0 4 $out and defined $newData
1441 4 0 $out and defined $newData and not length $newData
4316 0 164 5 $maxLen and $len > $maxLen
4372 0 0 617 $tagInfo and $tagInfo->{'Name'}
4398 0 578 39 $tagInfo and $tagInfo->{'SubDirectory'}
4414 187 430 0 $verbose > 1 and $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4438 225 0 165 $verbose > 2 and $parms{'DataPt'}
4443 434 18 165 $verbose > 2 and $parms{'DataPt'}
0 165 0 $tagInfo && $tagInfo->{'ReadFromRAF'}
18 0 165 $verbose > 2 and $parms{'DataPt'} and not $tagInfo && $tagInfo->{'ReadFromRAF'}
4531 0 0 0 $prePos and $preLen
0 0 0 $prePos and $preLen and $prePos + $preLen > $pos
4682 15 0 43 defined $guidCount and ++$guidCount < 256
4782 0 431 6 not $fmt and $val =~ s/([-+])(\d{1,2}):?(\d{2})\s*(DST)?$//i
0 431 0 not $fmt and $val =~ s/Z$//i
4806 0 0 0 $fmt =~ s/%f$// && $val =~ s/(\.\d+)\s*$//
4817 0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/
0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/ and $val =~ /-\d/
4826 0 0 0 defined $a[5] and length $a[5]
4832 0 0 0 defined $a[4] and length $a[4]
4835 0 0 0 defined $a[$i] && length $a[$i]
4858 396 3 5 @a > 5 && $val =~ /(\.\d+)\s*$/
4874 1 0 403 defined $ss and $ss < 60
5138 0 0 7 $format =~ /^rational/ and $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5145 293 0 59 $count and $count > 0
5198 31 0 2 @vals > 1 and wantarray
5205 0 0 9 &IsInt($bit) and $bit < $num
5339 0 0 0 $type eq "EXIF" and $n + $maxLen <= $len - 4
0 0 0 $type eq "EXIF" and $n + $maxLen <= $len - 4 and substr($$dataPt, $n + $maxLen, 4) =~ /^(MM\0\x2a|II\x2a\0)/
5411 1 1 108 $raf->Read($s, 2) == 2 and $s eq "\377\330"
5412 0 1 1 defined $s and length $s
5413 0 0 1 $s eq "\377\1" and $raf->Read($s, 5) == 5
0 0 1 $s eq "\377\1" and $raf->Read($s, 5) == 5 and $s eq "Exiv2"
5460 466 108 108 ($marker & 240) == 192 and $marker == 192 || $marker & 3
0 0 574 $marker != 0 and $marker != 1
0 574 0 $marker != 0 and $marker != 1 and $marker < 208 || $marker > 215
5468 0 0 574 defined $len and $len >= 2
5485 53 7 0 @dirOrder and $dirOrder[-1] =~ /^(IFD0|ExtendedEXIF)$/
60 0 0 @dirOrder and $dirOrder[-1] =~ /^(IFD0|ExtendedEXIF)$/ and not length $junk
7 0 0 @dirOrder and $dirOrder[-1] =~ /^(IFD0|ExtendedEXIF)$/ and not length $junk and not $bytes =~ /^(MM\0\x2a|II\x2a\0)/
5510 108 30 209 defined $dirName and not $delGroup->{$dirName}
5518 1 1 108 $marker and $marker == 218
5520 1 1 0 $marker and $marker != 217
5557 576 108 108 ($marker & 240) == 192 and $marker == 192 || $marker & 3
0 0 684 $marker != 0 and $marker != 1
0 2 682 $marker != 0 and $marker != 1 and $marker != 217
2 682 0 $marker != 0 and $marker != 1 and $marker != 217 and $marker < 208 || $marker > 215
5567 0 0 682 defined $len and $len >= 2
5581 744 47 1 exists $addDirs->{'JFIF'} and not defined $doneDir{'JFIF'}
5608 0 0 0 defined $newData and length $newData
5617 360 296 31 exists $addDirs->{'IFD0'} and not defined $doneDir{'IFD0'}
5629 0 2 29 defined $buff and length $buff
5638 29 0 0 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
5648 29 0 0 $n > 1 and $oldOutfile
5659 405 81 19 exists $addDirs->{'Photoshop'} and not defined $doneDir{'Photoshop'}
5669 0 0 19 defined $buff and length $buff
5676 358 106 26 exists $addDirs->{'XMP'} and not defined $doneDir{'XMP'}
5688 0 0 26 defined $buff and length $buff
5695 469 13 3 exists $addDirs->{'ICC_Profile'} and not defined $doneDir{'ICC_Profile'}
5697 2 1 0 $delGroup->{'ICC_Profile'} and $delGroup->{'ICC_Profile'} != 2
5706 0 0 3 defined $buff and length $buff
5713 472 10 2 exists $addDirs->{'Ducky'} and not defined $doneDir{'Ducky'}
5723 0 0 2 defined $buff and length $buff
5736 459 0 0 exists $addDirs->{'Adobe'} and not defined $doneDir{'Adobe'}
5754 411 23 5 exists $addDirs->{'COM'} and not defined $doneDir{'COM'}
5756 5 0 0 $delGroup->{'File'} and $delGroup->{'File'} != 2
5776 576 108 108 ($marker & 240) == 192 and $marker == 192 || $marker & 3
574 0 2 $marker == 217 and $isEXV
108 466 0 $marker >= 208 and $marker <= 215
5802 16 0 0 $endedWithFF and $buff =~ /^\xd9/gs
5824 0 0 0 $nvTrail->{'Value'} and $nvTrail->{'Value'}[0]
0 0 0 $raf->Seek(0, 2) and $raf->Tell != $endPos
5892 0 0 0 $self->{'Make'} =~ /^SONY/i and $junkLen > 32
5899 0 0 0 length $buff > $junkLen + $segLen + 6 and substr($buff, $junkLen + $segLen + 3, 3) eq "\330\377\333"
5980 0 0 0 $verbose and $marker
5994 2 0 0 $verbose > 2 and $markerName =~ /^APP/
6025 0 0 11 defined $newData and length $newData
6115 45 0 1 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
6125 46 0 0 $n > 1 and $oldOutfile
6179 1 0 0 $goodGuid and $goodGuid ne $2
6191 1 0 0 $guid ne $readGuid and $readGuid ne 2
6270 0 0 0 $$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14
6278 0 0 0 $chunksTot != $iccChunksTotal and defined $iccChunkCount
6304 0 0 0 defined $_ and $icc_profile .= $_
6453 2 1 1 $delGroup->{'File'} and $delGroup->{'File'} != 2
6481 430 5 11 $delGroup->{'*'} and not $segType
435 8 3 $delGroup->{'*'} and not $segType and $marker >= 224
13 2 1 $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239
6488 4 0 441 defined $segDataPt and defined $$segDataPt
6515 0 110 0 $rtnVal and $err
6516 109 0 1 $creatingEXV and $rtnVal > 0
109 1 0 $creatingEXV and $rtnVal > 0 and not $self->{'CHANGED'}
6530 41 8 83 length $$valPtr and not $$valPtr =~ /^\xff\xd8/
49 58 25 length $$valPtr and not $$valPtr =~ /^\xff\xd8/ and not $self->Options("IgnoreMinorErrors")
6550 2118 0 303 $count and $count > 0
6562 14640 0 1919 $count and $count != 1
6582 1721 12 1267 &IsFloat($val) and $count == 1
6589 15173 0 4 $val > $rng->[1] and $val != 4277010157
6597 61 9 0 $1 < 0 and $format =~ /u$/
6603 520 560 0 $format =~ /^rational\d+u$/ and $val < 0
6621 0 1306 3099 $table and $table->{'FORMAT'}
6714 0 0 0 defined $atime and defined $mtime
6763 0 0 0 defined $atime and defined $mtime
6873 6 3 13 $writeInfo and $writeInfo eq $tagInfo
6876 212 6 10 @varInfo and $varInfo[0][0] < $tagID
6900 212 0 6 @varInfo and $varInfo[0][0] == $tagID
6913 213 0 0 $tagInfo->{'DataTag'} and not $tagInfo->{'IsOffset'}
6918 0 0 0 $format =~ /^int16/ and $newVal > 65535
6930 449 0 1 $tagTablePtr->{'IS_OFFSET'} and $dirInfo->{'Fixup'}
6937 1 0 0 @varInfo and $varInfo[0][0] < $tagID
6951 0 0 0 $self->{'FILE_TYPE'} eq "JPEG" and $tagInfo->{'DataTag'}
0 0 0 $self->{'FILE_TYPE'} eq "JPEG" and $tagInfo->{'DataTag'} and $tagInfo->{'DataTag'} eq "PreviewImage"
0 0 0 $self->{'FILE_TYPE'} eq "JPEG" and $tagInfo->{'DataTag'} and $tagInfo->{'DataTag'} eq "PreviewImage" and defined $tagInfo->{'OffsetPair'}
6963 0 0 0 $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 3
6967 0 0 0 $offset >= 0 and $offset + $size <= $dirInfo->{'DataLen'}
6983 4 0 0 @varInfo and $varInfo[0][0] < $tagID
7001 0 0 4 defined $dat and length $dat

or 2 conditions

line l !l condition
310 311 5348 $options{'Protected'} || 0
363 5124 0 $self->Filter($self->{'OPTIONS'}{'FilterW'}, \$value) or return 0
710 2232 1261 $self->{'WRITE_PRIORITY'}{lc $group0} || 0
830 32021 9 $preferred{$lcTag} || {}
1048 77 2386 $options{'CreateGroups'} || {}
1299 0 58 $options->{'CoordFormat'} || '%d %d %.8f'
0 58 $options->{'RequestAll'} || 1
1459 13 18 $grp || ''
2694 0 0 shift() || 0
2696 0 0 shift() || 0
2832 70 0 $self->{'ConvType'} || 'PrintConv'
3118 0 0 $ex->{$_}{'G3'} || 0
3128 0 0 $2 || 0
3858 463 458 shift() || (last)
3986 387 0 $1 || ''
4119 7 14 $self->{'ADD_DIRS'}{$right} || ''
4197 461 216 $dirInfo->{'Base'} || 0
4304 165 4 $opts{'Start'} || 0
4306 0 169 $opts{'Width'} || 16
4307 165 4 $opts{'Prefix'} || ''
4308 169 0 $opts{'Out'} || \*STDOUT
4314 70 0 $opts{'DataPos'} || 0
0 70 $opts{'Base'} || 0
4407 0 0 $parms{'Start'} || 0
4461 1 0 $dirInfo->{'DirName'} || 'Unknown'
4811 0 0 $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n"
4916 2 33 $self->Options('ByteOrder') || $self->GetNewValue('ExifByteOrder') || $default || $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
4919 0 0 $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
4959 413 266 shift() || 2147483647
5515 42 640 $dirCount{$dirName} || 0
5915 0 1 $previewInfo->{'BaseShift'} || 0
5920 1 0 $fixup->GetMarkerPointers($outfile, 'PreviewImage') || 0
5935 0 0 &Write($outfile, substr($buff, 0, $junkLen)) or $err = 1
6138 2 19 $doneDir{'XMP'} || 0
6187 1 0 $self->{'OPTIONS'}{'ExtendedXMP'} || 0
6512 3 0 &Write($outfile, $$trailPt) or $err = 1
6564 107 19 $count = @vals or return undef
6666 0 0 $try || 1
6824 3 0 &Write($outfile, scalar "\0" x $pad) or $err = "writ"
6845 390 60 $tagTablePtr->{'FORMAT'} || 'int8u'
6860 293 157 $dirInfo->{'DirStart'} || 0
6917 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'
6944 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'

or 3 conditions

line l !l&&r !l&&!r condition
360 343 5275 0 $options{'Type'} || ($self->{'OPTIONS'}{'PrintConv'} ? 'PrintConv' : 'ValueConv')
373 0 100 2327 $lcg eq "*" or $lcg eq "all"
411 6 0 4 $parent || shift @dirNames
537 12 39 1371 $tag =~ /^([?*\w]+)-([a-z]{2})(_[a-z]{2})$/i or $tag =~ /^([?*\w]+)-([a-z]{2,3}|[xi])(-[a-z\d]{2,8}(-[a-z\d]{1,8})*)?$/i
644 1521 0 34751 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC"
1521 32 34719 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC" or $wgAll
676 721 11947 0 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'} || $grp[0]
696 12585 20851 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
698 77 0 3 !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
19952 0 13483 not $writeGroup or $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
702 1547 2111 16371 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'}
735 321 98 287 !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
753 0 0 5394 $tagInfo->{'WriteGroup'} || $table->{'WRITE_GROUP'}
792 4 0 67 $tagInfo->{'Avoid'} or $permanent
856 0 0 0 $shift || $shiftable eq '0' && $options{'DelValue'}
866 0 0 3975 $addValue or $options{'DelValue'}
868 24 15 9 $shift || $tagInfo->{'List'}
986 0 0 3860 $addValue or $options{'DelValue'}
999 54 37 19518 $options{'DelValue'} or $addValue
91 136 19382 $options{'DelValue'} or $addValue or $shift
1011 35 11 8 $val eq "" or $tagInfo->{'List'}
1036 8252 846 10557 $pref->{$tagInfo} or $prf
1037 5343 27 3728 $permanent or $shift
358 3312 58 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
3670 44 14 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} or grep /^$/, @{$$nvHash{"DelValue"};}
1073 160 19422 54 $shift or not $options{'DelValue'}
1150 9 0 2 !$err || $verbose > 2
1388 0 0 10 $tag =~ s/\s*([-+])$// or $dstTag =~ s/^([-+])\s*//
1403 5 18 0 $opts->{'EXPR'} or &ValidTagName($tag)
1428 5 4 23 $g eq "*" or $g eq "all"
1481 41 2577 6263 $set->[1] eq $lcTag or $set->[1] eq "*"
1559 1405 6 33 $set->[1] eq "*" or $set->[3]{'WILD'}
1605 3930 12 2681 ref $tag eq "HASH" and $tag->{'IsNVH'} or not defined $tag
1657 32 26 2199 $nvHash->{'TagInfo'}{'RawConvInv'} or $nvHash->{'Shift'}
1671 0 0 26 $err or not defined $val
1881 0 0 0 $opt eq "HardLink" or $opt eq "Link"
1894 1 0 0 $doName or $doDir
1933 0 0 0 !defined($usedFlag) || $usedFlag
1934 0 0 0 $file ne $newName or $opt =~ /Link$/
1936 0 0 0 $opt =~ /Link$/ or not $self->IsSameFile($file, $newName)
1959 0 0 1 $opt eq "HardLink" or $opt eq "Link"
2052 0 0 219 defined $uid or defined $gid
2073 0 0 0 $res == 1 or not $result
2118 0 0 0 $res == 1 or not $result
2183 1 0 0 defined $newFileName || defined $newDir
2192 1 0 0 not ref $infile or UNIVERSAL::isa($infile, "GLOB")
2197 0 0 1 defined $hardLink or defined $symLink
0 0 1 defined $hardLink or defined $symLink or defined $testName
2216 0 0 0 defined $outfile or ref $infile
2228 0 0 4 eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2262 1 0 22 $outType or ref $outfile
2330 0 0 225 $infile eq '-' || $infile =~ /\|$/
2366 104 2 124 $type eq "JPEG" or $type eq "EXV"
0 0 2 $type eq "ORF" or $type eq "RAW"
2384 24 58 0 $writableType{$type}[0] || $type
2387 16 11 0 $writableType{$type} || $type
2390 82 27 0 $func || "Process$type"
2431 0 0 0 $fileExt || ($fileType eq 'TIFF' ? $tiffType : $fileType)
2480 0 0 1 $rtnVal <= 0 or not $self->{'CHANGED'}
2491 0 1 0 $len >= $size || eval { do { truncate $inRef, $len } }
2500 203 0 0 close $inRef or not defined $outBuff
2518 0 0 0 close DST or $err
2531 0 0 0 $self->Unlink($infile) or $self->Warn("Error erasing original file")
2560 217 5 9 $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2672 0 0 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2802 0 0 5381 eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2838 59 16 494 $tagInfo->{'AutoSplit'} || $self->{'OPTIONS'}{'ListSplit'}
2839 9 65 0 $wantGroup || !defined($wantGroup)
2892 21954 434 27062 defined $conv or defined $convInv
2895 153 0 22223 ref $conv eq "ARRAY" or ref $convInv eq "ARRAY"
2941 8606 4 0 !exists($$tagInfo{"${type}Inv"}) || $convInvList
3053 0 0 9 $var eq "\$" or $var eq "/"
3158 0 0 0 not $tag =~ / \((\d+)\)$/ or $1 > $tagNum
3186 0 0 0 $self->{'OPTIONS'}{'Binary'} or $$val =~ /^Binary data/
3242 9 0 0 defined $val or ref $opt
3249 0 0 0 $opt eq 'Silent' || &$opt($self, $msg, 2)
3507 7323 45 3412 not $conv->{$_} =~ /$pattern/ or $ignorePrintConv{$_}
3546 75 29 13 @{$nvHash->{'DelValue'};} or defined $shift
3668 2390 9 20848 $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3751 0 0 0 $Image::ExifTool::allTables{$tableName} or $pushedTables{$tableName}
3972 140 1 1 !$altGroup || $altGroup ne $g0
4013 33210 6346 12906 $parent || shift @dirNames
4034 297 13 725 $parent || shift @dirNames
4077 36 2 57 $delGroup->{$grp0} || $delGroup->{$grp1}
4080 2 8 28 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/
0 0 0 !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}
4097 0 0 0 $self->{'TIFF_TYPE'} || $self->{'FILE_TYPE'}
4101 0 0 0 $delGroup->{$grp1} or $grp1 eq "ExifIFD"
4105 28 0 10 $dataPt or $dirInfo->{'RAF'}
4121 8 13 0 not $parent or $parent eq $right
21 0 0 not $parent or $parent eq $right or $parent eq $right2
4151 147 1311 231 $writeProc or $writeProc = $tagTablePtr->{'WRITE_PROC'}
4154 237 17 181 $dirInfo->{'DirLen'} || defined $dataPt && length $$dataPt || $dirInfo->{'RAF'}
4159 375 426 657 $Image::ExifTool::Extra{$blockName} || $dirInfo->{'TagInfo'}
4179 0 0 0 $dataPt or $dirInfo->{'RAF'}
4199 0 0 0 $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4223 1 2 1 not defined $oldDir or $oldDir ne $name
4240 1360 29 4 length $newData || $isRewriting
4377 0 0 0 $prefix or $hexID
4386 564 53 0 defined $size or not $dataPt
4414 38 0 40 $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4426 352 38 0 $format or defined $size
4524 0 0 0 $self->{'VALUE'}{'PreviewImageStart'} || $self->{'PreviewImageStart'}
4525 0 0 0 $self->{'VALUE'}{'PreviewImageLength'} || $self->{'PreviewImageLength'}
4643 0 0 0 $ch < 194 or $ch >= 248
4762 0 58 0 $tzFlag or not defined $tzFlag
4836 0 0 0 $i < 2 or $dateOnly
4882 0 0 404 $a[0] < 1 or $a[0] > 12
4886 0 0 404 $a[1] < 1 or $a[1] > 31
4962 0 0 1544 $n > $maxInt or $d > $maxInt
5118 187 165 0 $format eq "string" or $format eq "undef"
5131 1209 0 0 &IsInt($val) or &IsHex($val)
5138 0 7 0 $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5453 108 1 682 $marker == 218 or $marker == 217
5460 108 0 108 $marker == 192 || $marker & 3
108 466 0 $marker < 208 || $marker > 215
5557 108 0 108 $marker == 192 || $marker & 3
108 574 0 $marker < 208 || $marker > 215
5615 45 60 687 $markerName eq "APP0" or $dirCount{'IFD0'}
60 0 687 $markerName eq "APP0" or $dirCount{'IFD0'} or $dirCount{'ExtendedEXIF'}
5638 0 0 29 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
5776 108 0 108 $marker == 192 || $marker & 3
0 0 574 $marker == 0 or $marker == 1
0 0 574 $marker == 0 or $marker == 1 or $marker >= 208 and $marker <= 215
5790 1 0 107 $oldOutfile or $delPreview
1 11 96 $oldOutfile or $delPreview or $trailInfo
11 4 92 $oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'}
4 0 92 $oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'} or $nvTrail
5802 0 16 0 $endedWithFF and $buff =~ /^\xd9/gs or $buff =~ /\xff\xd9/gs
6008 121 10 388 exists $editDirs->{$markerName} or $delGroup->{'*'}
6052 0 0 0 $$segDataPt =~ /^http/ or $$segDataPt =~ /
6082 0 1 50 $delGroup->{'IFD0'} or $delGroup->{'EXIF'}
6115 1 0 45 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
6444 0 0 4 $delGroup->{'Adobe'} or $editDirs->{'Adobe'}
6458 3 0 0 $self->IsOverwriting($nvHash, $val) or $delGroup->{'File'}
6481 12 122 324 $del or $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239
6549 2032 389 16559 $format eq "string" or $format eq "undef"
6575 1137 174 53 $format =~ /^rational/ or $format eq "float"
1311 32 21 $format =~ /^rational/ or $format eq "float" or $format eq "double"
6595 0 1 226 $val eq "inf" or $val eq "undef"
6663 3 0 0 $result or $^O ne "MSWin32"
6710 0 0 0 defined $atime or defined $mtime
6770 0 0 0 $success or not defined $saveFile
6776 0 0 0 $@ or $Image::ExifTool::evalWarning
6777 0 0 0 $@ || $Image::ExifTool::evalWarning
6861 445 5 0 $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart
6871 17 5 205 ref $tagTablePtr->{$tagID} eq "ARRAY" or $tagInfo->{'Condition'}

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
821 217 145 76 54 $listOnly xor $tagInfo->{'List'}