Branch Coverage

blib/lib/Image/ExifTool/Writer.pl
Criterion Covered Total %
branch 1792 3170 56.5


line true false branch
316 40 5619 unless (defined $tag)
323 218 5401 if (ref $value)
324 78 140 if (ref $value eq 'ARRAY') { }
127 13 elsif (ref $value eq 'SCALAR') { }
327 51 27 if (@$value > 1) { }
332 2 151 if ref $_
334 21 132 if $e
338 1 50 if $noJoin
345 0 27 if ref $value eq "SCALAR"
353 5308 29 if defined $value and not ref $value and not $options{'Sanitized'}
356 519 5099 if $tag =~ /(.*):(.+)/
359 4 5614 if $tag =~ s/#$//
363 5124 494 if $convType eq "PrintConv"
367 2401 3217 if ($wantGroup)
369 0 2427 unless length $_ and /^(\d+)?(.*)/
373 2327 100 unless $lcg eq "*" or $lcg eq "all"
374 1 2426 if ($g =~ s/^ID-//i) { }
30 2396 elsif (defined $f) { }
375 0 1 if defined $f and $f ne 7
378 0 30 if $f > 2
379 9 21 if $f == 2
381 94 2302 if $family2groups{$lcg}
384 100 2301 unless @wantGroup
388 36 5582 if lc $tag eq "all"
396 34 12 if ($wantGroup) { }
397 34 0 unless $wantGroup =~ /^XM[LP]-\*$/i
399 4 30 if (@del and $remove)
401 2 2 if $excludeGroups{$del[0]}
407 0 10 if (ref $parent)
411 4 6 unless $dirName = $parent || shift @dirNames
417 7 27 if $wantGroup =~ /^(MIE\d+|XM[LP]-[-\w]*\w)$/i
422 46 0 if (@del) { }
0 0 elsif (grep /^$wantGroup$/i, @delGroup2) { }
427 23 723 if ($remove) { }
429 4 19 if ($grp =~ /^(XM[LP])(-.*)?$/)
431 1 3 if ($grp eq $x) { }
3 0 elsif ($$delGroup{"$x-*"} and not $$delGroup{"-$grp"}) { }
434 57 1 unless /^(-?)$x-/
435 1 0 unless $1
440 2 1 if ($delGroup->{$x})
449 15 8 if (exists $delGroup->{$grp}) { }
452 5 3 unless $didExcl
457 46 677 if ($delMore{$grp})
465 1 45 if ($verbose > 1 and @donegrps)
467 0 1 $remove ? :
476 0 46 if wantarray
477 0 46 if $err
486 27 5545 if ($writeMode ne "wcg")
487 25 2 unless $writeMode =~ /w/i
488 2 25 if (not $writeMode =~ /c/i) { }
8 17 elsif (not $writeMode =~ /g/i) { }
489 0 2 if $createOnly
498 19 2274 if defined $fg->[0] and $fg->[0] != 1
502 131 2143 if (/^IFD(\d+)$/i) { }
0 2143 elsif (/^SubIFD(\d+)$/i) { }
0 2143 elsif (/^Version(\d+)$/i) { }
274 1869 elsif ($exifDirs{$_}) { }
291 1578 elsif ($allFam0{$_}) { }
1 1577 elsif (/^Track(\d+)$/i) { }
2 1575 elsif (/^MIE(\d*-?)(\w+)$/i) { }
498 1083 elsif (not $ifdName and /^XMP\b/i) { }
510 274 0 unless $ifdName and $allFam0{$_}
521 498 0 if ($writeProc)
527 699 1575 if $grpName and $grpName ne $_
537 51 1371 if ($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) { }
1371 0 elsif (not $options{'NoShortcut'}) { }
543 18 3 length $3 == 3 ? :
21 30 if $3
547 0 238 unless $tagInfo->{'Table'}
548 52 186 unless my $langInfoProc = $tagInfo->{'Table'}{'LANG_INFO'}
550 168 18 if $langInfo
552 49 2 if @matchingTags
558 1 1370 if ($match)
563 0 3 if $e
565 1 0 if $numSet
566 0 1 if wantarray
567 0 1 if $err
571 1372 0 unless ($listOnly)
572 49 1323 if (not &TagExists($tag)) { }
0 1323 elsif ($langCode) { }
510 813 elsif ($wantGroup) { }
573 49 0 if ($tag =~ /^[-\w*?]+$/) { }
574 29 20 $wantGroup ? :
576 2 47 if $origTag =~ /-/
577 0 49 if (not $pre and uc $origTag eq "TAG")
582 0 0 if $tag =~ /^\$/
591 0 1372 if $verbose > 2
594 1372 0 if wantarray
595 0 0 if $err
611 23857 44974 unless defined $highestPriority{$lcTag}
613 833 67998 defined $tagInfo->{'Preferred'} ? :
614 48878 19953 if ($wantGroup)
621 226 48690 if $translateWantGroup{$lcWant}
624 2050 46866 if $prfTag
625 48674 242 if (not defined $fam) { }
2 240 elsif ($fam == 7) { }
132 216 elsif ($fam != 1 and not $tagInfo->{'AllowGroup'}) { }
626 2155 46519 if ($lcWant eq lc $grp[0])
629 4 2151 if $wgAll and not $writeGroup
632 10356 36163 if $lcWant eq lc $grp[2]
634 1 1 if &IsSameID($tagInfo->{'TagID'}, $lcWant)
636 22 110 if $lcWant eq lc $grp[$fam]
637 5 10 if ($wgAll and not $fam and $allFam0{$lcWant})
638 3 2 unless $writeGroup
644 1553 34719 if ($grp[0] eq 'EXIF' or $grp[0] eq 'SonyIDC' or $wgAll) { }
1542 33177 elsif ($grp[0] eq 'QuickTime') { }
744 32433 elsif ($grp[0] eq 'MIE') { }
32432 1 elsif (not $tagInfo->{'AllowGroup'} && $lcWant =~ /^$tagInfo->{'AllowGroup'}$/i) { }
645 1119 434 unless ($ifdName and $lcWant eq lc $ifdName)
646 37 7 unless $wgAll and not $fam and $allFam0{$lcWant}
647 2 5 unless $writeGroup
650 2 47 if $wgAll and $allFam0{$lcWant} and $fam
652 0 432 if $lcWant eq "PreviewIFD"
655 16 1526 if ($grp[1] eq 'Track#') { }
656 15 1 unless $movGroup and $lcWant eq lc $movGroup
660 1498 28 unless $grp and $lcWant eq lc $grp
664 742 2 unless $mieGroup and $lcWant eq lc $mieGroup
667 0 0 if ($writeGroup =~ /^MIE\d+$/ and $tagInfo->{'Table'}{'WRITE_GROUP'})
673 31921 511 unless $lcWant eq lc $grp[1]
676 13022 461 unless $writeGroup
685 9 33427 if ($table->{'SRC_TABLE'})
687 0 9 unless $writeProc
691 119 33317 unless $writeProc and &$writeProc()
696 0 20850 unless $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
698 20029 3 if (not $writeGroup or $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All')
705 16371 3658 unless $writeGroup
707 19952 77 unless ($priority)
709 3493 16459 unless ($priority)
714 1129 18900 if $prfTag
718 31 33404 if $noFlat and defined $tagInfo->{'Flat'}
719 2200 31235 if ($prot)
721 1163 1037 if ($prot)
724 1 1162 if ($verbose > 1)
735 419 287 if $table->{'GROUPS'}{'0'} eq "QuickTime" and !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
736 10200 22072 if ($priority > $highestPriority{$lcTag}) { }
13291 8781 elsif ($priority == $highestPriority{$lcTag}) { }
739 1222 8978 $tagInfo->{'Avoid'} ? :
743 320 12971 if $tagInfo->{'Avoid'}
745 86 32186 if ($tagInfo->{'WriteAlso'}) { }
752 5394 26878 if ($writeGroup eq "XMP")
754 0 5394 if $wg
762 86 4113 if @writeAlsoList
768 9 9378 if ($preferred{$lcTag} and $highestPriority{$lcTag} == 0 and %{$self->{'WRITE_PRIORITY'};})
774 1332 0 if ($avoid{$lcTag} and $preferred{$lcTag})
775 1219 113 if ($avoid{$lcTag} < scalar keys %{$preferred{$lcTag};}) { }
29 84 elsif ($highestPriority{$lcTag} < 1000) { }
778 4417009 5756 unless $lcTag eq lc $tagInfo->{'Name'}
779 1510 4246 if $tagInfo->{'Avoid'}
786 10668 102 unless $lcTag eq lc $tagInfo->{'Name'}
787 1 101 unless my $priority = $tagPriority{$tagInfo}
788 30 71 if $priority == $highestPriority{$lcTag}
789 0 71 if $priority < $nextHighest
791 71 0 unless defined $permanent
792 4 67 if $tagInfo->{'Avoid'} or $permanent
793 44 23 if $writeGroup{$tagInfo} eq "MakerNotes"
794 18 5 if ($nextHighest < $priority)
800 13 16 if (@nextBestTags)
819 9 32251 if $alsoWrote{$tagInfo}
821 221 32030 if defined $listOnly and ($listOnly xor $tagInfo->{'List'})
825 31499 531 unless defined $permanent
826 31498 532 unless defined $permanent
833 164 31866 if (defined $shift)
836 0 164 if ($tagInfo->{'List'}) { }
840 24 140 unless ($shift)
842 24 0 if $addValue
845 0 0 if $options{'DelValue'} and defined $shiftable and $shiftable eq "Time"
847 0 164 if ($shift and not defined $value && length $value)
856 0 0 if (defined $shiftable and not $shiftable and $shift || $shiftable eq '0' && $options{'DelValue'})
861 0 0 if $verbose
866 21400 10630 if (defined $val) { }
6655 3975 elsif ($permanent) { }
0 3975 elsif ($addValue or $options{'DelValue'}) { }
868 9 21391 if ($addValue and not $shift || $tagInfo->{'List'})
869 0 9 if ($addValue eq '2') { }
873 0 9 if $verbose > 2
877 164 21227 if ($shift) { }
35 21192 elsif (not length $val and $options{'DelValue'}) { }
2 42358 elsif (ref $val eq 'HASH' and not $tagInfo->{'Struct'}) { }
878 47 117 if ($tagInfo->{'Shift'} and $tagInfo->{'Shift'} eq 'Time') { }
113 4 elsif (&IsFloat($val)) { }
880 17 30 $shift > 0 ? :
884 0 47 if ($err2)
886 0 0 if $verbose > 2
893 0 4 if $verbose > 2
901 0 2 if $verbose > 2
905 4 6651 if $options{'IgnorePermanent'}
907 33 6618 if (defined $tagInfo->{'DelValue'}) { }
915 0 0 if $verbose > 2
918 6 3969 if ($tagInfo->{'DelCheck'})
921 0 6 if $@
922 6 0 if (defined $err2)
924 3 3 unless $err2
925 0 3 unless $err2 =~ /delete$/
927 0 3 if $verbose > 2
932 3 3966 if ($tagInfo->{'DelGroup'} and not $options{'DelValue'})
936 0 3 if ($delMore{$tag})
941 0 3 if $verbose
949 27808 4194 unless ($noConv)
954 8311 19497 if (defined $e)
956 17 8294 unless $e
960 2775 29210 if (not defined $val and defined $value)
963 2775 0 unless $options{'DelValue'}
966 208 29002 unless $self->{'NEW_VALUE'}
967 14167 15043 if ($options{'Replace'})
971 25 14142 if ($tagInfo->{'WriteAlso'})
973 6 19 if ($tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq 'All' and $writeGroup) { }
983 274 13893 if $options{'Replace'} == 2
986 19655 9281 if (defined $val) { }
5421 3860 elsif ($permanent) { }
0 3860 elsif ($addValue or $options{'DelValue'}) { }
991 0 19655 unless $nvHash
992 308 19347 if $tagInfo->{'List'} and not $options{'Replace'}
994 66 19589 if $editOnly
996 22 19633 if ($tagInfo->{'MakerNotes'})
999 46 19609 if ($createOnly) { }
227 19382 elsif ($options{'DelValue'} or $addValue or $shift) { }
1005 225 2 unless $nvHash->{'DelValue'}
1006 160 67 if ($shift) { }
54 13 elsif ($options{'DelValue'}) { }
1011 8 11 unless $val eq "" or $tagInfo->{'List'}
1013 2 52 ref $val eq 'ARRAY' ? :
1014 0 54 if ($verbose > 1)
1015 0 0 $permanent ? :
1016 0 0 $tagInfo->{'List'} ? :
1017 0 0 ref $val eq 'ARRAY' ? :
1019 0 0 if (ref $_ eq "HASH")
1031 273 19382 defined $tagInfo->{'Preferred'} ? :
1033 657 18998 if ($tagInfo->{'Table'}{'GROUPS'}{'0'} eq "QuickTime")
1034 367 290 if $tagPriority{$tagInfo} < $highestQT{$lcTag}
1036 9098 10557 if ($pref->{$tagInfo} or $prf)
1037 5370 3728 if ($permanent or $shift) { }
3714 14 elsif ($tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} or grep /^$/, @{$$nvHash{'DelValue'};}) { }
1046 19 3683 $editGroup ? :
12 3702 $editOnly ? :
1048 2463 1251 unless $createGroups
1053 3704 15951 if ($nvHash->{'IsCreating'}) { }
19 15932 elsif ($createOnly) { }
1054 227 3477 if (%{$self->{'DEL_GROUP'};})
1057 12235 354 if $self->{'DEL_GROUP'}{$grp} == 2
1062 1 226 if ($verbose > 1 and @grps)
1068 9 5 $tagInfo->{'Avoid'} ? :
5 14 $permanent ? :
1069 0 5 $shift ? :
5 14 unless $noCreate
1070 0 19 if $verbose > 2
1073 19582 54 if ($shift or not $options{'DelValue'})
1074 19058 524 unless $nvHash->{'Value'}
1075 19077 505 if (not $tagInfo->{'List'}) { }
0 505 elsif (defined $nvHash->{'AddBefore'} and @{$nvHash->{'Value'};} >= $nvHash->{'AddBefore'}) { }
1081 0 0 ref $val eq 'ARRAY' ? :
1084 44 461 ref $val eq 'ARRAY' ? :
1086 22 19560 if ($verbose > 1)
1092 0 0 $nvHash->{'IsCreating'} == 2 ? :
0 15 $nvHash->{'IsCreating'} == 2 ? :
0 15 $createOnly ? :
0 7 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} ? :
15 7 $nvHash->{'IsCreating'} ? :
1094 0 22 $addValue ? :
0 22 $shift ? :
1100 0 5421 if $verbose > 1
1103 0 0 if $verbose > 1
1110 0 3860 if $verbose > 1
1112 1315 22181 if $setTags
1113 10959 12537 if $pref->{$tagInfo}
1118 73 23443 if ($writeAlso)
1120 43 30 if ($tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq 'All' and $writeGroup) { }
1142 7 227 unless defined $val
1143 0 234 if $@
1144 234 0 unless ($Image::ExifTool::evalWarning)
1148 148 75 if $n and $pref->{$tagInfo}
1150 9 2 if ($Image::ExifTool::evalWarning and !$err || $verbose > 2)
1152 9 0 if ($str)
1153 9 0 unless $str =~ / for [-\w:]+$/
1155 9 0 unless $err
1156 0 9 if $verbose > 2
1163 85 4110 if (defined $err and not $prioritySet) { }
619 3491 elsif (not $numSet) { }
0 3491 elsif ($self->{'CHECK_WARN'}) { }
434 6114 elsif ($err and not $verbose) { }
1164 0 85 if $err and not wantarray
1166 420 199 $wantGroup ? :
1167 372 247 if ($wasProtected) { }
240 7 elsif (not $listOnly) { }
1169 360 12 unless ($options{'Replace'} and $options{'Replace'} == 2)
1173 0 240 if ($origTag =~ /[?*]/) { }
0 240 elsif ($noCreate) { }
0 240 elsif ($foundMatch) { }
240 0 elsif ($wantGroup and @matchingTags) { }
1174 0 0 if ($noCreate) { }
0 0 elsif ($foundMatch) { }
1193 600 19 if ($err)
1194 0 600 if $verbose > 2
1195 0 600 unless wantarray
1199 0 0 if $verbose > 2
1203 3780 415 if wantarray
1235 43 15 if @setTags
1244 0 58 defined $options->{'Struct'} ? :
1246 15 43 if $structOpt eq 2 and not @setTags
1299 0 58 $options->{'FastScan'} && $options->{'FastScan'} > 1 ? :
0 58 defined $options->{'StrictDate'} ? :
1302 1 61 if ref $tag
1303 7 54 if ($tag =~ /^-(.*)/)
1310 23 31 if (/(.+?)\s*(>|<)\s*(.+)/)
1311 10 13 if ($2 eq '>') { }
1315 5 8 if /\$/
1318 49 0 if /(^|:)([-\w?*]+)#?$/
1320 6 52 if (@exclude)
1324 42 16 if @reqTags
1326 0 58 if ($opts{'Type'})
1330 0 0 $opts{'Type'} eq 'PrintConv' ? :
1333 54 4 $printConv ? :
1337 0 58 if $info->{'Error'} and $info->{'Error'} eq "Error opening file"
1345 15 43 unless (@setTags)
1351 4 2648 if $tag =~ /^(Error|Warning)\b/
1353 0 2648 if ($opts{'SrcType'} and $opts{'SrcType'} ne $srcType)
1359 989 1659 unless $n
1369 1 61 if (ref $t eq "HASH")
1382 23 38 if ($tag =~ /(.+?)\s*(>|<)\s*(.+)/)
1385 10 13 if ($2 eq '>') { }
1388 0 10 if $tag =~ s/\s*([-+])$// or $dstTag =~ s/^([-+])\s*//
1391 0 13 if $dstTag =~ s/\s*([-+])$//
1393 5 8 if ($tag =~ /\$/) { }
1399 0 8 if $tag =~ s/^([-+])\s*//
1403 0 23 unless ($opts->{'EXPR'} or &ValidTagName($tag))
1407 0 23 unless &ValidTagName($dstTag)
1409 0 23 if ($opt)
1413 15 8 if $dstTag =~ /(.*):(.+)/
1415 0 23 if $dstTag =~ s/#$//
1417 3 20 if $dstTag eq "all"
1419 56 5 unless ($opts->{'EXPR'})
1421 31 25 if ($tag =~ /(.*):(.+)/)
1425 0 32 unless length $_ and /^(\d+)?(.*)/
1427 0 32 if $g =~ s/^ID-//i
1428 23 9 unless $g eq "*" or $g eq "all"
1432 0 56 if ($tag =~ s/#$//)
1434 0 0 unless $dstTag
1437 14 42 if $tag eq "all"
1439 2 54 if ($tag =~ /[?*]/ and $tag ne "*")
1446 23 38 if ($dstTag) { }
7 31 elsif ($isExclude) { }
1448 0 23 if $isExclude
1456 1 6 unless @setList
1459 1 30 $opts->{'WILD'} ? :
1466 55 7 if $set->[2]
1472 13 6289 if ($tag =~ /^(Error|Warning)( |$)/)
1481 6263 2618 unless ($set->[1] eq $lcTag or $set->[1] eq "*")
1483 6249 14 unless $set->[3]{'WILD'} and $lcTag =~ /^$set->[1]$/
1486 1468 1164 if (@{$set->[0];})
1488 1365 103 unless (@grp)
1494 1510 0 if (not defined $f) { }
0 0 elsif ($f == 7) { }
1495 1014 496 unless $grp{$g}
1497 0 0 unless &IsSameID(scalar $srcExifTool->GetTagID($tag), $g)
1499 0 0 unless defined $grp[$f] and $g eq $grp[$f]
1503 174 1444 unless $set->[2]
1513 5 57 if ($opts->{'EXPR'})
1515 0 5 if ($srcExifTool->{'VALUE'}{'Error'})
1520 0 0 unless defined $val
1523 5 0 unless $dstTag =~ /[?*]/ and $dstTag ne "*"
1524 0 5 if $dstGrp
1526 5 0 if $rtnVals[0]
1531 0 1444 if ($opts->{'SrcType'} and $opts->{'SrcType'} ne $srcType) { }
1537 1366 78 if ($dstGrp) { }
1542 284 1084 unless /^(\d*)(all|\*)$/i
1543 0 1084 length $1 ? :
1551 7 1437 if ($srcExifTool->{'TAG_INFO'}{$tag}{'MakerNotes'})
1555 1417 27 if ($dstTag eq "*")
1559 1411 33 if ($set->[1] eq '*' or $set->[3]{'WILD'}) { }
1562 26 118 if $srcExifTool->{'TAG_INFO'}{$tag}{'Protected'} and $srcExifTool->{'TAG_INFO'}{$tag}{'Binary'}
1566 1385 0 $structOpt eq '2' ? :
1569 33 0 unless $dstTag =~ /[?*]/
1579 0 1418 if ($wrn and not $noWarn)
1584 660 758 if $rtn
1605 3942 2681 if (ref $tag eq 'HASH' and $tag->{'IsNVH'} or not defined $tag) { }
1609 2575 106 if ($self->{'NEW_VALUE'})
1611 49 2526 if (ref $tag) { }
1458 1068 elsif (defined($tagInfo = $Image::ExifTool::Extra{$tag}) and $tagInfo->{'Writable'}) { }
1620 5 1063 if $tag =~ s/(.*)://
1624 1068 4 unless my $nvh = $self->GetNewValueHash($tagInfo)
1627 0 2 if $_ eq $nvh->{'WriteGroup'}
1629 0 2 if ($grps[0] eq $nvh->{'WriteGroup'}) { }
1631 0 0 if $_ eq $grps[1]
1634 2 0 if $_ eq $grps[0]
1637 0 0 if /^ID-(.*)/i and &IsSameID($tagInfo->{'TagID'}, $1)
1639 0 0 unless $nvh = $nvh->{'Next'}
1643 2 2 if defined $nvHash->{'IsCreating'}
1648 1794 887 if $newValueHashPt
1650 4366 2257 unless ($nvHash and $nvHash->{'Value'})
1651 1738 2628 if wantarray
1657 58 2199 if ($nvHash->{'TagInfo'}{'RawConvInv'} or $nvHash->{'Shift'})
1664 26 32 if $nvHash->{'Shift'} and $table
1669 26 32 if ($checkProc) { }
1671 0 26 if ($err or not defined $val)
1672 0 0 unless $err
1677 26 0 unless $conv
1679 0 32 unless $conv
1682 2 30 if (ref $conv eq 'CODE') { }
1687 0 30 if $@
1689 0 32 if ($Image::ExifTool::evalWarning)
1691 0 0 if ($Image::ExifTool::evalWarning ne "\n")
1701 1099 1158 if wantarray
1716 214 18 if ($newVal)
1722 15 18986 if $tagInfo->{'WriteNothing'}
1724 1 18985 if $tagInfo->{'WritePseudo'}
1728 0 232 unless wantarray
1747 113 0 unless $nvHash->{'Save'}
1774 1 0 if ($newValues)
1780 24 549 if ($nvHash->{'Save'}) { }
1784 0 549 if ($lastHash) { }
1 548 elsif ($nvHash->{'Next'}) { }
1797 1 0 if ($savedValues)
1798 0 1 unless $newValues
1800 1 88 if ($newValues->{$key}) { }
1827 0 0 unless defined $tag
1829 0 0 unless defined $val
1831 0 0 unless $isOverwriting
1834 0 0 if $tag eq "FileCreateDate" and $^O ne "MSWin32"
1835 0 0 if ($isOverwriting < 0)
1837 0 0 unless (defined $originalTime)
1839 0 0 $tag eq 'FileCreateDate' ? :
1840 0 0 unless defined $originalTime
1843 0 0 unless $isUnixTime
1844 0 0 unless $self->IsOverwriting($nvHash, $originalTime)
1848 0 0 if ($tag eq 'FileCreateDate') { }
1849 0 0 unless eval { do { require Win32::API } }
1850 0 0 unless eval { do { require Win32API::File } }
1855 0 0 unless $self->SetFileTime($file, $aTime, $mTime, $cTime, 1)
1877 1 0 unless $opt
1879 1 0 unless (defined $newName)
1880 0 1 if ($opt) { }
1881 0 0 if ($opt eq 'HardLink' or $opt eq 'Link') { }
0 0 elsif ($opt eq 'SymLink') { }
0 0 elsif ($opt eq 'Test') { }
1888 0 0 unless defined $newName
1891 1 0 if defined $filename and $self->IsOverwriting($nvHash, $file)
1893 0 1 if defined $dir and $self->IsOverwriting($nvHash, $file)
1894 0 1 unless $doName or $doDir
1895 1 0 if ($doName) { }
1897 0 1 if $doDir
1904 0 1 if ($^O eq 'MSWin32') { }
1905 0 0 if ($newName =~ /[\0-\x1f<>"|*]/)
1909 0 0 if ($newName =~ /:/ and not $newName =~ /^[A-Z]:[^:]*$/i)
1913 0 0 if ($newName =~ /\?/ and not $newName =~ m[^[\\/]{2}\?[\\/][^?]*$])
1917 0 0 if ($newName =~ m[(^|[\\/])(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(\.[^.]*)?$]i)
1921 0 0 if ($newName =~ /([. ])$/)
1922 0 0 if $self->Warn("New file name not recommended for Windows (ends with '$1')", 2)
1924 0 0 if (length $newName > 259 and not $newName =~ /\?/)
1925 0 0 if $self->Warn("New file name not recommended for Windows (exceeds 260 chars)", 2)
1931 0 1 unless length $newName
1933 0 0 if ($self->Exists($newName) and !defined($usedFlag) || $usedFlag)
1934 0 0 if ($file ne $newName or $opt =~ /Link$/) { }
1936 0 0 if ($opt =~ /Link$/ or not $self->IsSameFile($file, $newName))
1945 0 1 if ($opt eq "Test")
1952 0 1 if (($result = $self->CreateDirectory($newName)) != 0)
1953 0 0 if ($result < 0)
1959 0 1 if ($opt eq 'HardLink' or $opt eq 'Link') { }
0 1 elsif ($opt eq 'SymLink') { }
1960 0 0 unless (link $file, $newName)
1968 0 0 if $^O eq "MSWin32"
1973 0 0 if (not $file =~ m[^/] and $newName =~ m[/])
1974 0 0 unless (eval { do { require Cwd } })
1979 0 0 unless (defined $file)
1984 0 0 unless (eval { do { symlink $file, $newName } })
1993 0 1 unless ($self->Rename($file, $newName))
1996 0 0 unless ($self->Open(\*EXIFTOOL_SFN_IN, $file))
2000 0 0 unless ($self->Open(\*EXIFTOOL_SFN_OUT, $newName, ">"))
2009 0 0 unless print EXIFTOOL_SFN_OUT $buff
2011 0 0 unless close EXIFTOOL_SFN_OUT
2013 0 0 if ($err)
2022 0 0 unless $self->Unlink($file)
2041 0 219 if (defined $perm)
2042 0 0 if (eval { do { chmod $perm & 4095, $file } }) { }
2052 0 219 if (defined $uid or defined $gid)
2053 0 0 unless defined $uid
2054 0 0 unless defined $gid
2055 0 0 if (eval { do { chown $uid, $gid, $file } }) { }
2056 0 0 if $uid >= 0
2057 0 0 if $gid >= 0
2061 0 0 unless $result
2068 1314 0 unless $nvHash
2069 0 0 if ($^O eq 'darwin') { }
0 0 elsif ($tag ne 'FileCreateDate') { }
2070 0 0 if ref $file
2073 0 0 if $res == 1 or not $result
2082 0 219 if ($zhash)
2084 0 0 if ($^O ne 'MSWin32') { }
0 0 elsif (ref $file) { }
0 0 elsif (defined $self->GetNewValue('ZoneIdentifier', \$zhash)) { }
0 0 elsif (not eval { do { require Win32API::File } }) { }
2095 0 0 if ($self->EncodeFileName($zfile)) { }
2101 0 0 if ($wattr == Win32API::File::INVALID_FILE_ATTRIBUTES()) { }
0 0 elsif ($wattr & Win32API::File::FILE_ATTRIBUTE_READONLY()) { }
2106 0 0 if ($wide) { }
2107 0 0 if eval { do { Win32API::File::DeleteFileW($zfile) } }
2109 0 0 if eval { do { Win32API::File::DeleteFile($zfile) } }
2111 0 0 if ($res > 0) { }
2118 0 0 if $res == 1 or not $result
2151 0 0 if ($setModDate and $self->IsOverwriting($nvHash) < 0 and defined $infile and ref $infile ne "SCALAR")
2157 0 0 if ($setCreateDate and $self->IsOverwriting($nvHash2) < 0 and defined $infile and ref $infile ne "SCALAR")
2160 0 0 unless defined $cTime
2167 4 228 if (not defined $outfile and defined $infile)
2171 0 4 if defined $hardLink and not length $hardLink
2172 0 4 if defined $symLink and not length $symLink
2173 0 4 if defined $testName and not length $testName
2176 0 4 if (defined $newDir and length $newDir) { }
2177 0 0 unless $newDir =~ m[/$]
2181 1 3 if ($numNew == $numPseudo) { }
0 6 elsif (defined $newFileName and length $newFileName) { }
2183 1 0 if (defined $newFileName || defined $newDir and not ref $infile)
2185 1 0 if ($result > 0) { }
0 0 elsif ($result < 0) { }
2192 1 0 if (not ref $infile or UNIVERSAL::isa($infile, "GLOB"))
2193 0 1 if $setModDate
2194 0 1 if $setCreateDate
2195 0 1 if $self->SetSystemTags($infile) > 0
2197 0 1 if (defined $hardLink or defined $symLink or defined $testName)
2198 0 0 if $hardLink and $self->SetFileName($infile, $hardLink, "HardLink")
2199 0 0 if $symLink and $self->SetFileName($infile, $symLink, "SymLink")
2200 0 0 if $testName and $self->SetFileName($infile, $testName, "Test")
2206 0 0 if (ref $infile) { }
0 0 elsif ($self->IsOverwriting($nvHash, $infile)) { }
2215 0 3 if (defined $newDir)
2216 0 0 unless defined $outfile or ref $infile
2217 0 0 if (defined $outfile)
2219 0 0 unless ref $infile
2226 5 226 if (ref $infile) { }
203 23 elsif (defined $infile and $infile ne '') { }
0 23 elsif (not defined $outfile) { }
2228 1 4 if (UNIVERSAL::isa($inRef, 'GLOB')) { }
0 4 elsif (UNIVERSAL::isa($inRef, 'File::RandomAccess')) { }
0 4 elsif ($] >= 5.006 and eval { do { require Encode; &Encode::is_utf8($$inRef) } } || $@) { }
2235 0 0 $] < 5.01 ? :
0 0 $@ ? :
2236 0 0 if (defined $outfile) { }
2244 2 201 unless defined $outfile
2245 203 0 if ($self->Open(\*EXIFTOOL_FILE2, $infile)) { }
2262 22 1 unless $outType or ref $outfile
2263 23 0 if (&CanCreate($outType)) { }
0 0 elsif ($outType) { }
2264 23 0 if ($self->{'OPTIONS'}{'WriteMode'} =~ /g/i) { }
2281 29 202 unless (@fileTypeList)
2282 23 6 if ($fileType) { }
2292 13 218 if (ref $outfile) { }
1 217 elsif (not defined $outfile) { }
0 217 elsif ($self->Exists($outfile)) { }
217 0 elsif ($self->Open(\*EXIFTOOL_OUTFILE, $outfile, '>')) { }
2294 0 13 if (UNIVERSAL::isa($outRef, 'GLOB')) { }
2299 13 0 unless defined $$outRef
2305 0 1 if ($raf)
2320 0 0 $tmpfile ? :
2328 231 0 unless $raf
2330 1 230 if ($numNew == $numPseudo) { }
0 230 elsif (not ref $infile and $infile eq '-' || $infile =~ /\|$/) { }
2335 0 1 unless &Write($outRef, $buff)
2351 23 207 unless $raf->Read($hdr, 1024)
2352 0 230 unless $raf->Seek($inPos, 0)
2357 35 230 if ($Image::ExifTool::magicNumber{$type} and length $hdr and not $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s)
2358 35 0 if @fileTypeList
2366 106 124 if ($type eq 'JPEG' or $type eq 'EXV') { }
13 111 elsif ($type eq 'TIFF') { }
109 2 elsif (exists $writableType{$type}) { }
0 2 elsif ($type eq 'ORF' or $type eq 'RAW') { }
2 0 elsif ($type eq 'EXIF') { }
2370 0 13 if (grep /^$tiffType$/, @{$Image::ExifTool::noWriteFile{'TIFF'};}) { }
2374 0 13 if ($tiffType eq "FFF")
2383 82 27 if (ref $writableType{$type} eq 'ARRAY') { }
2400 2 0 if (defined $buff) { }
2401 2 0 &Write($outRef, $buff) ? :
2409 230 0 if $rtnVal
2410 0 0 unless @fileTypeList
2412 0 0 unless $raf->Seek($inPos, 0)
2413 0 0 if (UNIVERSAL::isa($outRef, 'GLOB')) { }
2420 0 230 unless ($rtnVal)
2422 0 0 if ($seekErr) { }
0 0 elsif ($fileType and defined $rtnVal) { }
0 0 elsif ($fileType) { }
2425 0 0 if ($self->{'VALUE'}{'Error'}) { }
0 0 elsif ($fileType eq 'RAW') { }
2430 0 0 if ($wrongType) { }
2435 0 0 unless $Image::ExifTool::magicNumber{$type}
2436 0 0 unless $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s
2446 0 0 if $infile and &GetFileType($infile)
2451 0 0 if $err
2458 231 0 if ($rtnVal > 0)
2459 0 23 if ($outType and $type and $outType ne $type)
2461 0 0 unless (grep /^$type$/, @types)
2466 0 231 if ($rtnVal > 0 and not &Tell($outRef) and not $self->{'VALUE'}{'Error'})
2468 0 0 if (defined $hdr and length $hdr) { }
2469 0 0 unless defined $type
2475 0 231 if $self->{'VALUE'}{'Error'}
2479 1 230 if (defined $outBuff)
2480 0 1 if ($rtnVal <= 0 or not $self->{'CHANGED'}) { }
1 0 elsif (UNIVERSAL::isa($inRef, 'GLOB')) { }
2491 0 1 unless 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 } }
2498 203 28 if ($closeIn)
2500 0 203 unless close $inRef or not defined $outBuff
2501 203 0 if ($rtnVal > 0)
2503 0 203 if ($^O eq "darwin" and -s "$infile/..namedfork/rsrc")
2504 0 0 if ($self->{'DEL_GROUP'}{'RSRC'}) { }
2511 0 0 if ($self->Open(\*SRC, "$infile/..namedfork/rsrc")) { }
2512 0 0 if ($self->Open(\*DST, "$outfile/..namedfork/rsrc", '>')) { }
2516 0 0 unless print DST $buf
2518 0 0 unless close DST or $err
2527 0 0 if $err and $self->Error("Error $err Mac OS resource fork", 2)
2531 0 203 if $eraseIn
2535 217 14 if ($closeOut)
2537 0 217 unless close $outRef
2539 0 217 if ($rtnVal <= 0) { }
2 215 elsif ($tmpfile) { }
2544 0 2 unless ($self->Rename($tmpfile, $infile))
2546 0 0 if (not $self->Unlink($infile)) { }
0 0 elsif (not $self->Rename($tmpfile, $infile)) { }
2556 2 0 if $rtnVal > 0
2560 218 0 if ($rtnVal > 0 and $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB')))
2561 217 1 $closeOut ? :
2563 0 218 if $self->SetSystemTags($target) > 0
2564 194 24 if ($closeIn)
2565 0 194 if $setModDate and $self->SetFileModifyDate($target, $originalTime, undef, 1) > 0
2567 0 194 if $setCreateDate and $self->SetFileModifyDate($target, $createTime, "FileCreateDate", 1) > 0
2569 0 194 if defined $hardLink and $self->SetFileName($target, $hardLink, "HardLink")
2570 0 194 if defined $symLink and $self->SetFileName($target, $symLink, "SymLink")
2571 0 194 if defined $testName
2575 0 231 if ($rtnVal < 0) { }
231 0 elsif ($rtnVal > 0) { }
2576 0 0 unless $self->{'VALUE'}{'Error'}
2579 5 226 unless $self->{'CHANGED'}
2597 0 0 if $group
2607 0 0 if ($table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP")
2616 0 0 unless $tag
2618 0 0 if $tagInfo->{'SubDirectory'} and not $tagInfo->{'Writable'}
2619 0 0 if $tagInfo->{'Hidden'}
2620 0 0 if (@groups)
2623 0 0 unless grep /^$group$/i, @tg
2642 0 0 if $group
2652 0 0 if ($table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP")
2657 0 0 if (@parts > 3)
2669 0 0 unless $tag
2672 0 0 unless $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2673 0 0 if $tagInfo->{'Hidden'}
2674 0 0 if (@groups)
2677 0 0 unless grep /^$group$/i, @tg
2696 0 0 if ref $family
2698 0 0 if $family == 3
2699 0 0 if $family == 4
2700 0 0 if $family == 5
2701 0 0 if $family == 6
2712 0 0 if $grps = $table->{'GROUPS'} and $grp = $grps->{$family}
2715 0 0 if ($family == 7) { }
2718 0 0 if (not defined $id) { }
0 0 elsif ($id =~ /^\d+$/) { }
2721 0 0 if $self and $self->{'OPTIONS'}{'HexTagIDs'}
2729 0 0 unless $grps = $tagInfo->{'Groups'} and $grp = $grps->{$family}
2766 0 1 unless my $table = &GetTagTable($tableName)
2772 0 1 if $Image::ExifTool::specialTags{$tagID}
2799 0 5381 if ref $$valPt eq "SCALAR"
2802 0 5381 if ($] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@)
2805 0 0 $] < 5.01 ? :
0 0 $@ ? :
2808 92 5289 if ($self->{'OPTIONS'}{'Escape'})
2810 0 92 if ($self->{'OPTIONS'}{'Escape'} eq 'XML') { }
92 0 elsif ($self->{'OPTIONS'}{'Escape'} eq 'HTML') { }
2832 70 27811 unless $convType
2835 27881 44447 if (not defined $type) { }
21569 22878 elsif ($type eq 'PrintConv') { }
2837 569 27312 if ($tagInfo->{'List'})
2839 74 0 if (defined $listSplit and not $tagInfo->{'Struct'} and $wantGroup || !defined($wantGroup))
2842 59 0 if $listSplit eq 1 and $tagInfo->{'AutoSplit'}
2844 41 0 @splitVal ? :
33 41 @splitVal > 1 ? :
2852 13 0 if ($tagInfo->{'RawJoin'} and $tagInfo->{'List'} and not ref $val)
2854 13 0 if @splitVal > 1
2858 275 22603 if ($tagInfo->{'WriteCheck'})
2861 0 275 if $@
2863 22844 34 unless ($err2)
2865 21992 784 if ($table and $table->{'CHECK_PROC'} and not $tagInfo->{'RawConvInv'})
2867 46 21946 if (ref $val eq 'ARRAY') { }
2871 0 136 if $err2
2878 3308 19570 if (defined $err2)
2879 3300 8 if ($err2) { }
2892 27062 22388 unless defined $conv or defined $convInv
2895 12 22376 if (ref $val eq 'ARRAY') { }
153 22223 elsif (ref $conv eq 'ARRAY' or ref $convInv eq 'ARRAY') { }
2903 153 0 if (ref $conv eq "ARRAY")
2907 29 124 if (ref $convInv eq "ARRAY")
2914 13662 8778 if ($convInv) { }
8775 3 elsif ($conv) { }
2918 133 13529 if (ref $convInv eq 'CODE') { }
2923 198 13331 if $@
2925 223 13439 if ($Image::ExifTool::evalWarning) { }
124 13315 elsif (not defined $val) { }
2927 9 214 if ($Image::ExifTool::evalWarning eq "\n") { }
2928 9 0 unless defined $err
2941 8610 165 if (ref $conv eq 'HASH' and !exists($$tagInfo{"${type}Inv"}) || $convInvList) { }
147 18 elsif (not $tagInfo->{'WriteAlso'}) { }
2944 0 0 if ($self->{'CUR_LANG'} and $type eq "PrintConv" and ref($lc = $self->{'CUR_LANG'}{$tag}) eq "HASH" and $lc = $lc->{'PrintConv'})
2951 0 0 unless defined $lc->{$val}
2954 0 0 if ($conv->{'BITMASK'})
2957 0 0 unless defined $lc->{$val}
2964 100 8510 if ($conv->{'BITMASK'}) { }
2968 2 98 if ($err2) { }
67 31 elsif (defined $val2) { }
2971 2 0 unless (defined $val)
2986 4507 4101 if (not defined $val) { }
0 4101 elsif ($Image::ExifTool::evalWarning) { }
2987 2768 1739 $multi ? :
0 4507 $Image::ExifTool::evalWarning ? :
3001 17312 125 unless @valList
3003 73 52 if (++$index >= @valList)
3005 12 61 $tagInfo->{'List'} ? :
3008 16 36 if $convList
3009 11 41 if $convInvList
3044 0 6 if ($docGrp) { }
3045 0 0 $docGrp =~ /(\d+)$/ ? :
3053 0 9 if ($var eq "\$" or $var eq "/")
3054 0 0 if $bra
3055 0 0 if ($var eq '/') { }
0 0 elsif ($line =~ /^self\b/ and not $rtnStr =~ /\$$/) { }
3070 0 9 if $line =~ s/^#//
3072 1 8 if ($bra and $line =~ s/^\@(#)?//)
3074 0 1 if $1
3078 3 4 if ($bra and not $line =~ s/^\s*\}// and $line =~ s/^\s*;\s*(.*?)\s*\}//s)
3085 3 4 unless $level and $line =~ s/^(.*?)\s*\}//s
3090 0 3 unless length $expr
3094 0 9 unless @tags
3101 1 8 if $asList
3104 0 9 if ($cache and not $lcTag =~ /(^|:)all$/) { }
3107 0 0 if $tag =~ s/^(.*)://
3111 0 0 unless ($cacheTag)
3116 0 0 if defined $group
3118 0 0 $ex->{$_} ? :
3119 0 0 if (defined $cacheTag->[$doc])
3120 0 0 unless $cacheTag->[$doc] =~ / \((\d+)\)$/
3123 0 0 if / \((\d+)\)$/ and $1 < $cur
3128 0 0 $lcTag =~ /\b(main|doc(\d+)):/ ? :
3129 0 0 if ($cacheTag->[$doc])
3135 0 9 if ($docGrp and not $lcTag =~ /\b(main|doc\d+):/)
3139 0 9 if ($lcTag eq 'all') { }
0 9 elsif (defined $self->{'OPTIONS'}{'UserParam'}{$lcTag}) { }
3 6 elsif ($tag =~ /(.*):(.+)/) { }
0 6 elsif ($tag eq 'self') { }
3146 0 3 if (lc $tag eq 'all') { }
3149 0 0 $match ? :
3155 0 3 if (defined $val and $tg =~ / \((\d+)\)$/)
3158 0 0 if not $tag =~ / \((\d+)\)$/ or $1 > $tagNum
3162 2 1 unless $tag =~ / /
3170 3 3 unless (defined $val)
3173 3 0 if (defined $tg)
3180 1 8 if $asList
3181 1 8 if (ref $val eq 'ARRAY') { }
0 8 elsif (ref $val eq 'SCALAR') { }
0 8 elsif (ref $val eq 'HASH') { }
0 8 elsif (not defined $val) { }
3184 1 0 unless @tags
3186 0 0 if ($self->{'OPTIONS'}{'Binary'} or $$val =~ /^Binary data/) { }
3195 0 0 if $asList
3197 8 0 unless @tags
3198 0 0 if defined $val
3201 1 8 if (@val) { }
3202 0 1 if defined $val
3205 8 0 if defined $val
3208 3 6 if (defined $expr and defined $val)
3212 1 2 if ($asList) { }
3216 0 3 if $@
3220 1 0 @val ? :
3225 0 2 if $@
3226 0 2 ref $_ eq 'ARRAY' ? :
3228 0 3 if ($Image::ExifTool::evalWarning)
3229 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i) ? :
3231 0 0 if ($opt)
3232 0 0 if ($opt eq 'Error') { }
0 0 elsif ($opt ne 'Silent') { }
3242 0 9 unless (defined $val or ref $opt)
3244 0 0 unless (defined $val)
3245 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i) ? :
3246 0 0 $didExpr ? :
3249 0 0 if $opt and $opt eq 'Silent' || &$opt($self, $msg, 2)
3253 0 9 if (ref $opt eq 'HASH') { }
3254 0 0 if $type
3255 0 0 if (defined $expr)
3278 0 0 if ($advFmtSelf and defined($shift = $advFmtSelf->{'OPTIONS'}{'GlobalTimeShift'}))
3283 0 0 unless defined $_
3284 0 0 if $shift
3294 0 0 $advFmtSelf ? :
3296 0 0 $_[0] && $new eq $_ ? :
3308 0 0 unless (@tagInfo)
3309 0 0 if &TagExists($tag)
3314 0 0 $tagInfo->{'Writable'} ? :
0 0 if defined $tagInfo->{'Writable'}
3315 0 0 if $tagInfo->{'Table'}{'WRITABLE'}
3318 0 0 if ($writeProc)
3321 0 0 if $tagInfo->{'Writable'}
3334 0 0 unless lc $file eq lc $file2
3341 0 0 if ($self->Open(\*TMP1, $tmp1, ">"))
3343 0 0 if $self->Exists($tmp2)
3347 0 0 if ($interrupted and $SIG{'INT'})
3378 0 1 if ($dir and not $self->IsDirectory($dir))
3383 0 0 if (length $dir and not $self->IsDirectory($dir))
3386 0 0 if ($self->EncodeFileName($d2)) { }
3388 0 0 unless (eval { do { require Win32::API } })
3392 0 0 unless ($k32CreateDir)
3393 0 0 if defined $k32CreateDir
3395 0 0 unless ($k32CreateDir)
3401 0 0 unless $k32CreateDir->Call($d2, 0)
3403 0 0 unless mkdir $d2, 511
3422 2 0 if (defined $mode and not defined $self->GetNewValue("FilePermissions"))
3427 2 0 if (defined $uid and defined $gid and not defined $newUid && defined $newGid)
3428 0 2 if defined $newGid
3429 0 2 if defined $newUid
3443 0 1 unless defined $dir
3444 0 1 if ($newName =~ m[/$]) { }
1 0 elsif (not $newName =~ m[/]) { }
3459 0 0 unless exists $info->{$tag}
3463 0 0 unless exists $info->{$key}
3474 61 8549 unless defined $val
3476 40 8509 if ($val =~ /^Unknown\s*\((.*)\)$/i) { }
3478 0 40 if ($val =~ /^0x([\da-fA-F]+)$/)
3497 15286 6444 unless $matches
3499 3117 3327 if ($matches > 1 and not $pattern =~ /\$$/)
3502 499 8852 if defined $conv->{$_} and $conv->{$_} =~ /$pattern/
3504 2987 130 if $matches > 1
3507 7368 3412 if not $conv->{$_} =~ /$pattern/ or $ignorePrintConv{$_}
3513 5097 3412 unless ($found)
3515 792 4305 if ($conv->{'OTHER'}) { }
3522 2987 2110 if $matches > 1
3525 8502 47 if wantarray
3541 41 6102 unless $nvHash
3543 5985 117 unless $nvHash->{'DelValue'}
3546 13 104 unless @{$nvHash->{'DelValue'};} or defined $shift
3548 58 46 unless defined $val
3552 3 43 if ($conv)
3555 0 3 if (ref $conv eq 'CODE') { }
3562 0 3 if $@
3564 0 3 unless defined $val
3567 6 40 if $nvHash->{'CreateOnly'}
3569 13 27 if (defined $shift)
3571 6 7 unless ($shiftType and $shiftType eq "Time")
3572 0 6 unless (&IsFloat($val))
3575 0 0 if (defined $conv)
3578 0 0 if (ref $conv eq 'CODE') { }
0 0 elsif (not ref $conv) { }
3583 0 0 if $@
3585 0 0 if ($Image::ExifTool::evalWarning)
3590 0 0 unless (defined $val and &IsFloat($val))
3599 0 13 if ($err)
3605 0 13 unless defined $checkVal
3607 0 13 if $val eq $nvHash->{'Value'}[0]
3613 10 22 if $val eq $delVal
3634 5309 26722 unless $writeGroup =~ /^(MakerNotes|XMP|Composite|QuickTime)$/
3649 1 67097 unless $tagInfo
3653 41542 25555 if $opts
3654 20996 46101 unless defined $writeGroup
3656 46101 20996 if ($writeGroup)
3660 36 1972 if $nvHash->{'WriteGroup'} =~ /^(QuickTime|All)$/
3662 12 1960 if $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
3668 2399 574 if (defined $nvHash and $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'})
3673 0 2399 if ($protect and not $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))) { }
2390 9 elsif ($opts{'delete'}) { }
3686 58 9 unless ref $copy{$key} eq "ARRAY"
3694 0 0 if $protect and $nvHash->{'Value'}
3697 22932 23308 if (not defined $nvHash and $opts{'create'})
3705 32 22900 if ($self->{'NEW_VALUE'}{$tagInfo}) { }
3720 0 0 if $loadedAllTables
3726 0 0 unless $table =~ /:/
3739 0 0 if ($writeProc)
3748 0 0 unless my $subdir = $tagInfo->{'SubDirectory'}
3749 0 0 unless my $tableName = $subdir->{'TagTable'}
3751 0 0 if $Image::ExifTool::allTables{$tableName} or $pushedTables{$tableName}
3767 2660 0 if ($nvHash eq $firstHash) { }
3769 0 2660 if ($nvHash->{'Next'}) { }
3781 80 2580 if ($nvHash->{'Save'})
3796 719 7 unless $self->{'NEW_VALUE'}
3800 2 5 if $removeGroups{$group}
3803 0 7 if $self->{'OPTIONS'}{'Verbose'} > 1
3816 1581 404 if $wgrp eq $grp0
3817 270 1715 if (grep /^($grp0|$wgrp)$/i, @groups)
3818 0 270 if $out
3822 1979 6 unless $nvHash = $nextHash
3836 1160 22 if ($nv)
3840 56308 32306 if $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3861 21095 287 if $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3877 30 425 unless $parent
3887 149285 33934 unless $tagInfo->{'SubDirectory'}
3892 3689 30245 unless ($dirName)
3898 250 33684 if ($editDirs->{$dirName} and $editDirs->{$dirName} eq $parent)
3900 137 113 if $addDirs->{$dirName}
3904 75 380 if wantarray
3920 182 116 unless ($langInfo)
3950 183 125 unless ($fileDirs)
3951 109 74 unless ref $fileType eq "HASH"
3965 3522 9384 if ($preferredGroup)
3967 825 2697 if ($isCreating) { }
3972 141 1 if $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup} and !$altGroup || $altGroup ne $g0
3978 93 0 if $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'} and $self->{'OPTIONS'}{'WriteMode'} =~ /g/
3985 387 12519 if ($dirName =~ /^MIE\d*(-[a-z]+)?\d*$/i)
3990 0 12906 if ($dirName eq '*' and $nvHash->{'Value'}) { }
46 12860 elsif ($dirName eq 'QuickTime') { }
3992 0 0 if ($val)
3994 0 0 unless $val =~ /\b($_|All)\b/i
3996 0 0 if $_ eq "FixBase"
4007 6346 46116 if (ref $parent)
4012 5281 47181 if $isCreating and $isCreating != 2
4017 35 164 if (%{$self->{'DEL_GROUP'};})
4020 2 725 if /^-/
4023 63 662 if $translateWriteGroup{$dirName}
4025 24 701 if $dirName =~ /^XMP-/
4029 13 1022 if (ref $parent)
4039 86 32 if ($editDirs->{'IFD0'} and $fileDirs->{'JFIF'})
4044 2 197 if ($self->{'OPTIONS'}{'Verbose'})
4049 0 2 unless $self->{'OPTIONS'}{'Verbose'} > 1
4066 0 1705 unless $tagTablePtr
4067 4 1701 if $self->{'OPTIONS'}{'Verbose'}
4072 574 1131 unless $dirName
4073 205 1500 if (%{$self->{'DEL_GROUP'};})
4077 95 110 unless $permanentDir{$grp0}
4079 38 167 if ($delFlag)
4080 0 38 if ($grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType and !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}) { }
10 28 elsif (not $blockExifTypes{$self->{'FILE_TYPE'}}) { }
4091 0 10 if ($self->{'FILE_TYPE'} eq 'PSD') { }
0 10 elsif ($self->{'FILE_TYPE'} =~ /^(EPS|PS)$/) { }
0 10 elsif ($grp1 eq 'IFD0') { }
0 10 elsif ($grp0 eq 'EXIF' and $delGroup->{$grp0}) { }
4093 0 0 if $grp0 eq "Photoshop"
4098 0 0 if $delGroup->{'IFD0'}
4101 0 0 unless $delGroup->{$grp1} or $grp1 eq "ExifIFD"
4104 38 0 if ($grp1)
4105 28 10 if ($dataPt or $dirInfo->{'RAF'})
4107 1 27 if $out
4108 3 25 if $grp1 eq "ICC_Profile"
4110 5 23 if $dirName =~ /IFD/
4116 1 37 if not $right and $grp1 eq "EXIF"
4117 21 17 if ($delFlag == 2 and $right) { }
4121 21 0 if (not $parent or $parent eq $right or $parent eq $right2) { }
4124 9 12 unless $self->{'Recreated'}
4125 0 21 if ($self->{'Recreated'}{$path})
4126 0 0 $parent ? :
4145 16 1 unless $dirInfo->{'NoDelete'}
4151 231 1458 unless $writeProc or $writeProc = $tagTablePtr->{'WRITE_PROC'}
4158 198 1260 if $blockName eq "IFD0"
4164 1 12 if ($blockName eq "EXIF")
4165 0 1 unless ($blockExifTypes{$self->{'FILE_TYPE'}})
4173 0 1 unless $writeProc eq \&Image::ExifTool::WriteTIFF
4175 5 8 $dataPt ? :
0 13 unless $self->IsOverwriting($nvHash, $dataPt ? $$dataPt : "")
4178 0 13 unless (defined $newVal and length $newVal)
4179 0 0 unless $dataPt or $dirInfo->{'RAF'}
4181 0 0 if ($blockName eq "MakerNotes" and $rawType{$self->{'FileType'}})
4189 0 13 if $out
4194 677 547 if (defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and not $dirInfo->{'NoRefTest'})
4199 0 677 if ($self->{'PROCESSED'}{$addr} and $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ') { }
4200 0 0 if (defined $dirInfo->{'DirLen'} and not $dirInfo->{'DirLen'} and $dirName ne $self->{'PROCESSED'}{$addr}) { }
0 0 elsif ($self->Error("$dirName pointer references previous $self->{'PROCESSED'}{$addr} directory", 2)) { }
4207 0 0 if $out
4220 4 1441 if ($out)
4222 0 4 $dirName eq 'MakerNotes' && $dirInfo->{'TagInfo'} ? :
4223 3 1 if (not defined $oldDir or $oldDir ne $name)
4224 1 2 $isRewriting ? :
4240 56 1389 unless defined $newData and length $newData || $isRewriting
4244 0 4 if $out and defined $newData and not length $newData
4254 12 0 &GetByteOrder() eq 'MM' ? :
4262 75 108 &GetByteOrder() eq 'MM' ? :
4272 0 0 $val > 0 ? :
4279 1 0 &GetByteOrder() eq 'MM' ? :
4282 0 1 $exp & 32768 ? :
4312 0 169 if defined $opts{'Len'}
4314 70 99 unless defined $addr
4315 4 165 unless defined $len
4316 5 164 if ($maxLen and $len > $maxLen)
4322 0 169 if ($len > $datLen)
4331 159 69 if $wid > $len - $i
4339 5 164 if $more
4366 578 39 if (defined $tagID) { }
4367 563 15 if $tagID =~ /^\d+$/
4372 617 0 if ($tagInfo and $tagInfo->{'Name'}) { }
4376 0 0 if $parms{'Table'}
4377 0 0 if ($prefix or $hexID) { }
4378 0 0 unless $prefix
4379 0 0 $hexID ? :
4386 0 617 unless defined $size or not $dataPt
4392 365 252 if (defined $index)
4394 172 193 if length $index < 2
4398 39 578 if ($tagInfo and $tagInfo->{'SubDirectory'}) { }
4403 578 0 if (defined $val) { }
0 0 elsif ($dataPt) { }
4404 0 578 if ref $val eq "ARRAY"
4414 0 40 if ($verbose > 1 and $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/])
4418 389 1 if ($hexID) { }
4424 0 390 if defined $parms{'Extra'}
4426 390 0 if ($format or defined $size)
4428 390 0 if (defined $size)
4430 352 38 if $format
4432 352 38 if ($format)
4434 352 0 if $parms{'Count'}
4438 165 0 if $verbose > 2 and $parms{'DataPt'}
4443 165 18 if ($verbose > 2 and $parms{'DataPt'} and not $tagInfo && $tagInfo->{'ReadFromRAF'})
4447 165 0 $verbose == 3 ? :
165 0 if $verbose < 5
4467 0 1 unless defined $pos
4471 0 1 unless ($size)
4472 0 0 unless $raf->Seek(0, 2)
4474 0 0 unless $size
4476 0 1 unless $raf->Seek($pos, 0)
4477 0 1 if ($htmlDump)
4478 0 0 unless my $num = $raf->Read($buff, $size)
4480 0 0 if $trailer eq "Unknown"
4486 1 0 unless $verbose > 2
4489 0 0 if ($verbose < 5)
4490 0 0 $verbose < 4 ? :
4491 0 0 if $num > $limit
4493 0 0 unless $raf->Read($buff, $num) == $num
4495 0 0 if ($size > 2 * $num) { }
0 0 elsif ($size > $num) { }
4505 0 0 if (defined $buf2)
4531 0 0 if $prePos and $preLen and $prePos + $preLen > $pos
4532 0 0 if $lastOne
4536 0 0 if (defined $prePos) { }
4548 0 0 if ($pos < $prePos)
4556 0 0 unless $preLen
4558 0 0 if ($self->{'OPTIONS'}{'Verbose'})
4587 1044 14 unless $_[0]{'OPTIONS'}{'Verbose'} > 1
4590 9 5 unless $xtra
4605 0 0 if $ch < 128
4608 0 0 if $ch < 32
4611 0 0 if $ch < 16
4629 0 0 if ($_[0] =~ /([\x80-\xff])/g) { }
4637 0 0 if $len
4638 0 0 unless defined $ch
4643 0 0 if ($ch < 194 or $ch >= 248)
4650 0 0 if ($ch < 224) { }
0 0 elsif ($ch < 240) { }
4659 0 0 unless ($_[0] =~ /\G([\x80-\xbf]{$n})/g)
4682 15 43 unless defined $guidCount and ++$guidCount < 256
4697 0 0 unless $res
4700 0 0 if (not $cmap) { }
0 0 elsif (length $cmap == 3 * 2 ** $bits) { }
0 0 elsif (length $cmap != 6 * 2 ** $bits) { }
4708 0 0 $cmap ? :
4709 0 0 $cols == 1 ? :
0 0 $cols == 1 ? :
0 0 $cmap ? :
0 0 $cmap ? :
4750 0 58 unless ref $self
4751 0 58 if ($self->{'Now'}) { }
4762 58 0 if $tzFlag or not defined $tzFlag
4782 6 431 if (not $fmt and $val =~ s/([-+])(\d{1,2}):?(\d{2})\s*(DST)?$//i) { }
0 431 elsif (not $fmt and $val =~ s/Z$//i) { }
4789 0 431 if lc $val eq "now"
4792 0 437 if ($fmt)
4793 0 0 unless (defined $strptimeLib)
4794 0 0 if (eval { do { require POSIX::strptime } }) { }
0 0 elsif (eval { do { require Time::Piece } }) { }
4806 0 0 $fmt =~ s/%f$// && $val =~ s/(\.\d+)\s*$// ? :
4809 0 0 if (not $lib) { }
0 0 elsif ($lib eq 'POSIX::strptime') { }
4810 0 0 unless $self->{'OPTIONS'}{'StrictDate'}
4817 0 0 if ($^O eq "MSWin32" and $fmt =~ /%s/ and $val =~ /-\d/)
4826 0 0 if (defined $a[5] and length $a[5]) { }
4832 0 0 if defined $a[4] and length $a[4]
4835 0 0 if (not defined $a[$i] && length $a[$i]) { }
0 0 elsif (length $a[$i] < 2) { }
4836 0 0 if ($i < 2 or $dateOnly) { }
4850 430 7 if ($val =~ /(\d{4})/g)
4854 404 26 if (@a >= 3) { }
26 0 elsif ($dateOnly) { }
4858 5 399 @a > 5 && $val =~ /(\.\d+)\s*$/ ? :
4860 34 370 if ($tzFlag) { }
92 278 elsif (defined $tzFlag) { }
4861 34 0 unless ($tz)
4862 34 0 if (eval { do { require Time::Local } }) { }
4874 403 1 if (defined $ss and $ss < 60) { }
1 0 elsif ($dateOnly) { }
4882 0 404 if ($a[0] < 1 or $a[0] > 12)
4886 0 404 if ($a[1] < 1 or $a[1] > 31)
4890 0 404 if $a[2] > 24
4891 0 404 if $a[3] > 59
4897 7 430 unless $rtnVal
4917 0 43 unless (&SetByteOrder($byteOrder))
4918 0 0 if $self->Options("Verbose")
4932 1544 3417 if @_ < 3
4951 0 733 if $val eq "inf"
4952 0 733 if $val eq "undef"
4953 16 717 if $val =~ m[^([-+]?\d+)/(\d+)$]
4955 38 679 if $val == 0
4956 10 669 $val < 0 ? :
4962 0 1544 if ($n > $maxInt or $d > $maxInt)
4963 0 0 if defined $num
4964 0 0 if $val < 1
4969 679 865 if abs $err < "1e-08"
4972 0 865 unless $frac -= $int
4985 10 178 if $val < 0
4991 10 57 if $val < 0
5000 27 1 &GetByteOrder() eq 'MM' ? :
5001 27 1 if $_[1]
5007 0 0 if $val < 0
5013 0 422 if $_[1]
5019 0 42 if $_[1]
5025 0 0 if $_[1]
5031 0 0 if $_[1]
5040 0 0 $val < 0 ? :
5048 2 10 $val < 0 ? :
5052 0 60 if $_[1]
5058 0 62 if $_[1]
5118 1221 352 if ($proc) { }
352 0 elsif ($format eq 'string' or $format eq 'undef') { }
5120 650 571 if ($count) { }
5121 63 587 if $count < 0
5128 0 1690 unless defined $val
5130 1209 481 if ($format =~ /^int/) { }
7 474 elsif (not &IsFloat($val)) { }
5131 0 1209 unless (&IsInt($val) or &IsHex($val))
5132 0 0 unless &IsFloat($val)
5134 0 0 $val < 0 ? :
5138 0 7 unless $format =~ /^rational/ and $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5144 187 165 if $format eq "string"
5145 59 293 if ($count and $count > 0) { }
5147 29 30 if ($diff)
5150 22 7 if ($diff < 0) { }
5151 22 0 if ($format eq 'string') { }
5152 0 22 unless $count
5164 2 350 if $dataPt
5170 215 1006 if $dataPt
5182 98 2 unless $bits
5183 98 2 unless $num
5186 82 18 if ($val ne "(none)")
5190 42 0 if ($lookup) { }
5193 33 9 unless (defined $bit)
5194 0 33 if ($val =~ /\[(\d+)\]/) { }
5198 31 2 unless @vals > 1 and wantarray
5205 0 9 unless (&IsInt($bit) and $bit < $num)
5206 0 0 unless wantarray
5207 0 0 &IsInt($bit) ? :
5223 292 29 if (UNIVERSAL::isa($outfile, 'GLOB')) { }
5237 2282 1423 if (UNIVERSAL::isa($outfile, 'GLOB')) { }
1423 0 elsif (ref $outfile eq 'SCALAR') { }
5253 0 12 if ($self->{'DEL_GROUP'}{'Trailer'})
5261 8 4 if ($trailInfo->{'Fixup'})
5262 8 0 if ($pos > 0) { }
5283 2 127 if ref $types[0]
5284 127 2 unless $types[0]
5286 122 7 unless @types
5290 241 10 unless $self->{'NEW_VALUE'}{$Image::ExifTool::Extra{$type}}
5291 1 9 if $$self{"Did$type"}
5292 1 8 unless my $val = $self->GetNewValue($type)
5294 3 5 if ($type eq "CanonDR4")
5295 1 2 if $self->{'DidCanonVRD'}
5300 0 7 $trailPt ? :
5302 0 7 if ($trailPt) { }
5322 32 78 unless $type
5327 3 107 if $type eq "ICC"
5335 0 110 if ($size > $maxLen)
5339 0 0 if $type eq "EXIF" and $n + $maxLen <= $len - 4 and substr($$dataPt, $n + $maxLen, 4) =~ /^(MM\0\x2a|II\x2a\0)/
5345 3 107 if ($type eq "ICC")
5351 0 110 unless &Write($outfile, $segHdr, $header, $buff)
5352 110 0 if $n >= $len
5369 0 33 if ($size > $maxXMPLen)
5374 0 33 unless &Write($outfile, $app1hdr, $Image::ExifTool::xmpAPP1hdr, $$dataPt)
5376 0 33 if (defined $guid)
5383 0 0 if $len > $maxLen
5386 0 0 unless &Write($outfile, $app1hdr, $Image::ExifTool::xmpExtAPP1hdr, $guid, pack("N2", $size, $off), substr($$extPt, $off, $len))
5411 2 108 unless ($raf->Read($s, 2) == 2 and $s eq "\377\330")
5412 1 1 if (defined $s and length $s) { }
5413 0 1 unless $s eq "\377\1" and $raf->Read($s, 5) == 5 and $s eq "Exiv2"
5415 0 1 unless $self->{'FILE_TYPE'} eq "EXV"
5419 0 2 unless &Write($outfile, "\377\1")
5422 110 0 unless $verbose > 3
5427 0 110 unless &Write($outfile, $s)
5444 1 791 unless $raf->ReadLine($s)
5447 0 791 unless $raf->Read($ch, 1)
5449 791 0 unless $marker == 255
5453 109 682 if ($marker == 218 or $marker == 217)
5460 108 574 if (($marker & 240) == 192 and $marker == 192 || $marker & 3) { }
574 0 elsif ($marker != 0 and $marker != 1 and $marker < 208 || $marker > 215) { }
5461 0 108 unless $raf->Seek(7, 1)
5466 0 574 unless $raf->Read($s, 2) == 2
5468 0 574 unless defined $len and $len >= 2
5470 347 227 if (($marker & 240) == 224)
5471 86 261 $len < 64 ? :
5472 0 347 unless $raf->Read($s, $n) == $n
5476 45 302 if ($marker == 224) { }
84 218 elsif ($marker == 225) { }
55 163 elsif ($marker == 226) { }
9 154 elsif ($marker == 227) { }
9 145 elsif ($marker == 229) { }
19 126 elsif ($marker == 236) { }
29 97 elsif ($marker == 237) { }
16 81 elsif ($marker == 238) { }
5477 18 27 if $s =~ /^JFIF\0/
5478 9 36 if $s =~ /^JFXX\0\x10/
5479 9 36 if $s =~ /^(II|MM).{4}HEAPJPGM/s
5481 60 24 if ($s =~ /^(.{0,4})$Image::ExifTool::exifAPP1hdr(.{1,4})/is)
5485 0 0 if (@dirOrder and $dirOrder[-1] =~ /^(IFD0|ExtendedEXIF)$/ and not length $junk and not $bytes =~ /^(MM\0\x2a|II\x2a\0)/)
5491 22 62 if $s =~ /^$Image::ExifTool::xmpAPP1hdr/
5492 2 82 if $s =~ /^$Image::ExifTool::xmpExtAPP1hdr/
5494 14 41 if $s =~ /^ICC_PROFILE\0/
5495 32 23 if $s =~ /^FPXR\0/
5496 9 46 if $s =~ /^MPF\0/
5498 9 0 if $s =~ /^(Meta|META|Exif)\0\0/
5500 9 0 if $s =~ /^RMETA\0/
5502 10 9 if $s =~ /^Ducky/
5504 20 9 if $s =~ /^$Image::ExifTool::psAPP13hdr/
5506 16 0 if $s =~ /^Adobe/
5510 209 138 if defined $dirName and not $delGroup->{$dirName}
5512 0 574 unless $raf->Seek($len, 1)
5514 443 239 unless $dirName
5518 2 108 unless ($marker and $marker == 218)
5519 0 2 unless $isEXV
5520 0 2 if $marker and $marker != 217
5522 0 110 unless $raf->Seek($pos, 0)
5533 1 791 unless $raf->ReadLine($segJunk)
5537 108 684 if length $segJunk
5540 791 1 if ($raf->Read($ch, 1)) { }
1 0 elsif ($creatingEXV) { }
5542 791 0 unless $marker == 255
5557 108 684 if (($marker & 240) == 192 and $marker == 192 || $marker & 3) { }
682 2 elsif ($marker != 0 and $marker != 1 and $marker != 217 and $marker < 208 || $marker > 215) { }
5558 0 108 unless $raf->Read($segData, 7) == 7
5565 0 682 unless $raf->Read($s, 2) == 2
5567 0 682 unless defined $len and $len >= 2
5570 0 682 unless $raf->Read($segData, $len) == $len
5581 1 791 if (exists $addDirs->{'JFIF'} and not defined $doneDir{'JFIF'})
5583 1 0 if (defined $doneDir{'Adobe'}) { }
5588 0 0 if ($verbose)
5607 0 0 if defined $delJFIF
5608 0 0 if (defined $newData and length $newData)
5610 0 0 unless &Write($outfile, $app0hdr, "JFIF\0", $newData)
5615 60 687 if $markerName eq "APP0" or $dirCount{'IFD0'} or $dirCount{'ExtendedEXIF'}
5617 31 656 if (exists $addDirs->{'IFD0'} and not defined $doneDir{'IFD0'})
5619 1 30 if $verbose
5629 29 2 if (defined $buff and length $buff)
5630 0 29 if (length($buff) + length($Image::ExifTool::exifAPP1hdr) > $maxSegmentLen)
5631 0 0 if ($self->Options('NoMultiExif')) { }
5638 0 29 if ($self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile)
5643 0 0 if $self->{'PREVIEW_INFO'}
5644 0 0 if $self->{'LeicaTrailer'}
5648 0 29 if (not $n) { }
0 58 elsif ($n > 1 and $oldOutfile) { }
5658 182 505 if $dirCount{'Photoshop'}
5659 19 486 if (exists $addDirs->{'Photoshop'} and not defined $doneDir{'Photoshop'})
5661 0 19 if $verbose
5669 19 0 if (defined $buff and length $buff)
5670 0 19 unless &WriteMultiSegment($outfile, 237, $Image::ExifTool::psAPP13hdr, \$buff)
5675 15 490 if $dirCount{'XMP'}
5676 26 464 if (exists $addDirs->{'XMP'} and not defined $doneDir{'XMP'})
5678 0 26 if $verbose
5688 26 0 if (defined $buff and length $buff)
5690 0 26 unless &WriteMultiXMP($self, $outfile, \$buff, $dirInfo{'ExtendedXMP'}, $dirInfo{'ExtendedGUID'})
5694 5 485 if $dirCount{'ICC_Profile'}
5695 3 482 if (exists $addDirs->{'ICC_Profile'} and not defined $doneDir{'ICC_Profile'})
5697 0 3 if $delGroup->{'ICC_Profile'} and $delGroup->{'ICC_Profile'} != 2
5698 0 3 if $verbose
5706 3 0 if (defined $buff and length $buff)
5707 0 3 unless &WriteMultiSegment($outfile, 226, "ICC_PROFILE\0", \$buff, "ICC")
5712 1 484 if $dirCount{'Ducky'}
5713 2 482 if (exists $addDirs->{'Ducky'} and not defined $doneDir{'Ducky'})
5715 0 2 if $verbose
5723 2 0 if (defined $buff and length $buff)
5725 2 0 if ($size <= $maxSegmentLen) { }
5728 0 2 unless &Write($outfile, $app12hdr, "Ducky", $buff)
5735 25 459 if $dirCount{'Adobe'}
5736 0 459 if (exists $addDirs->{'Adobe'} and not defined $doneDir{'Adobe'})
5739 0 0 if ($buff)
5740 0 0 if $verbose
5742 0 0 if ($size <= $maxSegmentLen) { }
5745 0 0 unless &Write($outfile, $app14hdr, $buff)
5753 20 439 if $dirCount{'COM'}
5754 5 434 if (exists $addDirs->{'COM'} and not defined $doneDir{'COM'})
5756 0 5 if $delGroup->{'File'} and $delGroup->{'File'} != 2
5758 5 0 if (defined $newComment)
5759 0 5 if ($verbose)
5763 0 5 unless &WriteMultiSegment($outfile, 254, "", \$newComment)
5776 108 684 if (($marker & 240) == 192 and $marker == 192 || $marker & 3) { }
108 576 elsif ($marker == 218) { }
2 574 elsif ($marker == 217 and $isEXV) { }
0 682 elsif ($marker == 0 or $marker == 1 or $marker >= 208 and $marker <= 215) { }
5777 1 107 if $verbose
5778 0 108 unless &Write($outfile, $hdr, $segData)
5782 1 107 if $verbose
5785 0 108 unless &Write($outfile, $hdr, $s, $segData)
5788 104 4 unless $delGroup->{'Trailer'}
5790 92 4 unless ($oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'} or $nvTrail)
5793 0 92 unless &Write($outfile, $buff)
5801 0 16 unless my $n = $raf->Read($buff, 65536)
5802 16 0 if ($endedWithFF and $buff =~ /^\xd9/gs or $buff =~ /\xff\xd9/gs)
5808 0 16 unless &Write($outfile, substr($buff, 0, $pos))
5812 0 0 unless ($n == 65536)
5816 0 0 unless &Write($outfile, $buff)
5817 0 0 substr($buff, 65535, 1) eq "\377" ? :
5822 0 16 if ($nvTrail)
5824 0 0 if ($nvTrail->{'Value'} and $nvTrail->{'Value'}[0]) { }
0 0 elsif ($raf->Seek(0, 2) and $raf->Tell != $endPos) { }
5826 0 0 unless &Write($outfile, $nvTrail->{'Value'}[0])
5835 11 5 if ($trailInfo)
5840 0 11 unless $self->ProcessTrailers($trailInfo)
5842 15 1 if (not $oldOutfile) { }
0 1 elsif ($self->{'LeicaTrailer'}) { }
5846 0 0 if ($trailInfo) { }
5849 0 0 unless $raf->Seek(0, 2)
5864 0 0 defined $dat ? :
5866 0 0 if defined $trailSize
5871 0 0 unless &Write($outfile, $writeBuffer)
5873 0 0 if (defined $dat)
5874 0 0 unless &Write($outfile, $dat)
5879 0 1 $self->{'Make'} =~ /^SONY/i ? :
5880 1 0 if (length $buff < $scanLen)
5882 0 1 if $raf->Read($buf2, $scanLen - length($buff))
5888 0 1 if ($buff =~ /(\xff\xd8\xff.|.\xd8\xff\xdb)(..)/gs)
5892 0 0 if ($self->{'Make'} =~ /^SONY/i and $junkLen > 32)
5895 0 0 if ($jpegHdr eq "\377\330\377\341")
5899 0 0 if (length $buff > $junkLen + $segLen + 6 and substr($buff, $junkLen + $segLen + 3, 3) eq "\330\377\333")
5917 0 1 if $previewInfo->{'Absolute'}
5918 1 0 if ($previewInfo->{'Relative'}) { }
0 0 elsif ($previewInfo->{'ChangeBase'}) { }
5924 0 0 if $makerOffset
5930 0 1 unless &Write($outfile, $writeBuffer)
5933 0 1 if ($previewInfo->{'Data'} ne "LOAD_PREVIEW")
5935 0 0 if $junkLen
5937 0 0 unless &Write($outfile, $previewInfo->{'Data'})
5944 16 0 unless ($delPreview)
5946 11 5 if ($trailInfo) { }
5951 0 5 unless $raf->Seek(0, 2)
5954 3 13 if ($extra > 0)
5955 2 1 if ($delGroup->{'Trailer'}) { }
5956 0 2 if $verbose
5960 0 1 if $verbose
5961 0 1 unless $raf->Seek($endPos, 0)
5962 0 1 unless &CopyBlock($raf, $outfile, $extra)
5967 11 5 if ($trailInfo)
5968 0 11 unless $self->WriteTrailerBuffer($trailInfo, $outfile)
5975 0 2 unless &Write($outfile, "\377\331")
5980 0 0 if $verbose and $marker
5982 0 0 unless &Write($outfile, $hdr)
5992 2 572 if ($verbose)
5994 0 2 if ($verbose > 2 and $markerName =~ /^APP/)
5999 55 519 if ($delGroup->{$dirName})
6000 0 55 if $verbose
6001 4 51 if $dirName eq "ICC_Profile"
6009 31 100 if ($marker == 224) { }
73 27 elsif ($marker == 225) { }
0 27 elsif ($marker == 226) { }
1 26 elsif ($marker == 227) { }
0 26 elsif ($marker == 229) { }
1 25 elsif ($marker == 236) { }
9 16 elsif ($marker == 237) { }
4 12 elsif ($marker == 238) { }
4 8 elsif ($marker == 254) { }
6010 11 20 if ($$segDataPt =~ /^JFIF\0/) { }
8 12 elsif ($$segDataPt =~ /^JFXX\0\x10/) { }
6 6 elsif ($$segDataPt =~ /^(II|MM).{4}HEAPJPGM/s) { }
6012 0 11 if $delGroup->{'JFIF'}
6013 0 11 unless $editDirs->{'JFIF'}
6025 11 0 if (defined $newData and length $newData)
6030 2 6 if $delGroup->{'JFIF'}
6033 0 6 if $delGroup->{'CIFF'}
6034 2 4 unless $editDirs->{'CIFF'}
6041 4 0 if (Image::ExifTool::CanonRaw::WriteCRW($self, \%dirInfo) > 0)
6042 4 0 if (length $newData) { }
6052 52 21 if ($$segDataPt =~ /^(.{0,4})$Image::ExifTool::exifAPP1hdr/is) { }
21 0 elsif ($$segDataPt =~ /^($Image::ExifTool::xmpAPP1hdr|$Image::ExifTool::xmpExtAPP1hdr)/) { }
0 0 elsif ($$segDataPt =~ /^http/ or $$segDataPt =~ /
6054 0 52 if (length $1) { }
0 52 elsif (not $$segDataPt =~ /^Exif\0/) { }
6061 1 51 unless $editDirs->{'IFD0'}
6063 0 51 if (defined $combinedSegData)
6070 0 51 if ($dirOrder[0] eq "ExtendedEXIF")
6072 0 0 unless (defined $combinedSegData)
6079 0 51 if $doneDir{'IFD0'}
6082 1 50 if ($delGroup->{'IFD0'} or $delGroup->{'EXIF'})
6099 50 0 if (defined $buff) { }
6103 0 0 unless $self->Options("IgnoreMinorErrors")
6106 4 46 unless length $$segDataPt
6107 0 46 if (length($$segDataPt) + length($Image::ExifTool::exifAPP1hdr) > $maxSegmentLen)
6108 0 0 if ($self->Options('NoMultiExif')) { }
6115 1 45 if ($self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile)
6120 1 0 if $self->{'PREVIEW_INFO'}
6121 0 1 if $self->{'LeicaTrailer'}
6125 0 46 if (not $n) { }
0 92 elsif ($n > 1 and $oldOutfile) { }
6137 0 21 if $delGroup->{'XMP'}
6139 7 14 unless $editDirs->{'XMP'}
6140 3 11 if ($doneDir{'XMP'} + $dirCount{'XMP'} > 1)
6143 2 1 if ($$segDataPt =~ /^$Image::ExifTool::xmpExtAPP1hdr/) { }
6145 0 2 if (length $$segDataPt < 75) { }
6150 0 2 if ($guid =~ /[^A-Za-z0-9]/) { }
6155 1 1 if ($extXMP) { }
6156 0 1 unless $size == $extXMP->{'Size'}
6166 1 0 unless $extendedXMP{'Main'}
6170 2 1 if $dirCount{'XMP'}
6176 1 0 if (/:HasExtendedXMP\s*(=\s*['"]|>)(\w{32})/)
6179 0 1 if ($goodGuid and $goodGuid ne $2)
6188 1 0 if $readGuid eq 1
6190 1 1 unless length $guid == 32
6191 0 1 if ($guid ne $readGuid and $readGuid ne 2)
6192 0 0 $guid eq $goodGuid ? :
6196 0 1 if ($guid ne $goodGuid)
6200 0 1 unless ref $extXMP eq "HASH"
6204 0 2 unless defined $extXMP->{$off}
6208 1 0 if ($off == $size) { }
6215 0 1 if $extendedXMP{'Error'}
6227 9 3 if (defined $newData) { }
6229 7 2 if (length $newData) { }
6232 0 7 unless &WriteMultiXMP($self, $outfile, \$newData, $dirInfo{'ExtendedXMP'}, $dirInfo{'ExtendedGUID'})
6239 0 3 if $verbose
6240 0 3 if ($doneDir{'XMP'} > 1)
6244 0 0 unless length $dat
6246 0 0 unless &Write($outfile, $hdr, $s, $Image::ExifTool::xmpAPP1hdr, $dat)
6249 0 0 unless length $guid == 32
6251 0 0 unless ref $extXMP eq "HASH"
6252 0 0 unless my $size = $extXMP->{'Size'}
6256 0 0 unless &Write($outfile, $hdr, $s, $Image::ExifTool::xmpExtAPP1hdr, $guid, pack("N2", $size, $off), $extXMP->{$off})
6265 2 3 unless length $$segDataPt
6270 0 0 if ($$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14) { }
0 0 elsif ($$segDataPt =~ /^FPXR\0/) { }
0 0 elsif ($$segDataPt =~ /^MPF\0/) { }
6272 0 0 if $delGroup->{'ICC_Profile'}
6276 0 0 if (defined $iccChunksTotal) { }
6278 0 0 if ($chunksTot != $iccChunksTotal and defined $iccChunkCount)
6288 0 0 unless $chunksTot
6290 0 0 if (defined $iccChunkCount) { }
0 0 elsif (defined $chunkNum) { }
6292 0 0 if (defined $iccChunk[$chunkNum]) { }
6299 0 0 unless ++$iccChunkCount >= $iccChunksTotal
6318 0 0 if (defined $newData)
6322 0 0 unless length $$segDataPt
6324 0 0 unless &WriteMultiSegment($outfile, $marker, "ICC_PROFILE\0", $segDataPt, "ICC")
6333 0 0 if $delGroup->{'FlashPix'}
6336 0 0 if $delGroup->{'MPF'}
6339 1 0 if ($$segDataPt =~ /^(Meta|META|Exif)\0\0/)
6341 0 1 if $delGroup->{'Meta'}
6342 0 1 if $doneDir{'Meta'}
6344 0 1 unless $editDirs->{'Meta'}
6357 1 0 if (defined $buff) { }
6361 0 0 unless $self->Options("IgnoreMinorErrors")
6364 0 1 unless length $$segDataPt > 6
6367 0 0 if ($$segDataPt =~ /^RMETA\0/)
6369 0 0 if $delGroup->{'RMETA'}
6372 1 0 if ($$segDataPt =~ /^Ducky/)
6374 0 1 if $delGroup->{'Ducky'}
6375 0 1 if $doneDir{'Ducky'}
6377 0 1 unless $editDirs->{'Ducky'}
6388 1 0 if (defined $newData)
6391 0 1 if length $newData
6394 1 0 unless length $$segDataPt
6397 8 1 if ($$segDataPt =~ /^$Image::ExifTool::psAPP13hdr/)
6400 0 8 if (defined $combinedSegData)
6406 0 8 if ($dirOrder[0] eq "Photoshop")
6408 0 0 unless defined $combinedSegData
6411 0 8 if ($doneDir{'Photoshop'})
6415 0 0 if $delGroup->{'Photoshop'}
6429 8 0 if (defined $newData)
6433 2 6 unless length $$segDataPt
6435 0 6 unless &WriteMultiSegment($outfile, $marker, $Image::ExifTool::psAPP13hdr, $segDataPt)
6441 4 0 if ($$segDataPt =~ /^Adobe/)
6444 0 4 if ($delGroup->{'Adobe'} or $editDirs->{'Adobe'})
6451 4 0 unless ($doneDir{'COM'})
6453 3 1 unless ($delGroup->{'File'} and $delGroup->{'File'} != 2)
6458 3 0 if ($self->IsOverwriting($nvHash, $val) or $delGroup->{'File'}) { }
6467 2 2 if (defined $newComment) { }
6470 0 2 unless &WriteMultiSegment($outfile, 254, "", \$newComment)
6472 0 2 if $verbose
6481 13 10 if ($del or $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239)
6482 1 12 unless $segType
6483 0 13 if $verbose
6488 441 4 if (defined $segDataPt and defined $$segDataPt)
6492 0 441 if ($size > $maxSegmentLen) { }
6493 0 0 unless $segType
6498 0 441 unless &Write($outfile, $hdr, $s, $$segDataPt)
6505 0 110 if defined $iccChunkCount
6506 2 108 if @$path > $pn
6508 0 110 if $oldOutfile
6509 110 0 if ($rtnVal)
6512 3 107 if $trailPt
6515 0 110 if $rtnVal and $err
6516 0 1 if ($creatingEXV and $rtnVal > 0 and not $self->{'CHANGED'})
6530 25 66 if (length $$valPtr and not $$valPtr =~ /^\xff\xd8/ and not $self->Options("IgnoreMinorErrors"))
6549 2421 16559 if ($format eq "string" or $format eq "undef")
6550 2118 303 unless $count and $count > 0
6552 199 104 if ($format eq 'string') { }
6553 10 189 if $len >= $count
6555 0 104 if $len > $count
6557 232 61 if ($len < $count)
6562 1919 14640 if ($count and $count != 1) { }
6564 126 1793 if $count < 0
6569 910 15630 if (@vals != $count)
6570 3 907 @vals > $count ? :
6575 17211 1364 if ($format =~ /^int/) { }
1343 21 elsif ($format =~ /^rational/ or $format eq 'float' or $format eq 'double') { }
6577 3007 14204 unless (&IsInt($val))
6578 7 3000 if (&IsHex($val)) { }
6582 1733 1267 unless &IsFloat($val) and $count == 1
6583 20 1247 $val < 0 ? :
6586 0 15478 unless my $rng = $intRange{$format}
6587 301 15177 if $val < $rng->[0]
6589 4 15173 if $val > $rng->[1] and $val != 4277010157
6592 263 1080 unless (&IsFloat($val))
6594 227 36 if ($format =~ /^rational/)
6595 1 226 if $val eq "inf" or $val eq "undef"
6596 70 156 if ($val =~ m[^([-+]?\d+)/(\d+)$])
6597 70 0 unless $1 < 0 and $format =~ /u$/
6603 0 1080 if ($format =~ /^rational\d+u$/ and $val < 0)
6619 4405 7358 unless ($format)
6621 3099 1306 if ($table and $table->{'FORMAT'}) { }
6629 1639 10124 if ($format =~ /(.*)\[(.*)\]/)
6633 0 1639 if $count =~ /\$size/
6647 0 3 if ($self->EncodeFileName($old)) { }
0 3 elsif ($self->EncodeFileName($new)) { }
6656 0 3 if ($winUni) { }
6663 3 0 if $result or $^O ne "MSWin32"
6667 0 0 if $try > 50
6683 0 0 if ($self->EncodeFileName($file)) { }
6684 0 0 if eval { do { Win32API::File::DeleteFileW($file) } }
6686 0 0 if unlink $file
6706 0 0 unless (ref $file)
6708 0 0 unless ($self->Open(\*FH, $file, "+<"))
6710 0 0 if (defined $atime or defined $mtime)
6712 0 0 unless defined $atime
6713 0 0 unless defined $mtime
6714 0 0 if defined $atime and defined $mtime
6716 0 0 unless $success
6723 0 0 if ($^O eq "MSWin32")
6724 0 0 if (not eval { do { require Win32::API } }) { }
0 0 elsif (not eval { do { require Win32API::File } }) { }
6731 0 0 unless ($win32Handle)
6739 0 0 unless defined $time
6746 0 0 unless ($k32SetFileTime)
6747 0 0 if defined $k32SetFileTime
6749 0 0 unless ($k32SetFileTime)
6755 0 0 unless ($k32SetFileTime->Call($win32Handle, $ctime, $atime, $mtime))
6763 0 0 if (defined $atime and defined $mtime)
6770 0 0 if $success or not defined $saveFile
6775 0 0 unless ($noWarn)
6776 0 0 if ($@ or $Image::ExifTool::evalWarning) { }
0 0 elsif (not $success) { }
6796 69 53 unless $size > 0
6797 0 53 $size > 65536 ? :
6798 0 53 unless $raf->Read($buff, $n) == $n
6799 0 53 unless &Write($outfile, $buff)
6817 13 0 if $num
6820 0 24 unless $raf->Seek($pos, 0)
6822 0 0 defined $result ? :
0 24 unless $result
6824 3 21 if $pad
6825 0 24 if $err
6827 0 13 if ($err)
6841 14333 450 unless $self
6844 0 450 unless my $dataPt = $dirInfo->{'DataPt'}
6847 0 450 unless ($increment)
6853 189 261 if ($tagTablePtr->{'DATAMEMBER'})
6862 0 450 unless my $newData = substr($$dataPt, $dirStart, $dirLen)
6871 22 205 if (ref $tagTablePtr->{$tagID} eq "ARRAY" or $tagInfo->{'Condition'})
6873 9 13 unless $writeInfo and $writeInfo eq $tagInfo
6883 87 131 if ($format) { }
6884 36 51 if ($format =~ /(.*)\[(.*)\]/) { }
1 50 elsif ($format eq 'string') { }
6891 0 36 if $@
6894 1 0 $dirLen > $entry ? :
6900 6 212 if @varInfo and $varInfo[0][0] == $tagID
6902 3 215 unless defined $val
6904 1 214 unless $self->IsOverwriting($nvHash, $val) > 0
6906 1 213 unless defined $newVal
6908 6 207 if $tagInfo->{'DataMember'}
6911 1 212 if $mask
6913 0 213 if ($tagInfo->{'DataTag'} and not $tagInfo->{'IsOffset'})
6914 0 0 unless $newVal == 4277010157
6916 0 0 if defined $data
6918 0 0 if ($format =~ /^int16/ and $newVal > 65535)
6923 213 0 if (defined $rtnVal)
6930 1 0 if ($tagTablePtr->{'IS_OFFSET'} and $dirInfo->{'Fixup'})
6936 0 1 unless $tagInfo = $self->GetTagInfo($tagTablePtr, $tagID)
6942 1 0 unless $entry <= $dirLen - 4
6947 0 0 unless $offset
6951 0 0 unless $self->{'FILE_TYPE'} eq "JPEG" and $tagInfo->{'DataTag'} and $tagInfo->{'DataTag'} eq "PreviewImage" and defined $tagInfo->{'OffsetPair'}
6959 0 0 unless $previewInfo
6962 0 0 unless $format eq "int32u"
6963 0 0 if $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 3
6966 0 0 unless (defined $previewInfo->{'Data'})
6967 0 0 if ($offset >= 0 and $offset + $size <= $dirInfo->{'DataLen'}) { }
6976 12 438 if ($tagTablePtr->{'IS_SUBDIR'})
6982 9 4 unless defined $tagInfo
6988 0 4 if $entry >= $dirLen
6990 0 4 unless ($tagInfo)
6992 0 0 if $more > 128
6995 0 0 unless $tagInfo
6997 0 4 unless $tagInfo->{'SubDirectory'}
7001 4 0 if defined $dat and length $dat
7014 0 109 unless $self
7017 109 0 if $self->ProcessTIFF($dirInfo, $tagTablePtr) > 0