Condition Coverage

blib/lib/Image/ExifTool/Writer.pl
Criterion Covered Total %
condition 822 1552 52.9


and 2 conditions

line l !l condition
828 10476 21159 $writeGroup eq "MakerNotes" and $permanent = 1
2196 0 0 $self->SetFileModifyDate($infile) > 0 and $rtnVal = 1
2197 0 0 $self->SetFileModifyDate($infile, undef, "FileCreateDate") > 0 and $rtnVal = 1
2503 0 0 $rtnVal and $rtnVal = -1
2540 0 0 $rtnVal and $rtnVal = -1
4861 2044 6 0 length $_ < 2 and $_ = "0$_"

and 3 conditions

line !l l&&!r l&&r condition
355 296 26 5339 defined $value and not ref $value
322 3 5336 defined $value and not ref $value and not $options{'Sanitized'}
371 0 0 2472 length $_ and /^(\d+)?(.*)/
377 1 0 0 defined $f and $f ne 7
394 5611 1 49 $tag eq "*" and not defined $value
5612 2 47 $tag eq "*" and not defined $value and not $family2
3 0 47 $tag eq "*" and not defined $value and not $family2 and @wantGroup < 2
397 40 0 7 $options{'Replace'} && $options{'Replace'} > 1
401 7 23 4 @del and $remove
433 0 0 3 $$delGroup{"$x-*"} and not $$delGroup{"-$grp"}
467 46 0 1 $verbose > 1 and @donegrps
500 2307 12 19 defined $fg->[0] and $fg->[0] != 1
504 6 1068 500 not $ifdName and /^XMP\b/i
512 318 0 0 $ifdName and $allFam0{$_}
529 1574 0 745 $grpName and $grpName ne $_
579 29 20 0 not $pre and uc $origTag eq "TAG"
618 47932 1331 112 $tagInfo->{'WriteGroup'} && $tagInfo->{'WriteGroup'} eq 'All'
627 108 0 132 $fam != 1 and not $tagInfo->{'AllowGroup'}
631 2157 5 4 $wgAll and not $writeGroup
639 83 12 15 $wgAll and not $fam
95 10 5 $wgAll and not $fam and $allFam0{$lcWant}
646 32746 6 1 $tagInfo->{'AllowGroup'} && $lcWant =~ /^$tagInfo->{'AllowGroup'}$/i
647 1109 10 478 $ifdName and $lcWant eq lc $ifdName
648 1075 12 32 $wgAll and not $fam
1087 25 7 $wgAll and not $fam and $allFam0{$lcWant}
652 429 39 10 $wgAll and $allFam0{$lcWant}
39 8 2 $wgAll and $allFam0{$lcWant} and $fam
658 15 0 1 $movGroup and $lcWant eq lc $movGroup
662 72 1436 28 $grp and $lcWant eq lc $grp
666 766 0 2 $mieGroup and $lcWant eq lc $mieGroup
669 2 0 0 $writeGroup =~ /^MIE\d+$/ and $tagInfo->{'Table'}{'WRITE_GROUP'}
693 0 119 33511 $writeProc and &$writeProc()
698 1 0 20892 $table->{'WRITABLE'} and not defined $writable
1 0 20892 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
700 13555 80 0 $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
720 32591 1007 31 $noFlat and defined $tagInfo->{'Flat'}
737 31723 508 198 $table->{'GROUPS'}{'0'} eq "QuickTime" and !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
770 0 9486 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0
9486 0 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0 and %{$self->{'WRITE_PRIORITY'};}
776 8133 0 1362 $avoid{$lcTag} and $preferred{$lcTag}
823 31896 271 221 defined $listOnly and ($listOnly xor $tagInfo->{'List'})
847 24 0 0 $options{'DelValue'} and defined $shiftable
24 0 0 $options{'DelValue'} and defined $shiftable and $shiftable eq "Time"
849 0 0 164 defined $value && length $value
0 164 0 $shift and not defined $value && length $value
858 117 47 0 defined $shiftable and not $shiftable
164 0 0 defined $shiftable and not $shiftable and $shift || $shiftable eq '0' && $options{'DelValue'}
870 21412 39 9 $addValue and not $shift || $tagInfo->{'List'}
879 20998 289 0 not length $val and $options{'DelValue'}
21228 22 2 ref $val eq "HASH" and not $tagInfo->{'Struct'}
880 117 0 47 $tagInfo->{'Shift'} and $tagInfo->{'Shift'} eq "Time"
934 4024 0 3 $tagInfo->{'DelGroup'} and not $options{'DelValue'}
962 19783 9561 2778 not defined $val and defined $value
975 21 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
21 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
991 19659 0 54 $options{'DelValue'} && !$shift
994 19194 211 308 $tagInfo->{'List'} and not $options{'Replace'}
1039 3390 8 358 $tagInfo->{'List'} and not $options{'DelValue'}
3340 0 58 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1064 226 0 1 $verbose > 1 and @grps
1077 505 0 0 defined $nvHash->{'AddBefore'} and @{$nvHash->{'Value'};} >= $nvHash->{'AddBefore'}
1094 9 0 0 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1122 50 0 43 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
50 0 43 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
1150 11 115 148 $n and $pref->{$tagInfo}
1152 263 11 0 $Image::ExifTool::evalWarning and !$err || $verbose > 2
1165 3724 434 85 defined $err and not $prioritySet
3105 0 434 $err and not $verbose
1166 0 85 0 $err and not wantarray
1171 25 335 12 $options{'Replace'} and $options{'Replace'} == 2
1175 0 0 240 $wantGroup and @matchingTags
1248 0 43 15 $structOpt eq 2 and not @setTags
1302 58 0 0 $options->{'FastScan'} && $options->{'FastScan'} > 1
1340 58 0 0 $info->{'Error'} and $info->{'Error'} eq "Error opening file"
1356 2645 0 0 $opts{'SrcType'} and $opts{'SrcType'} ne $srcType
1428 0 0 32 length $_ and /^(\d+)?(.*)/
1442 34 20 2 $tag =~ /[?*]/ and $tag ne "*"
1486 5725 513 14 $set->[3]{'WILD'} and $lcTag =~ /^$set->[1]$/
1502 0 0 0 defined $grp[$f] and $g eq $grp[$f]
1526 5 0 0 $dstTag =~ /[?*]/ and $dstTag ne "*"
1534 1442 0 0 $opts->{'SrcType'} and $opts->{'SrcType'} ne $srcType
1565 1265 118 26 $srcExifTool->{'TAG_INFO'}{$tag}{'Protected'} and $srcExifTool->{'TAG_INFO'}{$tag}{'Binary'}
1582 659 757 0 $wrn and not $noWarn
1608 2678 49 3978 ref $tag eq "HASH" and $tag->{'IsNVH'}
1614 1078 1471 0 defined($tagInfo = $Image::ExifTool::Extra{$tag}) and $tagInfo->{'Writable'}
1640 0 0 0 /^ID-(.*)/i and &IsSameID($tagInfo->{'TagID'}, $1)
1653 2633 1802 2270 $nvHash and $nvHash->{'Value'}
1667 34 0 26 $nvHash->{'Shift'} and $table
1837 0 0 0 $tag eq "FileCreateDate" and $^O ne "MSWin32"
1894 0 0 1 defined $filename and $self->IsOverwriting($nvHash, $file)
1896 1 0 0 defined $dir and $self->IsOverwriting($nvHash, $file)
1912 0 0 0 $newName =~ /:/ and not $newName =~ /^[A-Z]:[^:]*$/i
1916 0 0 0 $newName =~ /\?/ and not $newName =~ m[^[\\/]{2}\?[\\/][^?]*$]
1927 0 0 0 length $newName > 259 and not $newName =~ /\?/
1936 1 0 0 $self->Exists($newName) and !defined($usedFlag) || $usedFlag
1976 0 0 0 not $file =~ m[^/] and $newName =~ m[/]
2154 235 0 0 $setModDate and $self->IsOverwriting($nvHash) < 0
235 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"
2160 235 0 0 $setCreateDate and $self->IsOverwriting($nvHash2) < 0
235 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"
2170 231 0 4 not defined $outfile and defined $infile
2174 4 0 0 defined $hardLink and not length $hardLink
2175 4 0 0 defined $symLink and not length $symLink
2176 4 0 0 defined $testName and not length $testName
2179 4 0 0 defined $newDir and length $newDir
2184 3 0 0 defined $newFileName and length $newFileName
2186 0 0 1 defined $newFileName || defined $newDir and not ref $infile
2201 0 0 0 $hardLink and $self->SetFileName($infile, $hardLink, "HardLink")
2202 0 0 0 $symLink and $self->SetFileName($infile, $symLink, "SymLink")
2203 0 0 0 $testName and $self->SetFileName($infile, $testName, "Test")
2229 23 0 206 defined $infile and $infile ne ""
2231 0 4 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2333 5 228 0 not ref $infile and $infile eq '-' || $infile =~ /\|$/
2360 0 23 245 $Image::ExifTool::magicNumber{$type} and length $hdr
23 210 35 $Image::ExifTool::magicNumber{$type} and length $hdr and not $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s
2425 0 0 0 $fileType and defined $rtnVal
2449 0 0 0 $infile and &GetFileType($infile)
2462 211 0 23 $outType and $type
211 23 0 $outType and $type and $outType ne $type
2469 0 234 0 $rtnVal > 0 and not &Tell($outRef)
234 0 0 $rtnVal > 0 and not &Tell($outRef) and not $self->{'VALUE'}{'Error'}
2471 0 0 0 defined $hdr and length $hdr
2494 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 } }
2506 206 0 0 $^O eq "darwin" and -s "$infile/..namedfork/rsrc"
2530 0 0 0 $err and $self->Error("Error $err Mac OS resource fork", 2)
2563 0 214 20 $rtnVal > 0 and $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2568 197 0 0 $setModDate and $self->SetFileModifyDate($target, $originalTime, undef, 1) > 0
2570 197 0 0 $setCreateDate and $self->SetFileModifyDate($target, $createTime, "FileCreateDate", 1) > 0
2572 197 0 0 defined $hardLink and $self->SetFileName($target, $hardLink, "HardLink")
2573 197 0 0 defined $symLink and $self->SetFileName($target, $symLink, "SymLink")
2610 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2621 0 0 0 $tagInfo->{'SubDirectory'} and not $tagInfo->{'Writable'}
2655 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2675 0 0 0 $table->{'WRITABLE'} and not defined $writable
0 0 0 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2715 0 0 0 $grps = $table->{'GROUPS'} and $grp = $grps->{$family}
2724 0 0 0 $self and $self->{'OPTIONS'}{'HexTagIDs'}
2732 0 0 0 $grps = $tagInfo->{'Groups'} and $grp = $grps->{$family}
2805 0 5409 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2842 494 1 74 defined $listSplit and not $tagInfo->{'Struct'}
495 4 70 defined $listSplit and not $tagInfo->{'Struct'} and $wantGroup || !defined($wantGroup)
2845 15 0 59 $listSplit eq 1 and $tagInfo->{'AutoSplit'}
2855 22930 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'}
0 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'} and not ref $val
2868 68 590 22251 $table and $table->{'CHECK_PROC'}
590 211 22040 $table and $table->{'CHECK_PROC'} and not $tagInfo->{'RawConvInv'}
2944 188 0 8620 ref $conv eq "HASH" and !exists($$tagInfo{"${type}Inv"}) || $convInvList
2947 8620 0 0 $self->{'CUR_LANG'} and $type eq "PrintConv"
8620 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'}
3058 0 0 0 $line =~ /^self\b/ and not $rtnStr =~ /\$$/
3075 2 6 1 $bra and $line =~ s/^\@(#)?//
3081 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
3088 3 0 4 $level and $line =~ s/^(.*?)\s*\}//s
3107 9 0 0 $cache and not $lcTag =~ /(^|:)all$/
3126 0 0 0 / \((\d+)\)$/ and $1 < $cur
3138 9 0 0 $docGrp and not $lcTag =~ /\b(main|doc\d+):/
3158 3 0 0 defined $val and $tg =~ / \((\d+)\)$/
3211 6 0 3 defined $expr and defined $val
3232 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3248 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3252 0 0 0 $opt and $opt eq 'Silent' || &$opt($self, $msg, 2)
3281 0 0 0 $advFmtSelf and defined($shift = $advFmtSelf->{'OPTIONS'}{'GlobalTimeShift'})
3299 0 0 0 $_[0] && $new eq $_
3350 0 0 0 $interrupted and $SIG{'INT'}
3381 0 1 0 $dir and not $self->IsDirectory($dir)
3386 0 0 0 length $dir and not $self->IsDirectory($dir)
3425 0 0 2 defined $mode and not defined $self->GetNewValue("FilePermissions")
3430 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
3502 3149 173 3128 $matches > 1 and not $pattern =~ /\$$/
3505 8872 13 499 defined $conv->{$_} and $conv->{$_} =~ /$pattern/
3574 6 0 7 $shiftType and $shiftType eq "Time"
3593 0 0 0 defined $val and &IsFloat($val)
3661 40986 5281 2003 $nvHash and $nvHash->{'WriteGroup'} ne $writeGroup
3665 1399 556 12 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
3671 44059 23376 9 defined $nvHash and $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3672 2403 0 0 defined $_[4] && defined $nvHash->{'Save'} && $nvHash->{'Save'} > $_[4]
3676 0 0 0 $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
2403 0 0 $protect and not $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
3697 9 0 0 $protect and $nvHash->{'Value'}
3700 20991 23430 23023 not defined $nvHash and $opts{'create'}
3843 30163 2270 56407 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3864 0 287 21112 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3901 33596 576 252 $editDirs->{$dirName} and $editDirs->{$dirName} eq $parent
3975 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
3981 9 2597 93 $nvHash->{'Value'} and $preferredGroup eq $g0
2606 0 93 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'}
2597 0 93 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'} and $self->{'OPTIONS'}{'WriteMode'} =~ /g/
3993 12955 0 0 $dirName eq "*" and $nvHash->{'Value'}
4015 47223 52 5309 $isCreating and $isCreating != 2
4042 81 38 86 $editDirs->{'IFD0'} and $fileDirs->{'JFIF'}
4083 29 11 0 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType
40 0 0 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType and !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}
4094 10 0 0 $grp0 eq "EXIF" and $delGroup->{$grp0}
4119 21 18 1 not $right and $grp1 eq "EXIF"
4120 16 3 21 $delFlag == 2 and $right
4163 659 794 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo}
1453 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash)
13 0 0 $nvHash->{'CreateOnly'} && $isRewriting
794 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash) and not $nvHash->{'CreateOnly'} && $isRewriting
4181 0 0 13 defined $newVal and length $newVal
4184 0 0 0 $blockName eq "MakerNotes" and $rawType{$self->{'FileType'}}
4197 208 18 1227 defined $dataPt and defined $dirInfo->{'DirStart'}
226 158 1069 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'}
176 389 680 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and not $dirInfo->{'NoRefTest'}
4202 680 0 0 $self->{'PROCESSED'}{$addr} and $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4203 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}
4225 4 0 0 $dirName eq 'MakerNotes' && $dirInfo->{'TagInfo'}
4243 52 940 461 defined $newData and length $newData || $isRewriting
4248 0 4 0 defined $newData and not length $newData
4249 4 0 0 $self->{'CHANGED'} == $oldChanged and $self->{'OPTIONS'}{'Verbose'} > 2
4324 0 164 5 $maxLen and $len > $maxLen
4380 0 0 617 $tagInfo and $tagInfo->{'Name'}
4406 0 578 39 $tagInfo and $tagInfo->{'SubDirectory'}
4422 187 430 0 $verbose > 1 and $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4446 225 0 165 $verbose > 2 and $parms{'DataPt'}
4451 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'}
4539 0 0 0 $prePos and $preLen
0 0 0 $prePos and $preLen and $prePos + $preLen > $pos
4690 15 0 43 defined $guidCount and ++$guidCount < 256
4790 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
4814 0 0 0 $fmt =~ s/%f$// && $val =~ s/(\.\d+)\s*$//
4825 0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/
0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/ and $val =~ /-\d/
4834 0 0 0 defined $a[5] and length $a[5]
4840 0 0 0 defined $a[4] and length $a[4]
4843 0 0 0 defined $a[$i] && length $a[$i]
4866 396 3 5 @a > 5 && $val =~ /(\.\d+)\s*$/
4882 1 0 403 defined $ss and $ss < 60
5146 0 0 7 $format =~ /^rational/ and $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5153 299 0 61 $count and $count > 0
5206 31 0 2 @vals > 1 and wantarray
5213 0 0 9 &IsInt($bit) and $bit < $num
5347 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)/
5419 1 1 108 $raf->Read($s, 2) == 2 and $s eq "\377\330"
5420 0 1 1 defined $s and length $s
5421 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"
5468 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
5476 0 0 574 defined $len and $len >= 2
5493 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)/
5518 108 30 209 defined $dirName and not $delGroup->{$dirName}
5526 1 1 108 $marker and $marker == 218
5528 1 1 0 $marker and $marker != 217
5565 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
5575 0 0 682 defined $len and $len >= 2
5589 744 47 1 exists $addDirs->{'JFIF'} and not defined $doneDir{'JFIF'}
5616 0 0 0 defined $newData and length $newData
5625 360 296 31 exists $addDirs->{'IFD0'} and not defined $doneDir{'IFD0'}
5637 0 2 29 defined $buff and length $buff
5646 29 0 0 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
5656 29 0 0 $n > 1 and $oldOutfile
5667 405 81 19 exists $addDirs->{'Photoshop'} and not defined $doneDir{'Photoshop'}
5677 0 0 19 defined $buff and length $buff
5684 358 106 26 exists $addDirs->{'XMP'} and not defined $doneDir{'XMP'}
5696 0 0 26 defined $buff and length $buff
5703 469 13 3 exists $addDirs->{'ICC_Profile'} and not defined $doneDir{'ICC_Profile'}
5705 2 1 0 $delGroup->{'ICC_Profile'} and $delGroup->{'ICC_Profile'} != 2
5714 0 0 3 defined $buff and length $buff
5721 472 10 2 exists $addDirs->{'Ducky'} and not defined $doneDir{'Ducky'}
5731 0 0 2 defined $buff and length $buff
5744 459 0 0 exists $addDirs->{'Adobe'} and not defined $doneDir{'Adobe'}
5762 411 23 5 exists $addDirs->{'COM'} and not defined $doneDir{'COM'}
5764 5 0 0 $delGroup->{'File'} and $delGroup->{'File'} != 2
5784 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
5810 16 0 0 $endedWithFF and $buff =~ /^\xd9/gs
5832 0 0 0 $nvTrail->{'Value'} and $nvTrail->{'Value'}[0]
0 0 0 $raf->Seek(0, 2) and $raf->Tell != $endPos
5900 0 0 0 $self->{'Make'} =~ /^SONY/i and $junkLen > 32
5907 0 0 0 length $buff > $junkLen + $segLen + 6 and substr($buff, $junkLen + $segLen + 3, 3) eq "\330\377\333"
5988 0 0 0 $verbose and $marker
6002 2 0 0 $verbose > 2 and $markerName =~ /^APP/
6033 0 0 11 defined $newData and length $newData
6123 45 0 1 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
6133 46 0 0 $n > 1 and $oldOutfile
6187 1 0 0 $goodGuid and $goodGuid ne $2
6199 1 0 0 $guid ne $readGuid and $readGuid ne 2
6278 0 0 0 $$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14
6286 0 0 0 $chunksTot != $iccChunksTotal and defined $iccChunkCount
6312 0 0 0 defined $_ and $icc_profile .= $_
6461 2 1 1 $delGroup->{'File'} and $delGroup->{'File'} != 2
6489 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
6496 4 0 441 defined $segDataPt and defined $$segDataPt
6523 0 110 0 $rtnVal and $err
6524 109 0 1 $creatingEXV and $rtnVal > 0
109 1 0 $creatingEXV and $rtnVal > 0 and not $self->{'CHANGED'}
6538 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")
6558 2134 0 315 $count and $count > 0
6570 14639 0 1922 $count and $count != 1
6590 1725 12 1266 &IsFloat($val) and $count == 1
6597 15168 0 4 $val > $rng->[1] and $val != 4277010157
6605 61 9 0 $1 < 0 and $format =~ /u$/
6611 520 560 0 $format =~ /^rational\d+u$/ and $val < 0
6629 0 1301 3099 $table and $table->{'FORMAT'}
6722 0 0 0 defined $atime and defined $mtime
6771 0 0 0 defined $atime and defined $mtime
6881 6 3 13 $writeInfo and $writeInfo eq $tagInfo
6884 212 6 10 @varInfo and $varInfo[0][0] < $tagID
6908 212 0 6 @varInfo and $varInfo[0][0] == $tagID
6921 213 0 0 $tagInfo->{'DataTag'} and not $tagInfo->{'IsOffset'}
6926 0 0 0 $format =~ /^int16/ and $newVal > 65535
6938 449 0 1 $tagTablePtr->{'IS_OFFSET'} and $dirInfo->{'Fixup'}
6945 1 0 0 @varInfo and $varInfo[0][0] < $tagID
6959 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'}
6971 0 0 0 $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 3
6975 0 0 0 $offset >= 0 and $offset + $size <= $dirInfo->{'DataLen'}
6991 4 0 0 @varInfo and $varInfo[0][0] < $tagID
7009 0 0 4 defined $dat and length $dat

or 2 conditions

line l !l condition
312 351 5351 $options{'Protected'} || 0
365 5127 0 $self->Filter($self->{'OPTIONS'}{'FilterW'}, \$value) or return 0
712 2241 1261 $self->{'WRITE_PRIORITY'}{lc $group0} || 0
832 32158 9 $preferred{$lcTag} || {}
1050 77 2420 $options{'CreateGroups'} || {}
1302 0 58 $options->{'CoordFormat'} || '%d %d %.8f'
0 58 $options->{'RequestAll'} || 1
1462 13 18 $grp || ''
2697 0 0 shift() || 0
2699 0 0 shift() || 0
2835 70 0 $self->{'ConvType'} || 'PrintConv'
3121 0 0 $ex->{$_}{'G3'} || 0
3131 0 0 $2 || 0
3861 463 458 shift() || (last)
3989 387 0 $1 || ''
4122 7 14 $self->{'ADD_DIRS'}{$right} || ''
4200 464 216 $dirInfo->{'Base'} || 0
4312 165 4 $opts{'Start'} || 0
4314 0 169 $opts{'Width'} || 16
4315 165 4 $opts{'Prefix'} || ''
4316 169 0 $opts{'Out'} || \*STDOUT
4322 70 0 $opts{'DataPos'} || 0
0 70 $opts{'Base'} || 0
4415 0 0 $parms{'Start'} || 0
4469 1 0 $dirInfo->{'DirName'} || 'Unknown'
4819 0 0 $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n"
4924 2 34 $self->Options('ByteOrder') || $self->GetNewValue('ExifByteOrder') || $default || $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
4927 0 0 $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
4967 419 266 shift() || 2147483647
5523 42 640 $dirCount{$dirName} || 0
5923 0 1 $previewInfo->{'BaseShift'} || 0
5928 1 0 $fixup->GetMarkerPointers($outfile, 'PreviewImage') || 0
5943 0 0 &Write($outfile, substr($buff, 0, $junkLen)) or $err = 1
6146 2 19 $doneDir{'XMP'} || 0
6195 1 0 $self->{'OPTIONS'}{'ExtendedXMP'} || 0
6520 3 0 &Write($outfile, $$trailPt) or $err = 1
6572 107 19 $count = @vals or return undef
6674 0 0 $try || 1
6832 3 0 &Write($outfile, scalar "\0" x $pad) or $err = "writ"
6853 390 60 $tagTablePtr->{'FORMAT'} || 'int8u'
6868 293 157 $dirInfo->{'DirStart'} || 0
6925 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'
6952 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'

or 3 conditions

line l !l&&r !l&&!r condition
362 383 5278 0 $options{'Type'} || ($self->{'OPTIONS'}{'PrintConv'} ? 'PrintConv' : 'ValueConv')
375 0 100 2372 $lcg eq "*" or $lcg eq "all"
413 6 0 4 $parent || shift @dirNames
539 12 39 1365 $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
646 1565 0 35105 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC"
1565 32 35073 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC" or $wgAll
678 752 12024 0 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'} || $grp[0]
698 12737 20893 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
700 77 0 3 !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
19994 0 13635 not $writeGroup or $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
704 1547 2120 16404 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'}
737 321 98 287 !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
755 0 0 5452 $tagInfo->{'WriteGroup'} || $table->{'WRITE_GROUP'}
794 26 0 133 $tagInfo->{'Avoid'} or $permanent
858 0 0 0 $shift || $shiftable eq '0' && $options{'DelValue'}
868 0 0 4033 $addValue or $options{'DelValue'}
870 24 15 9 $shift || $tagInfo->{'List'}
988 0 0 3912 $addValue or $options{'DelValue'}
1001 54 37 19576 $options{'DelValue'} or $addValue
91 136 19440 $options{'DelValue'} or $addValue or $shift
1013 35 11 8 $val eq "" or $tagInfo->{'List'}
1038 8284 846 10583 $pref->{$tagInfo} or $prf
1039 5347 27 3756 $permanent or $shift
358 3340 58 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
3698 44 14 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} or grep /^$/, @{$$nvHash{"DelValue"};}
1075 160 19480 54 $shift or not $options{'DelValue'}
1152 9 0 2 !$err || $verbose > 2
1391 0 0 10 $tag =~ s/\s*([-+])$// or $dstTag =~ s/^([-+])\s*//
1406 5 18 0 $opts->{'EXPR'} or &ValidTagName($tag)
1431 5 4 23 $g eq "*" or $g eq "all"
1484 41 2575 6252 $set->[1] eq $lcTag or $set->[1] eq "*"
1562 1403 6 33 $set->[1] eq "*" or $set->[3]{'WILD'}
1608 3978 12 2715 ref $tag eq "HASH" and $tag->{'IsNVH'} or not defined $tag
1660 34 26 2210 $nvHash->{'TagInfo'}{'RawConvInv'} or $nvHash->{'Shift'}
1674 0 0 26 $err or not defined $val
1884 0 0 0 $opt eq "HardLink" or $opt eq "Link"
1897 1 0 0 $doName or $doDir
1936 0 0 0 !defined($usedFlag) || $usedFlag
1937 0 0 0 $file ne $newName or $opt =~ /Link$/
1939 0 0 0 $opt =~ /Link$/ or not $self->IsSameFile($file, $newName)
1962 0 0 1 $opt eq "HardLink" or $opt eq "Link"
2055 0 0 222 defined $uid or defined $gid
2076 0 0 0 $res == 1 or not $result
2121 0 0 0 $res == 1 or not $result
2186 1 0 0 defined $newFileName || defined $newDir
2195 1 0 0 not ref $infile or UNIVERSAL::isa($infile, "GLOB")
2200 0 0 1 defined $hardLink or defined $symLink
0 0 1 defined $hardLink or defined $symLink or defined $testName
2219 0 0 0 defined $outfile or ref $infile
2231 0 0 4 eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2265 1 0 22 $outType or ref $outfile
2333 0 0 228 $infile eq '-' || $infile =~ /\|$/
2369 104 2 127 $type eq "JPEG" or $type eq "EXV"
0 0 2 $type eq "ORF" or $type eq "RAW"
2387 27 58 0 $writableType{$type}[0] || $type
2390 16 11 0 $writableType{$type} || $type
2393 85 27 0 $func || "Process$type"
2434 0 0 0 $fileExt || ($fileType eq 'TIFF' ? $tiffType : $fileType)
2483 0 0 1 $rtnVal <= 0 or not $self->{'CHANGED'}
2494 0 1 0 $len >= $size || eval { do { truncate $inRef, $len } }
2503 206 0 0 close $inRef or not defined $outBuff
2521 0 0 0 close DST or $err
2534 0 0 0 $self->Unlink($infile) or $self->Warn("Error erasing original file")
2563 220 5 9 $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2675 0 0 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2805 0 0 5409 eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2841 59 16 494 $tagInfo->{'AutoSplit'} || $self->{'OPTIONS'}{'ListSplit'}
2842 9 65 0 $wantGroup || !defined($wantGroup)
2895 21987 423 27154 defined $conv or defined $convInv
2898 153 0 22245 ref $conv eq "ARRAY" or ref $convInv eq "ARRAY"
2944 8616 4 0 !exists($$tagInfo{"${type}Inv"}) || $convInvList
3056 0 0 9 $var eq "\$" or $var eq "/"
3161 0 0 0 not $tag =~ / \((\d+)\)$/ or $1 > $tagNum
3189 0 0 0 $self->{'OPTIONS'}{'Binary'} or $$val =~ /^Binary data/
3245 9 0 0 defined $val or ref $opt
3252 0 0 0 $opt eq 'Silent' || &$opt($self, $msg, 2)
3510 7315 41 3411 not $conv->{$_} =~ /$pattern/ or $ignorePrintConv{$_}
3549 75 29 13 @{$nvHash->{'DelValue'};} or defined $shift
3671 2394 9 20982 $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3754 0 0 0 $Image::ExifTool::allTables{$tableName} or $pushedTables{$tableName}
3975 140 1 1 !$altGroup || $altGroup ne $g0
4016 33278 6351 12955 $parent || shift @dirNames
4037 345 13 841 $parent || shift @dirNames
4080 38 2 57 $delGroup->{$grp0} || $delGroup->{$grp1}
4083 2 9 29 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/
0 0 0 !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}
4100 0 0 0 $self->{'TIFF_TYPE'} || $self->{'FILE_TYPE'}
4104 0 0 0 $delGroup->{$grp1} or $grp1 eq "ExifIFD"
4108 30 0 10 $dataPt or $dirInfo->{'RAF'}
4124 8 13 0 not $parent or $parent eq $right
21 0 0 not $parent or $parent eq $right or $parent eq $right2
4154 149 1317 231 $writeProc or $writeProc = $tagTablePtr->{'WRITE_PROC'}
4157 240 17 185 $dirInfo->{'DirLen'} || defined $dataPt && length $$dataPt || $dirInfo->{'RAF'}
4162 381 426 659 $Image::ExifTool::Extra{$blockName} || $dirInfo->{'TagInfo'}
4182 0 0 0 $dataPt or $dirInfo->{'RAF'}
4202 0 0 0 $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4226 1 2 1 not defined $oldDir or $oldDir ne $name
4243 1368 29 4 length $newData || $isRewriting
4385 0 0 0 $prefix or $hexID
4394 564 53 0 defined $size or not $dataPt
4422 38 0 40 $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4434 352 38 0 $format or defined $size
4532 0 0 0 $self->{'VALUE'}{'PreviewImageStart'} || $self->{'PreviewImageStart'}
4533 0 0 0 $self->{'VALUE'}{'PreviewImageLength'} || $self->{'PreviewImageLength'}
4651 0 0 0 $ch < 194 or $ch >= 248
4770 0 58 0 $tzFlag or not defined $tzFlag
4844 0 0 0 $i < 2 or $dateOnly
4890 0 0 404 $a[0] < 1 or $a[0] > 12
4894 0 0 404 $a[1] < 1 or $a[1] > 31
4970 0 0 1550 $n > $maxInt or $d > $maxInt
5126 187 173 0 $format eq "string" or $format eq "undef"
5139 1232 0 0 &IsInt($val) or &IsHex($val)
5146 0 7 0 $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5461 108 1 682 $marker == 218 or $marker == 217
5468 108 0 108 $marker == 192 || $marker & 3
108 466 0 $marker < 208 || $marker > 215
5565 108 0 108 $marker == 192 || $marker & 3
108 574 0 $marker < 208 || $marker > 215
5623 45 60 687 $markerName eq "APP0" or $dirCount{'IFD0'}
60 0 687 $markerName eq "APP0" or $dirCount{'IFD0'} or $dirCount{'ExtendedEXIF'}
5646 0 0 29 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
5784 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
5798 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
5810 0 16 0 $endedWithFF and $buff =~ /^\xd9/gs or $buff =~ /\xff\xd9/gs
6016 121 10 388 exists $editDirs->{$markerName} or $delGroup->{'*'}
6060 0 0 0 $$segDataPt =~ /^http/ or $$segDataPt =~ /
6090 0 1 50 $delGroup->{'IFD0'} or $delGroup->{'EXIF'}
6123 1 0 45 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
6452 0 0 4 $delGroup->{'Adobe'} or $editDirs->{'Adobe'}
6466 3 0 0 $self->IsOverwriting($nvHash, $val) or $delGroup->{'File'}
6489 12 122 324 $del or $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239
6557 2062 387 16561 $format eq "string" or $format eq "undef"
6583 1137 174 53 $format =~ /^rational/ or $format eq "float"
1311 32 21 $format =~ /^rational/ or $format eq "float" or $format eq "double"
6603 0 1 226 $val eq "inf" or $val eq "undef"
6671 3 0 0 $result or $^O ne "MSWin32"
6718 0 0 0 defined $atime or defined $mtime
6778 0 0 0 $success or not defined $saveFile
6784 0 0 0 $@ or $Image::ExifTool::evalWarning
6785 0 0 0 $@ || $Image::ExifTool::evalWarning
6869 445 5 0 $dirInfo->{'DirLen'} || length($$dataPt) - $dirStart
6879 17 5 205 ref $tagTablePtr->{$tagID} eq "ARRAY" or $tagInfo->{'Condition'}

xor 4 conditions

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