Condition Coverage

blib/lib/Image/ExifTool/Writer.pl
Criterion Covered Total %
condition 840 1592 52.7


and 2 conditions

line l !l condition
832 10512 21391 $writeGroup eq "MakerNotes" and $permanent = 1
2271 0 0 $self->SetFileModifyDate($infile) > 0 and $rtnVal = 1
2272 0 0 $self->SetFileModifyDate($infile, undef, "FileCreateDate") > 0 and $rtnVal = 1
2578 0 0 $rtnVal and $rtnVal = -1
2615 0 0 $rtnVal and $rtnVal = -1
4947 2044 6 0 length $_ < 2 and $_ = "0$_"

and 3 conditions

line !l l&&!r l&&r condition
355 282 26 5330 defined $value and not ref $value
308 3 5327 defined $value and not ref $value and not $options{'Sanitized'}
371 0 0 2440 length $_ and /^(\d+)?(.*)/
377 1 0 0 defined $f and $f ne 7
394 5588 1 49 $tag eq "*" and not defined $value
5589 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 2266 12 19 defined $fg->[0] and $fg->[0] != 1
504 6 1069 502 not $ifdName and /^XMP\b/i
512 274 0 0 $ifdName and $allFam0{$_}
529 1577 0 701 $grpName and $grpName ne $_
579 29 20 0 not $pre and uc $origTag eq "TAG"
618 48215 1375 112 $tagInfo->{'WriteGroup'} && $tagInfo->{'WriteGroup'} eq 'All'
627 108 0 132 $fam != 1 and not $tagInfo->{'AllowGroup'}
631 2173 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 32956 6 1 $tagInfo->{'AllowGroup'} && $lcWant =~ /^$tagInfo->{'AllowGroup'}$/i
647 1131 10 440 $ifdName and $lcWant eq lc $ifdName
648 1097 12 32 $wgAll and not $fam
1109 25 7 $wgAll and not $fam and $allFam0{$lcWant}
652 391 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 78 1436 28 $grp and $lcWant eq lc $grp
666 744 0 2 $mieGroup and $lcWant eq lc $mieGroup
669 2 0 0 $writeGroup =~ /^MIE\d+$/ and $tagInfo->{'Table'}{'WRITE_GROUP'}
693 0 119 33842 $writeProc and &$writeProc()
698 1 0 21052 $table->{'WRITABLE'} and not defined $writable
1 0 21052 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
700 13670 80 0 $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
710 19301 887 22 $tagInfo->{'Avoid'} and $tagInfo->{'WriteAlso'}
724 32913 1016 31 $noFlat and defined $tagInfo->{'Flat'}
741 32043 511 198 $table->{'GROUPS'}{'0'} eq "QuickTime" and !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
774 0 9526 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0
9526 0 9 $preferred{$lcTag} and $highestPriority{$lcTag} == 0 and %{$self->{'WRITE_PRIORITY'};}
780 8185 0 1350 $avoid{$lcTag} and $preferred{$lcTag}
827 32239 271 221 defined $listOnly and ($listOnly xor $tagInfo->{'List'})
838 18426 12103 1981 not $pref->{$tagInfo} and $tagInfo->{'Avoid'}
12103 1959 22 not $pref->{$tagInfo} and $tagInfo->{'Avoid'} and $tagInfo->{'WriteAlso'}
853 24 0 0 $options{'DelValue'} and defined $shiftable
24 0 0 $options{'DelValue'} and defined $shiftable and $shiftable eq "Time"
855 0 0 164 defined $value && length $value
0 164 0 $shift and not defined $value && length $value
864 117 47 0 defined $shiftable and not $shiftable
164 0 0 defined $shiftable and not $shiftable and $shift || $shiftable eq '0' && $options{'DelValue'}
876 21618 39 9 $addValue and not $shift || $tagInfo->{'List'}
885 21173 320 0 not length $val and $options{'DelValue'}
21434 22 2 ref $val eq "HASH" and not $tagInfo->{'Struct'}
886 117 0 47 $tagInfo->{'Shift'} and $tagInfo->{'Shift'} eq "Time"
940 4029 0 3 $tagInfo->{'DelGroup'} and not $options{'DelValue'}
968 19955 9683 2805 not defined $val and defined $value
982 19 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
19 0 6 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
999 19831 0 54 $options{'DelValue'} && !$shift
1002 19355 216 314 $tagInfo->{'List'} and not $options{'Replace'}
1047 3388 8 366 $tagInfo->{'List'} and not $options{'DelValue'}
3338 0 58 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1072 226 0 1 $verbose > 1 and @grps
1085 516 0 0 defined $nvHash->{'AddBefore'} and @{$nvHash->{'Value'};} >= $nvHash->{'AddBefore'}
1111 7 0 0 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
1141 30 0 46 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
30 0 46 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All" and $writeGroup
1169 11 84 148 $n and $pref->{$tagInfo}
1171 232 11 0 $Image::ExifTool::evalWarning and !$err || $verbose > 2
1185 3698 437 85 defined $err and not $prioritySet
3079 0 437 $err and not $verbose
1186 0 85 0 $err and not wantarray
1191 25 335 12 $options{'Replace'} and $options{'Replace'} == 2
1195 0 0 240 $wantGroup and @matchingTags
1268 0 44 15 $structOpt eq 2 and not @setTags
1322 59 0 0 $options->{'FastScan'} && $options->{'FastScan'} > 1
1361 59 0 0 $info->{'Error'} and $info->{'Error'} eq "Error opening file"
1377 2645 0 0 $opts{'SrcType'} and $opts{'SrcType'} ne $srcType
1454 0 0 35 length $_ and /^(\d+)?(.*)/
1456 0 35 0 !$f || $f eq '7' and $g =~ s/^ID-//i
1457 32 3 0 $g =~ /^file\d+$/i and !$f || $f eq '8'
1478 38 20 3 $tag =~ /[?*]/ and $tag ne "*"
1540 5518 514 16 $opts->{'WILD'} and $lcTag =~ /^$set->[1]$/
1556 0 0 4 defined $grp[$f] and $g eq $grp[$f]
1580 7 0 0 $dstTag =~ /[?*]/ and $dstTag ne "*"
1588 1448 0 0 $opts->{'SrcType'} and $opts->{'SrcType'} ne $srcType
1619 1267 118 26 $srcExifTool->{'TAG_INFO'}{$tag}{'Protected'} and $srcExifTool->{'TAG_INFO'}{$tag}{'Binary'}
1636 665 757 0 $wrn and not $noWarn
1662 2689 50 3996 ref $tag eq "HASH" and $tag->{'IsNVH'}
1668 1083 1477 0 defined($tagInfo = $Image::ExifTool::Extra{$tag}) and $tagInfo->{'Writable'}
1694 0 0 0 /^ID-(.*)/i and &IsSameID($tagInfo->{'TagID'}, $1)
1707 2646 1816 2273 $nvHash and $nvHash->{'Value'}
1721 34 0 26 $nvHash->{'Shift'} and $table
1883 6 0 0 $self->{'ALT_EXIFTOOL'}{$g8} && $self->{'ALT_EXIFTOOL'}{$g8}{'ALT_FILE'} eq $file
1912 0 0 0 $tag eq "FileCreateDate" and $^O ne "MSWin32"
1969 0 0 1 defined $filename and $self->IsOverwriting($nvHash, $file)
1971 1 0 0 defined $dir and $self->IsOverwriting($nvHash, $file)
1987 0 0 0 $newName =~ /:/ and not $newName =~ /^[A-Z]:[^:]*$/i
1991 0 0 0 $newName =~ /\?/ and not $newName =~ m[^[\\/]{2}\?[\\/][^?]*$]
2002 0 0 0 length $newName > 259 and not $newName =~ /\?/
2011 1 0 0 $self->Exists($newName) and !defined($usedFlag) || $usedFlag
2051 0 0 0 not $file =~ m[^/] and $newName =~ m[/]
2229 236 0 0 $setModDate and $self->IsOverwriting($nvHash) < 0
236 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"
2235 236 0 0 $setCreateDate and $self->IsOverwriting($nvHash2) < 0
236 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"
2245 232 0 4 not defined $outfile and defined $infile
2249 4 0 0 defined $hardLink and not length $hardLink
2250 4 0 0 defined $symLink and not length $symLink
2251 4 0 0 defined $testName and not length $testName
2254 4 0 0 defined $newDir and length $newDir
2259 3 0 0 defined $newFileName and length $newFileName
2261 0 0 1 defined $newFileName || defined $newDir and not ref $infile
2276 0 0 0 $hardLink and $self->SetFileName($infile, $hardLink, "HardLink")
2277 0 0 0 $symLink and $self->SetFileName($infile, $symLink, "SymLink")
2278 0 0 0 $testName and $self->SetFileName($infile, $testName, "Test")
2304 23 0 207 defined $infile and $infile ne ""
2306 0 4 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2408 5 229 0 not ref $infile and $infile eq '-' || $infile =~ /\|$/
2435 0 23 246 $Image::ExifTool::magicNumber{$type} and length $hdr
23 211 35 $Image::ExifTool::magicNumber{$type} and length $hdr and not $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s
2500 0 0 0 $fileType and defined $rtnVal
2524 0 0 0 $infile and &GetFileType($infile)
2537 212 0 23 $outType and $type
212 23 0 $outType and $type and $outType ne $type
2544 0 235 0 $rtnVal > 0 and not &Tell($outRef)
235 0 0 $rtnVal > 0 and not &Tell($outRef) and not $self->{'VALUE'}{'Error'}
2546 0 0 0 defined $hdr and length $hdr
2569 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 } }
2581 207 0 0 $^O eq "darwin" and -s "$infile/..namedfork/rsrc"
2605 0 0 0 $err and $self->Error("Error $err Mac OS resource fork", 2)
2638 0 215 20 $rtnVal > 0 and $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2643 198 0 0 $setModDate and $self->SetFileModifyDate($target, $originalTime, undef, 1) > 0
2645 198 0 0 $setCreateDate and $self->SetFileModifyDate($target, $createTime, "FileCreateDate", 1) > 0
2647 198 0 0 defined $hardLink and $self->SetFileName($target, $hardLink, "HardLink")
2648 198 0 0 defined $symLink and $self->SetFileName($target, $symLink, "SymLink")
2685 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2696 0 0 0 $tagInfo->{'SubDirectory'} and not $tagInfo->{'Writable'}
2730 0 0 0 $table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP"
2750 0 0 0 $table->{'WRITABLE'} and not defined $writable
0 0 0 $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2793 0 0 0 $grps = $table->{'GROUPS'} and $grp = $grps->{$family}
2802 0 0 0 $self and $self->{'OPTIONS'}{'HexTagIDs'}
2810 0 0 0 $grps = $tagInfo->{'Groups'} and $grp = $grps->{$family}
2883 0 5400 0 $] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2920 508 1 74 defined $listSplit and not $tagInfo->{'Struct'}
509 4 70 defined $listSplit and not $tagInfo->{'Struct'} and $wantGroup || !defined($wantGroup)
2923 15 0 59 $listSplit eq 1 and $tagInfo->{'AutoSplit'}
2933 23131 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'}
0 0 13 $tagInfo->{'RawJoin'} and $tagInfo->{'List'} and not ref $val
2946 68 587 22455 $table and $table->{'CHECK_PROC'}
587 230 22225 $table and $table->{'CHECK_PROC'} and not $tagInfo->{'RawConvInv'}
3022 187 0 8730 ref $conv eq "HASH" and !exists($$tagInfo{"${type}Inv"}) || $convInvList
3025 8730 0 0 $self->{'CUR_LANG'} and $type eq "PrintConv"
8730 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'}
3136 0 0 0 $line =~ /^self\b/ and not $rtnStr =~ /\$$/
3153 6 6 1 $bra and $line =~ s/^\@(#)?//
3159 6 4 3 $bra and not $line =~ s/^\s*\}//
10 0 3 $bra and not $line =~ s/^\s*\}// and $line =~ s/^\s*;\s*(.*?)\s*\}//s
3166 3 0 4 $level and $line =~ s/^(.*?)\s*\}//s
3185 13 0 0 $cache and not $lcTag =~ /(^|:)all$/
3204 0 0 0 / \((\d+)\)$/ and $1 < $cur
3216 13 0 0 $docGrp and not $lcTag =~ /\b(main|doc\d+):/
3240 3 0 0 defined $val and $tg =~ / \((\d+)\)$/
3293 10 0 3 defined $expr and defined $val
3314 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3330 0 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i)
3367 0 0 0 $advFmtSelf and defined($shift = $advFmtSelf->{'OPTIONS'}{'GlobalTimeShift'})
3385 0 0 0 $_[0] && $new eq $_
3436 0 0 0 $interrupted and $SIG{'INT'}
3467 0 1 0 $dir and not $self->IsDirectory($dir)
3472 0 0 0 length $dir and not $self->IsDirectory($dir)
3511 0 0 2 defined $mode and not defined $self->GetNewValue("FilePermissions")
3516 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
3588 3139 173 3212 $matches > 1 and not $pattern =~ /\$$/
3591 9174 13 449 defined $conv->{$_} and $conv->{$_} =~ /$pattern/
3660 6 0 7 $shiftType and $shiftType eq "Time"
3679 0 0 0 defined $val and &IsFloat($val)
3747 41213 5278 2010 $nvHash and $nvHash->{'WriteGroup'} ne $writeGroup
3751 1405 557 12 $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
3757 44301 23427 10 defined $nvHash and $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3758 2406 0 0 defined $_[4] && defined $nvHash->{'Save'} && $nvHash->{'Save'} > $_[4]
3762 0 0 0 $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
2406 0 0 $protect and not $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))
3783 10 0 0 $protect and $nvHash->{'Value'}
3786 21041 23488 23209 not defined $nvHash and $opts{'create'}
3929 30270 2269 56945 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3950 0 288 21270 $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3987 33623 565 254 $editDirs->{$dirName} and $editDirs->{$dirName} eq $parent
4061 109 575 142 $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup}
575 138 4 $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup} and !$altGroup || $altGroup ne $g0
4067 9 2609 92 $nvHash->{'Value'} and $preferredGroup eq $g0
2618 0 92 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'}
2609 0 92 $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'} and $self->{'OPTIONS'}{'WriteMode'} =~ /g/
4079 12985 0 0 $dirName eq "*" and $nvHash->{'Value'}
4101 47361 52 5317 $isCreating and $isCreating != 2
4128 82 38 86 $editDirs->{'IFD0'} and $fileDirs->{'JFIF'}
4169 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'}
4180 10 0 0 $grp0 eq "EXIF" and $delGroup->{$grp0}
4205 21 18 1 not $right and $grp1 eq "EXIF"
4206 16 3 21 $delFlag == 2 and $right
4249 655 810 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo}
1465 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash)
13 0 0 $nvHash->{'CreateOnly'} && $isRewriting
810 0 13 $tagInfo and $nvHash = $self->{'NEW_VALUE'}{$tagInfo} and $self->IsOverwriting($nvHash) and not $nvHash->{'CreateOnly'} && $isRewriting
4267 0 0 13 defined $newVal and length $newVal
4270 0 0 0 $blockName eq "MakerNotes" and $rawType{$self->{'FileType'}}
4283 209 18 1238 defined $dataPt and defined $dirInfo->{'DirStart'}
227 158 1080 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'}
176 389 691 defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and not $dirInfo->{'NoRefTest'}
4288 691 0 0 $self->{'PROCESSED'}{$addr} and $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4289 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}
4311 4 0 0 $dirName eq 'MakerNotes' && $dirInfo->{'TagInfo'}
4329 52 952 461 defined $newData and length $newData || $isRewriting
4334 0 4 0 defined $newData and not length $newData
4335 4 0 0 $self->{'CHANGED'} == $oldChanged and $self->{'OPTIONS'}{'Verbose'} > 2
4410 0 164 5 $maxLen and $len > $maxLen
4466 0 0 617 $tagInfo and $tagInfo->{'Name'}
4492 0 578 39 $tagInfo and $tagInfo->{'SubDirectory'}
4508 187 430 0 $verbose > 1 and $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4532 225 0 165 $verbose > 2 and $parms{'DataPt'}
4537 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'}
4625 0 0 0 $prePos and $preLen
0 0 0 $prePos and $preLen and $prePos + $preLen > $pos
4776 15 0 46 defined $guidCount and ++$guidCount < 256
4876 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
4900 0 0 0 $fmt =~ s/%f$// && $val =~ s/(\.\d+)\s*$//
4911 0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/
0 0 0 $^O eq "MSWin32" and $fmt =~ /%s/ and $val =~ /-\d/
4920 0 0 0 defined $a[5] and length $a[5]
4926 0 0 0 defined $a[4] and length $a[4]
4929 0 0 0 defined $a[$i] && length $a[$i]
4952 396 3 5 @a > 5 && $val =~ /(\.\d+)\s*$/
4968 1 0 403 defined $ss and $ss < 60
5232 0 0 7 $format =~ /^rational/ and $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5239 299 0 61 $count and $count > 0
5292 31 0 2 @vals > 1 and wantarray
5299 0 0 9 &IsInt($bit) and $bit < $num
5433 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)/
5504 1 1 109 $raf->Read($s, 2) == 2 and $s eq "\377\330"
5505 0 1 1 defined $s and length $s
5506 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"
5552 467 109 109 ($marker & 240) == 192 and $marker == 192 || $marker & 3
0 0 576 $marker != 0 and $marker != 1
0 576 0 $marker != 0 and $marker != 1 and $marker < 208 || $marker > 215
5560 0 0 576 defined $len and $len >= 2
5577 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)/
5602 108 30 209 defined $dirName and not $delGroup->{$dirName}
5610 1 1 109 $marker and $marker == 218
5612 1 1 0 $marker and $marker != 217
5649 578 109 109 ($marker & 240) == 192 and $marker == 192 || $marker & 3
0 0 687 $marker != 0 and $marker != 1
0 2 685 $marker != 0 and $marker != 1 and $marker != 217
2 685 0 $marker != 0 and $marker != 1 and $marker != 217 and $marker < 208 || $marker > 215
5659 0 0 685 defined $len and $len >= 2
5673 748 47 1 exists $addDirs->{'JFIF'} and not defined $doneDir{'JFIF'}
5700 0 0 0 defined $newData and length $newData
5709 364 296 31 exists $addDirs->{'IFD0'} and not defined $doneDir{'IFD0'}
5721 0 2 29 defined $buff and length $buff
5730 29 0 0 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
5740 29 0 0 $n > 1 and $oldOutfile
5751 409 81 19 exists $addDirs->{'Photoshop'} and not defined $doneDir{'Photoshop'}
5761 0 0 19 defined $buff and length $buff
5768 358 109 27 exists $addDirs->{'XMP'} and not defined $doneDir{'XMP'}
5780 0 0 27 defined $buff and length $buff
5787 473 13 3 exists $addDirs->{'ICC_Profile'} and not defined $doneDir{'ICC_Profile'}
5789 2 1 0 $delGroup->{'ICC_Profile'} and $delGroup->{'ICC_Profile'} != 2
5798 0 0 3 defined $buff and length $buff
5805 476 10 2 exists $addDirs->{'Ducky'} and not defined $doneDir{'Ducky'}
5815 0 0 2 defined $buff and length $buff
5828 463 0 0 exists $addDirs->{'Adobe'} and not defined $doneDir{'Adobe'}
5846 415 23 5 exists $addDirs->{'COM'} and not defined $doneDir{'COM'}
5848 5 0 0 $delGroup->{'File'} and $delGroup->{'File'} != 2
5868 578 109 109 ($marker & 240) == 192 and $marker == 192 || $marker & 3
576 0 2 $marker == 217 and $isEXV
109 467 0 $marker >= 208 and $marker <= 215
5894 16 0 0 $endedWithFF and $buff =~ /^\xd9/gs
5916 0 0 0 $nvTrail->{'Value'} and $nvTrail->{'Value'}[0]
0 0 0 $raf->Seek(0, 2) and $raf->Tell != $endPos
5984 0 0 0 $self->{'Make'} =~ /^SONY/i and $junkLen > 32
5991 0 0 0 length $buff > $junkLen + $segLen + 6 and substr($buff, $junkLen + $segLen + 3, 3) eq "\330\377\333"
6072 0 0 0 $verbose and $marker
6112 0 0 11 defined $newData and length $newData
6202 45 0 1 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile
6212 46 0 0 $n > 1 and $oldOutfile
6266 1 0 0 $goodGuid and $goodGuid ne $2
6278 1 0 0 $guid ne $readGuid and $readGuid ne 2
6357 0 0 0 $$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14
6365 0 0 0 $chunksTot != $iccChunksTotal and defined $iccChunkCount
6391 0 0 0 defined $_ and $icc_profile .= $_
6540 2 1 1 $delGroup->{'File'} and $delGroup->{'File'} != 2
6568 432 5 11 $delGroup->{'*'} and not $segType
437 8 3 $delGroup->{'*'} and not $segType and $marker >= 224
13 2 1 $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239
6575 4 0 443 defined $segDataPt and defined $$segDataPt
6602 0 111 0 $rtnVal and $err
6603 110 0 1 $creatingEXV and $rtnVal > 0
110 1 0 $creatingEXV and $rtnVal > 0 and not $self->{'CHANGED'}
6617 47 8 83 length $$valPtr and not $$valPtr =~ /^\xff\xd8/
55 58 25 length $$valPtr and not $$valPtr =~ /^\xff\xd8/ and not $self->Options("IgnoreMinorErrors")
6637 2186 0 301 $count and $count > 0
6649 14765 0 1923 $count and $count != 1
6669 1746 12 1267 &IsFloat($val) and $count == 1
6676 15286 0 4 $val > $rng->[1] and $val != 4277010157
6684 61 9 0 $1 < 0 and $format =~ /u$/
6690 523 560 0 $format =~ /^rational\d+u$/ and $val < 0
6708 0 1315 3111 $table and $table->{'FORMAT'}
6801 0 0 0 defined $atime and defined $mtime
6850 0 0 0 defined $atime and defined $mtime
6892 0 0 0 $type and defined $size
6898 0 0 0 $self->{'OPTIONS'}{'Verbose'} and $bytesRead
0 0 0 $self->{'OPTIONS'}{'Verbose'} and $bytesRead and $type
0 0 0 $self->{'OPTIONS'}{'Verbose'} and $bytesRead and $type and not $noMsg
6992 6 3 13 $writeInfo and $writeInfo eq $tagInfo
6995 212 6 10 @varInfo and $varInfo[0][0] < $tagID
7019 212 0 6 @varInfo and $varInfo[0][0] == $tagID
7032 213 0 0 $tagInfo->{'DataTag'} and not $tagInfo->{'IsOffset'}
7037 0 0 0 $format =~ /^int16/ and $newVal > 65535
7049 457 0 1 $tagTablePtr->{'IS_OFFSET'} and $dirInfo->{'Fixup'}
7056 1 0 0 @varInfo and $varInfo[0][0] < $tagID
7070 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'}
7082 0 0 0 $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 3
7086 0 0 0 $offset >= 0 and $offset + $size <= $dirInfo->{'DataLen'}
7102 4 0 0 @varInfo and $varInfo[0][0] < $tagID
7134 0 0 0 $len and $len <= $dataLen - $start
7143 0 0 4 defined $dat and length $dat

or 2 conditions

line l !l condition
312 326 5353 $options{'Protected'} || 0
365 5135 0 $self->Filter($self->{'OPTIONS'}{'FilterW'}, \$value) or return 0
715 2295 1273 $self->{'WRITE_PRIORITY'}{lc $group0} || 0
836 32501 9 $preferred{$lcTag} || {}
1058 77 2402 $options{'CreateGroups'} || {}
1322 0 59 $options->{'CoordFormat'} || '%d %d %.8f'
0 59 $options->{'RequestAll'} || 1
1498 13 18 $grp || ''
2772 0 0 shift() || 0
2774 0 0 shift() || 0
2913 70 0 $self->{'ConvType'} || 'PrintConv'
3199 0 0 $ex->{$_}{'G3'} || 0
3209 0 0 $2 || 0
3947 464 459 shift() || (last)
4075 388 0 $1 || ''
4208 7 14 $self->{'ADD_DIRS'}{$right} || ''
4286 475 216 $dirInfo->{'Base'} || 0
4398 165 4 $opts{'Start'} || 0
4400 0 169 $opts{'Width'} || 16
4401 165 4 $opts{'Prefix'} || ''
4402 169 0 $opts{'Out'} || \*STDOUT
4408 70 0 $opts{'DataPos'} || 0
0 70 $opts{'Base'} || 0
4501 0 0 $parms{'Start'} || 0
4555 1 0 $dirInfo->{'DirName'} || 'Unknown'
4905 0 0 $wrn || "Install POSIX::strptime or Time::Piece for inverse date/time conversions\n"
5010 2 34 $self->Options('ByteOrder') || $self->GetNewValue('ExifByteOrder') || $default || $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
5013 0 0 $self->{'MAKER_NOTE_BYTE_ORDER'} || 'MM'
5053 419 267 shift() || 2147483647
5607 42 643 $dirCount{$dirName} || 0
6007 0 1 $previewInfo->{'BaseShift'} || 0
6012 1 0 $fixup->GetMarkerPointers($outfile, 'PreviewImage') || 0
6027 0 0 &Write($outfile, substr($buff, 0, $junkLen)) or $err = 1
6225 2 19 $doneDir{'XMP'} || 0
6274 1 0 $self->{'OPTIONS'}{'ExtendedXMP'} || 0
6599 3 0 &Write($outfile, $$trailPt) or $err = 1
6651 108 19 $count = @vals or return undef
6753 0 0 $try || 1
6941 3 0 &Write($outfile, scalar "\0" x $pad) or $err = "writ"
6963 397 61 $tagTablePtr->{'FORMAT'} || 'int8u'
6978 301 157 $dirInfo->{'DirStart'} || 0
7036 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'
7063 0 0 $tagInfo->{'Format'} || $tagTablePtr->{'FORMAT'} || 'int32u'

or 3 conditions

line l !l&&r !l&&!r condition
362 352 5286 0 $options{'Type'} || ($self->{'OPTIONS'}{'PrintConv'} ? 'PrintConv' : 'ValueConv')
375 0 109 2331 $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 1549 0 35299 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC"
1549 32 35267 $grp[0] eq "EXIF" or $grp[0] eq "SonyIDC" or $wgAll
678 753 12159 0 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'} || $grp[0]
698 12908 21053 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
700 77 0 3 !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
20210 0 13750 not $writeGroup or $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All'
704 1676 2126 16485 $tagInfo->{'WriteGroup'} || $tagInfo->{'Table'}{'WRITE_GROUP'}
741 324 98 287 !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
759 0 0 5490 $tagInfo->{'WriteGroup'} || $table->{'WRITE_GROUP'}
798 4 0 67 $tagInfo->{'Avoid'} or $permanent
864 0 0 0 $shift || $shiftable eq '0' && $options{'DelValue'}
874 0 0 4038 $addValue or $options{'DelValue'}
876 24 15 9 $shift || $tagInfo->{'List'}
996 0 0 3923 $addValue or $options{'DelValue'}
1009 54 37 19745 $options{'DelValue'} or $addValue
91 136 19609 $options{'DelValue'} or $addValue or $shift
1021 35 11 8 $val eq "" or $tagInfo->{'List'}
1046 8354 855 10676 $pref->{$tagInfo} or $prf
1047 5420 27 3762 $permanent or $shift
366 3338 58 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};}
3704 44 14 $tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} or grep /^$/, @{$$nvHash{"DelValue"};}
1083 160 19649 54 $shift or not $options{'DelValue'}
1171 9 0 2 !$err || $verbose > 2
1412 0 0 10 $tag =~ s/\s*([-+])$// or $dstTag =~ s/^([-+])\s*//
1430 7 23 0 $opts->{'EXPR'} or &ValidTagName($tag)
1456 35 0 0 !$f || $f eq '7'
1457 3 0 0 !$f || $f eq '8'
1467 5 4 26 $g eq "*" or $g eq "all"
1538 45 2575 6048 $set->[1] eq $lcTag or $set->[1] eq "*"
1616 1403 8 37 $set->[1] eq "*" or $set->[3]{'WILD'}
1662 3996 12 2727 ref $tag eq "HASH" and $tag->{'IsNVH'} or not defined $tag
1714 34 26 2213 $nvHash->{'TagInfo'}{'RawConvInv'} or $nvHash->{'Shift'}
1728 0 0 26 $err or not defined $val
1959 0 0 0 $opt eq "HardLink" or $opt eq "Link"
1972 1 0 0 $doName or $doDir
2011 0 0 0 !defined($usedFlag) || $usedFlag
2012 0 0 0 $file ne $newName or $opt =~ /Link$/
2014 0 0 0 $opt =~ /Link$/ or not $self->IsSameFile($file, $newName)
2037 0 0 1 $opt eq "HardLink" or $opt eq "Link"
2130 0 0 223 defined $uid or defined $gid
2151 0 0 0 $res == 1 or not $result
2196 0 0 0 $res == 1 or not $result
2261 1 0 0 defined $newFileName || defined $newDir
2270 1 0 0 not ref $infile or UNIVERSAL::isa($infile, "GLOB")
2275 0 0 1 defined $hardLink or defined $symLink
0 0 1 defined $hardLink or defined $symLink or defined $testName
2294 0 0 0 defined $outfile or ref $infile
2306 0 0 4 eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@
2340 1 0 22 $outType or ref $outfile
2408 0 0 229 $infile eq '-' || $infile =~ /\|$/
2444 105 2 127 $type eq "JPEG" or $type eq "EXV"
0 0 2 $type eq "ORF" or $type eq "RAW"
2462 27 58 0 $writableType{$type}[0] || $type
2465 16 11 0 $writableType{$type} || $type
2468 85 27 0 $func || "Process$type"
2509 0 0 0 $fileExt || ($fileType eq 'TIFF' ? $tiffType : $fileType)
2558 0 0 1 $rtnVal <= 0 or not $self->{'CHANGED'}
2569 0 1 0 $len >= $size || eval { do { truncate $inRef, $len } }
2578 207 0 0 close $inRef or not defined $outBuff
2596 0 0 0 close DST or $err
2609 0 0 0 $self->Unlink($infile) or $self->Warn("Error erasing original file")
2638 221 5 9 $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB'))
2750 0 0 0 $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2883 0 0 5400 eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@
2919 59 16 508 $tagInfo->{'AutoSplit'} || $self->{'OPTIONS'}{'ListSplit'}
2920 9 65 0 $wantGroup || !defined($wantGroup)
2973 22074 451 27489 defined $conv or defined $convInv
2976 153 0 22360 ref $conv eq "ARRAY" or ref $convInv eq "ARRAY"
3022 8726 4 0 !exists($$tagInfo{"${type}Inv"}) || $convInvList
3134 0 0 13 $var eq "\$" or $var eq "/"
3243 0 0 0 not $tag =~ / \((\d+)\)$/ or $1 > $tagNum
3271 0 0 0 $self->{'OPTIONS'}{'Binary'} or $$val =~ /^Binary data/
3337 0 0 0 $opt eq "Silent" or &$opt($self, $msg, 2)
3596 7299 26 3416 not $conv->{$_} =~ /$pattern/ or $ignorePrintConv{$_}
3635 75 29 13 @{$nvHash->{'DelValue'};} or defined $shift
3757 2396 10 21031 $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'}
3840 0 0 0 $Image::ExifTool::allTables{$tableName} or $pushedTables{$tableName}
4061 140 1 1 !$altGroup || $altGroup ne $g0
4102 33379 6366 12985 $parent || shift @dirNames
4123 345 13 841 $parent || shift @dirNames
4166 38 2 57 $delGroup->{$grp0} || $delGroup->{$grp1}
4169 2 9 29 $grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/
0 0 0 !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}
4186 0 0 0 $self->{'TIFF_TYPE'} || $self->{'FILE_TYPE'}
4190 0 0 0 $delGroup->{$grp1} or $grp1 eq "ExifIFD"
4194 30 0 10 $dataPt or $dirInfo->{'RAF'}
4210 8 13 0 not $parent or $parent eq $right
21 0 0 not $parent or $parent eq $right or $parent eq $right2
4240 149 1329 232 $writeProc or $writeProc = $tagTablePtr->{'WRITE_PROC'}
4243 236 17 186 $dirInfo->{'DirLen'} || defined $dataPt && length $$dataPt || $dirInfo->{'RAF'}
4248 382 441 655 $Image::ExifTool::Extra{$blockName} || $dirInfo->{'TagInfo'}
4268 0 0 0 $dataPt or $dirInfo->{'RAF'}
4288 0 0 0 $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ'
4312 1 2 1 not defined $oldDir or $oldDir ne $name
4329 1380 29 4 length $newData || $isRewriting
4471 0 0 0 $prefix or $hexID
4480 564 53 0 defined $size or not $dataPt
4508 38 0 40 $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/]
4520 352 38 0 $format or defined $size
4618 0 0 0 $self->{'VALUE'}{'PreviewImageStart'} || $self->{'PreviewImageStart'}
4619 0 0 0 $self->{'VALUE'}{'PreviewImageLength'} || $self->{'PreviewImageLength'}
4737 0 0 0 $ch < 194 or $ch >= 248
4856 0 61 0 $tzFlag or not defined $tzFlag
4930 0 0 0 $i < 2 or $dateOnly
4976 0 0 404 $a[0] < 1 or $a[0] > 12
4980 0 0 404 $a[1] < 1 or $a[1] > 31
5056 0 0 1551 $n > $maxInt or $d > $maxInt
5212 187 173 0 $format eq "string" or $format eq "undef"
5225 1232 0 0 &IsInt($val) or &IsHex($val)
5232 0 7 0 $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5545 109 1 685 $marker == 218 or $marker == 217
5552 109 0 109 $marker == 192 || $marker & 3
109 467 0 $marker < 208 || $marker > 215
5649 109 0 109 $marker == 192 || $marker & 3
109 576 0 $marker < 208 || $marker > 215
5707 45 60 691 $markerName eq "APP0" or $dirCount{'IFD0'}
60 0 691 $markerName eq "APP0" or $dirCount{'IFD0'} or $dirCount{'ExtendedEXIF'}
5730 0 0 29 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
5868 109 0 109 $marker == 192 || $marker & 3
0 0 576 $marker == 0 or $marker == 1
0 0 576 $marker == 0 or $marker == 1 or $marker >= 208 and $marker <= 215
5882 1 0 108 $oldOutfile or $delPreview
1 11 97 $oldOutfile or $delPreview or $trailInfo
11 4 93 $oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'}
4 0 93 $oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'} or $nvTrail
5894 0 16 0 $endedWithFF and $buff =~ /^\xd9/gs or $buff =~ /\xff\xd9/gs
6095 121 10 390 exists $editDirs->{$markerName} or $delGroup->{'*'}
6139 0 0 0 $$segDataPt =~ /^http/ or $$segDataPt =~ /
6169 0 1 50 $delGroup->{'IFD0'} or $delGroup->{'EXIF'}
6202 1 0 45 $self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'}
6531 0 0 4 $delGroup->{'Adobe'} or $editDirs->{'Adobe'}
6545 3 0 0 $self->IsOverwriting($nvHash, $val) or $delGroup->{'File'}
6568 12 122 326 $del or $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239
6636 2081 406 16688 $format eq "string" or $format eq "undef"
6662 1145 174 35 $format =~ /^rational/ or $format eq "float"
1319 32 3 $format =~ /^rational/ or $format eq "float" or $format eq "double"
6682 0 1 231 $val eq "inf" or $val eq "undef"
6750 3 0 0 $result or $^O ne "MSWin32"
6797 0 0 0 defined $atime or defined $mtime
6857 0 0 0 $success or not defined $saveFile
6863 0 0 0 $@ or $Image::ExifTool::evalWarning
6864 0 0 0 $@ || $Image::ExifTool::evalWarning
6980 1 0 457 not defined $dirLen or $dirLen > $dataLen - $dirStart
6990 17 5 205 ref $tagTablePtr->{$tagID} eq "ARRAY" or $tagInfo->{'Condition'}
7124 0 0 0 $tagInfo->{'Format'} || $defaultFormat
7132 0 0 0 $start < $dirStart or $start > $dataLen

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
827 217 145 76 54 $listOnly xor $tagInfo->{'List'}
1536 9 564 6 8659 $opts->{'GROUP8'} xor $isAlt