Branch Coverage

blib/lib/Image/ExifTool/Writer.pl
Criterion Covered Total %
branch 1795 3174 56.5


line true false branch
318 40 5662 unless (defined $tag)
325 218 5444 if (ref $value)
326 78 140 if (ref $value eq 'ARRAY') { }
127 13 elsif (ref $value eq 'SCALAR') { }
329 51 27 if (@$value > 1) { }
334 2 151 if ref $_
336 21 132 if $e
340 1 50 if $noJoin
347 0 27 if ref $value eq "SCALAR"
355 5336 29 if defined $value and not ref $value and not $options{'Sanitized'}
358 567 5094 if $tag =~ /(.*):(.+)/
361 4 5657 if $tag =~ s/#$//
365 5127 534 if $convType eq "PrintConv"
369 2446 3215 if ($wantGroup)
371 0 2472 unless length $_ and /^(\d+)?(.*)/
375 2372 100 unless $lcg eq "*" or $lcg eq "all"
376 1 2471 if ($g =~ s/^ID-//i) { }
30 2441 elsif (defined $f) { }
377 0 1 if defined $f and $f ne 7
380 0 30 if $f > 2
381 9 21 if $f == 2
383 94 2347 if $family2groups{$lcg}
386 100 2346 unless @wantGroup
390 37 5624 if lc $tag eq "all"
398 34 13 if ($wantGroup) { }
399 34 0 unless $wantGroup =~ /^XM[LP]-\*$/i
401 4 30 if (@del and $remove)
403 2 2 if $excludeGroups{$del[0]}
409 0 10 if (ref $parent)
413 4 6 unless $dirName = $parent || shift @dirNames
419 7 27 if $wantGroup =~ /^(MIE\d+|XM[LP]-[-\w]*\w)$/i
424 47 0 if (@del) { }
0 0 elsif (grep /^$wantGroup$/i, @delGroup2) { }
429 23 781 if ($remove) { }
431 4 19 if ($grp =~ /^(XM[LP])(-.*)?$/)
433 1 3 if ($grp eq $x) { }
3 0 elsif ($$delGroup{"$x-*"} and not $$delGroup{"-$grp"}) { }
436 57 1 unless /^(-?)$x-/
437 1 0 unless $1
442 2 1 if ($delGroup->{$x})
451 15 8 if (exists $delGroup->{$grp}) { }
454 5 3 unless $didExcl
459 49 732 if ($delMore{$grp})
467 1 46 if ($verbose > 1 and @donegrps)
469 0 1 $remove ? :
478 0 47 if wantarray
479 0 47 if $err
488 27 5587 if ($writeMode ne "wcg")
489 25 2 unless $writeMode =~ /w/i
490 2 25 if (not $writeMode =~ /c/i) { }
8 17 elsif (not $writeMode =~ /g/i) { }
491 0 2 if $createOnly
500 19 2319 if defined $fg->[0] and $fg->[0] != 1
504 131 2188 if (/^IFD(\d+)$/i) { }
0 2188 elsif (/^SubIFD(\d+)$/i) { }
0 2188 elsif (/^Version(\d+)$/i) { }
318 1870 elsif ($exifDirs{$_}) { }
293 1577 elsif ($allFam0{$_}) { }
1 1576 elsif (/^Track(\d+)$/i) { }
2 1574 elsif (/^MIE(\d*-?)(\w+)$/i) { }
500 1080 elsif (not $ifdName and /^XMP\b/i) { }
512 318 0 unless $ifdName and $allFam0{$_}
523 500 0 if ($writeProc)
529 745 1574 if $grpName and $grpName ne $_
539 51 1365 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) { }
1365 0 elsif (not $options{'NoShortcut'}) { }
545 18 3 length $3 == 3 ? :
21 30 if $3
549 0 238 unless $tagInfo->{'Table'}
550 52 186 unless my $langInfoProc = $tagInfo->{'Table'}{'LANG_INFO'}
552 168 18 if $langInfo
554 49 2 if @matchingTags
560 1 1364 if ($match)
565 0 3 if $e
567 1 0 if $numSet
568 0 1 if wantarray
569 0 1 if $err
573 1366 0 unless ($listOnly)
574 49 1317 if (not &TagExists($tag)) { }
0 1317 elsif ($langCode) { }
507 810 elsif ($wantGroup) { }
575 49 0 if ($tag =~ /^[-\w*?]+$/) { }
576 29 20 $wantGroup ? :
578 2 47 if $origTag =~ /-/
579 0 49 if (not $pre and uc $origTag eq "TAG")
584 0 0 if $tag =~ /^\$/
593 0 1366 if $verbose > 2
596 1366 0 if wantarray
597 0 0 if $err
613 24136 45234 unless defined $highestPriority{$lcTag}
615 833 68537 defined $tagInfo->{'Preferred'} ? :
616 49375 19995 if ($wantGroup)
623 226 49187 if $translateWantGroup{$lcWant}
626 2085 47328 if $prfTag
627 49171 242 if (not defined $fam) { }
2 240 elsif ($fam == 7) { }
132 216 elsif ($fam != 1 and not $tagInfo->{'AllowGroup'}) { }
628 2166 47005 if ($lcWant eq lc $grp[0])
631 4 2162 if $wgAll and not $writeGroup
634 10444 36561 if $lcWant eq lc $grp[2]
636 1 1 if &IsSameID($tagInfo->{'TagID'}, $lcWant)
638 22 110 if $lcWant eq lc $grp[$fam]
639 5 10 if ($wgAll and not $fam and $allFam0{$lcWant})
640 3 2 unless $writeGroup
646 1597 35073 if ($grp[0] eq 'EXIF' or $grp[0] eq 'SonyIDC' or $wgAll) { }
1552 33521 elsif ($grp[0] eq 'QuickTime') { }
768 32753 elsif ($grp[0] eq 'MIE') { }
32752 1 elsif (not $tagInfo->{'AllowGroup'} && $lcWant =~ /^$tagInfo->{'AllowGroup'}$/i) { }
647 1119 478 unless ($ifdName and $lcWant eq lc $ifdName)
648 37 7 unless $wgAll and not $fam and $allFam0{$lcWant}
649 2 5 unless $writeGroup
652 2 47 if $wgAll and $allFam0{$lcWant} and $fam
654 0 476 if $lcWant eq "PreviewIFD"
657 16 1536 if ($grp[1] eq 'Track#') { }
658 15 1 unless $movGroup and $lcWant eq lc $movGroup
662 1508 28 unless $grp and $lcWant eq lc $grp
666 766 2 unless $mieGroup and $lcWant eq lc $mieGroup
669 0 0 if ($writeGroup =~ /^MIE\d+$/ and $tagInfo->{'Table'}{'WRITE_GROUP'})
675 32232 520 unless $lcWant eq lc $grp[1]
678 13130 505 unless $writeGroup
687 9 33621 if ($table->{'SRC_TABLE'})
689 0 9 unless $writeProc
693 119 33511 unless $writeProc and &$writeProc()
698 0 20892 unless $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
700 20071 3 if (not $writeGroup or $translateWriteGroup{$writeGroup} and !$tagInfo->{'WriteGroup'} || $tagInfo->{'WriteGroup'} ne 'All')
707 16404 3667 unless $writeGroup
709 19994 77 unless ($priority)
711 3502 16492 unless ($priority)
716 1129 18942 if $prfTag
720 31 33598 if $noFlat and defined $tagInfo->{'Flat'}
721 2237 31392 if ($prot)
723 1200 1037 if ($prot)
726 1 1199 if ($verbose > 1)
737 419 287 if $table->{'GROUPS'}{'0'} eq "QuickTime" and !defined($highestQT{$lcTag}) || $highestQT{$lcTag} < $priority
738 10286 22143 if ($priority > $highestPriority{$lcTag}) { }
13312 8831 elsif ($priority == $highestPriority{$lcTag}) { }
741 1230 9056 $tagInfo->{'Avoid'} ? :
745 324 12988 if $tagInfo->{'Avoid'}
747 108 32321 if ($tagInfo->{'WriteAlso'}) { }
754 5452 26977 if ($writeGroup eq "XMP")
756 0 5452 if $wg
764 108 4139 if @writeAlsoList
770 9 9486 if ($preferred{$lcTag} and $highestPriority{$lcTag} == 0 and %{$self->{'WRITE_PRIORITY'};})
776 1362 0 if ($avoid{$lcTag} and $preferred{$lcTag})
777 1226 136 if ($avoid{$lcTag} < scalar keys %{$preferred{$lcTag};}) { }
51 85 elsif ($highestPriority{$lcTag} < 1000) { }
780 4476799 5774 unless $lcTag eq lc $tagInfo->{'Name'}
781 1521 4253 if $tagInfo->{'Avoid'}
788 10656 212 unless $lcTag eq lc $tagInfo->{'Name'}
789 1 211 unless my $priority = $tagPriority{$tagInfo}
790 52 159 if $priority == $highestPriority{$lcTag}
791 0 159 if $priority < $nextHighest
793 159 0 unless defined $permanent
794 26 133 if $tagInfo->{'Avoid'} or $permanent
795 44 89 if $writeGroup{$tagInfo} eq "MakerNotes"
796 84 5 if ($nextHighest < $priority)
802 35 16 if (@nextBestTags)
821 29 32388 if $alsoWrote{$tagInfo}
823 221 32167 if defined $listOnly and ($listOnly xor $tagInfo->{'List'})
827 31636 531 unless defined $permanent
828 31635 532 unless defined $permanent
835 164 32003 if (defined $shift)
838 0 164 if ($tagInfo->{'List'}) { }
842 24 140 unless ($shift)
844 24 0 if $addValue
847 0 0 if $options{'DelValue'} and defined $shiftable and $shiftable eq "Time"
849 0 164 if ($shift and not defined $value && length $value)
858 0 0 if (defined $shiftable and not $shiftable and $shift || $shiftable eq '0' && $options{'DelValue'})
863 0 0 if $verbose
868 21460 10707 if (defined $val) { }
6674 4033 elsif ($permanent) { }
0 4033 elsif ($addValue or $options{'DelValue'}) { }
870 9 21451 if ($addValue and not $shift || $tagInfo->{'List'})
871 0 9 if ($addValue eq '2') { }
875 0 9 if $verbose > 2
879 164 21287 if ($shift) { }
35 21252 elsif (not length $val and $options{'DelValue'}) { }
2 42478 elsif (ref $val eq 'HASH' and not $tagInfo->{'Struct'}) { }
880 47 117 if ($tagInfo->{'Shift'} and $tagInfo->{'Shift'} eq 'Time') { }
113 4 elsif (&IsFloat($val)) { }
882 17 30 $shift > 0 ? :
886 0 47 if ($err2)
888 0 0 if $verbose > 2
895 0 4 if $verbose > 2
903 0 2 if $verbose > 2
907 4 6670 if $options{'IgnorePermanent'}
909 33 6637 if (defined $tagInfo->{'DelValue'}) { }
917 0 0 if $verbose > 2
920 6 4027 if ($tagInfo->{'DelCheck'})
923 0 6 if $@
924 6 0 if (defined $err2)
926 3 3 unless $err2
927 0 3 unless $err2 =~ /delete$/
929 0 3 if $verbose > 2
934 3 4024 if ($tagInfo->{'DelGroup'} and not $options{'DelValue'})
938 0 3 if ($delMore{$tag})
943 0 3 if $verbose
951 27887 4252 unless ($noConv)
956 8332 19555 if (defined $e)
958 17 8315 unless $e
962 2778 29344 if (not defined $val and defined $value)
965 2778 0 unless $options{'DelValue'}
968 210 29134 unless $self->{'NEW_VALUE'}
969 14183 15161 if ($options{'Replace'})
973 27 14156 if ($tagInfo->{'WriteAlso'})
975 6 21 if ($tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq 'All' and $writeGroup) { }
985 280 13903 if $options{'Replace'} == 2
988 19713 9351 if (defined $val) { }
5439 3912 elsif ($permanent) { }
0 3912 elsif ($addValue or $options{'DelValue'}) { }
993 0 19713 unless $nvHash
994 308 19405 if $tagInfo->{'List'} and not $options{'Replace'}
996 66 19647 if $editOnly
998 22 19691 if ($tagInfo->{'MakerNotes'})
1001 46 19667 if ($createOnly) { }
227 19440 elsif ($options{'DelValue'} or $addValue or $shift) { }
1007 225 2 unless $nvHash->{'DelValue'}
1008 160 67 if ($shift) { }
54 13 elsif ($options{'DelValue'}) { }
1013 8 11 unless $val eq "" or $tagInfo->{'List'}
1015 2 52 ref $val eq 'ARRAY' ? :
1016 0 54 if ($verbose > 1)
1017 0 0 $permanent ? :
1018 0 0 $tagInfo->{'List'} ? :
1019 0 0 ref $val eq 'ARRAY' ? :
1021 0 0 if (ref $_ eq "HASH")
1033 273 19440 defined $tagInfo->{'Preferred'} ? :
1035 657 19056 if ($tagInfo->{'Table'}{'GROUPS'}{'0'} eq "QuickTime")
1036 367 290 if $tagPriority{$tagInfo} < $highestQT{$lcTag}
1038 9130 10583 if ($pref->{$tagInfo} or $prf)
1039 5374 3756 if ($permanent or $shift) { }
3742 14 elsif ($tagInfo->{'List'} and not $options{'DelValue'} or not $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} or grep /^$/, @{$$nvHash{'DelValue'};}) { }
1048 19 3711 $editGroup ? :
12 3730 $editOnly ? :
1050 2497 1245 unless $createGroups
1055 3732 15981 if ($nvHash->{'IsCreating'}) { }
19 15962 elsif ($createOnly) { }
1056 227 3505 if (%{$self->{'DEL_GROUP'};})
1059 12235 354 if $self->{'DEL_GROUP'}{$grp} == 2
1064 1 226 if ($verbose > 1 and @grps)
1070 9 5 $tagInfo->{'Avoid'} ? :
5 14 $permanent ? :
1071 0 5 $shift ? :
5 14 unless $noCreate
1072 0 19 if $verbose > 2
1075 19640 54 if ($shift or not $options{'DelValue'})
1076 19097 543 unless $nvHash->{'Value'}
1077 19135 505 if (not $tagInfo->{'List'}) { }
0 505 elsif (defined $nvHash->{'AddBefore'} and @{$nvHash->{'Value'};} >= $nvHash->{'AddBefore'}) { }
1083 0 0 ref $val eq 'ARRAY' ? :
1086 44 461 ref $val eq 'ARRAY' ? :
1088 26 19614 if ($verbose > 1)
1094 0 0 $nvHash->{'IsCreating'} == 2 ? :
0 17 $nvHash->{'IsCreating'} == 2 ? :
0 17 $createOnly ? :
0 9 $nvHash->{'DelValue'} && @{$nvHash->{'DelValue'};} ? :
17 9 $nvHash->{'IsCreating'} ? :
1096 0 26 $addValue ? :
0 26 $shift ? :
1102 0 5439 if $verbose > 1
1105 0 0 if $verbose > 1
1112 0 3912 if $verbose > 1
1114 1355 22251 if $setTags
1115 11033 12573 if $pref->{$tagInfo}
1120 93 23533 if ($writeAlso)
1122 43 50 if ($tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq 'All' and $writeGroup) { }
1144 17 257 unless defined $val
1145 0 274 if $@
1146 274 0 unless ($Image::ExifTool::evalWarning)
1150 148 115 if $n and $pref->{$tagInfo}
1152 9 2 if ($Image::ExifTool::evalWarning and !$err || $verbose > 2)
1154 9 0 if ($str)
1155 9 0 unless $str =~ / for [-\w:]+$/
1157 9 0 unless $err
1158 0 9 if $verbose > 2
1165 85 4158 if (defined $err and not $prioritySet) { }
619 3539 elsif (not $numSet) { }
0 3539 elsif ($self->{'CHECK_WARN'}) { }
434 6210 elsif ($err and not $verbose) { }
1166 0 85 if $err and not wantarray
1168 420 199 $wantGroup ? :
1169 372 247 if ($wasProtected) { }
240 7 elsif (not $listOnly) { }
1171 360 12 unless ($options{'Replace'} and $options{'Replace'} == 2)
1175 0 240 if ($origTag =~ /[?*]/) { }
0 240 elsif ($noCreate) { }
0 240 elsif ($foundMatch) { }
240 0 elsif ($wantGroup and @matchingTags) { }
1176 0 0 if ($noCreate) { }
0 0 elsif ($foundMatch) { }
1195 600 19 if ($err)
1196 0 600 if $verbose > 2
1197 0 600 unless wantarray
1201 0 0 if $verbose > 2
1205 3824 419 if wantarray
1237 43 15 if @setTags
1246 0 58 defined $options->{'Struct'} ? :
1248 15 43 if $structOpt eq 2 and not @setTags
1302 0 58 $options->{'FastScan'} && $options->{'FastScan'} > 1 ? :
0 58 defined $options->{'StrictDate'} ? :
1305 1 61 if ref $tag
1306 7 54 if ($tag =~ /^-(.*)/)
1313 23 31 if (/(.+?)\s*(>|<)\s*(.+)/)
1314 10 13 if ($2 eq '>') { }
1318 5 8 if /\$/
1321 49 0 if /(^|:)([-\w?*]+)#?$/
1323 6 52 if (@exclude)
1327 42 16 if @reqTags
1329 0 58 if ($opts{'Type'})
1333 0 0 $opts{'Type'} eq 'PrintConv' ? :
1336 54 4 $printConv ? :
1340 0 58 if $info->{'Error'} and $info->{'Error'} eq "Error opening file"
1348 15 43 unless (@setTags)
1354 4 2645 if $tag =~ /^(Error|Warning)\b/
1356 0 2645 if ($opts{'SrcType'} and $opts{'SrcType'} ne $srcType)
1362 986 1659 unless $n
1372 1 61 if (ref $t eq "HASH")
1385 23 38 if ($tag =~ /(.+?)\s*(>|<)\s*(.+)/)
1388 10 13 if ($2 eq '>') { }
1391 0 10 if $tag =~ s/\s*([-+])$// or $dstTag =~ s/^([-+])\s*//
1394 0 13 if $dstTag =~ s/\s*([-+])$//
1396 5 8 if ($tag =~ /\$/) { }
1402 0 8 if $tag =~ s/^([-+])\s*//
1406 0 23 unless ($opts->{'EXPR'} or &ValidTagName($tag))
1410 0 23 unless &ValidTagName($dstTag)
1412 0 23 if ($opt)
1416 15 8 if $dstTag =~ /(.*):(.+)/
1418 0 23 if $dstTag =~ s/#$//
1420 3 20 if $dstTag eq "all"
1422 56 5 unless ($opts->{'EXPR'})
1424 31 25 if ($tag =~ /(.*):(.+)/)
1428 0 32 unless length $_ and /^(\d+)?(.*)/
1430 0 32 if $g =~ s/^ID-//i
1431 23 9 unless $g eq "*" or $g eq "all"
1435 0 56 if ($tag =~ s/#$//)
1437 0 0 unless $dstTag
1440 14 42 if $tag eq "all"
1442 2 54 if ($tag =~ /[?*]/ and $tag ne "*")
1449 23 38 if ($dstTag) { }
7 31 elsif ($isExclude) { }
1451 0 23 if $isExclude
1459 1 6 unless @setList
1462 1 30 $opts->{'WILD'} ? :
1469 55 7 if $set->[2]
1475 13 6282 if ($tag =~ /^(Error|Warning)( |$)/)
1484 6252 2616 unless ($set->[1] eq $lcTag or $set->[1] eq "*")
1486 6238 14 unless $set->[3]{'WILD'} and $lcTag =~ /^$set->[1]$/
1489 1468 1162 if (@{$set->[0];})
1491 1365 103 unless (@grp)
1497 1510 0 if (not defined $f) { }
0 0 elsif ($f == 7) { }
1498 1014 496 unless $grp{$g}
1500 0 0 unless &IsSameID(scalar $srcExifTool->GetTagID($tag), $g)
1502 0 0 unless defined $grp[$f] and $g eq $grp[$f]
1506 174 1442 unless $set->[2]
1516 5 57 if ($opts->{'EXPR'})
1518 0 5 if ($srcExifTool->{'VALUE'}{'Error'})
1523 0 0 unless defined $val
1526 5 0 unless $dstTag =~ /[?*]/ and $dstTag ne "*"
1527 0 5 if $dstGrp
1529 5 0 if $rtnVals[0]
1534 0 1442 if ($opts->{'SrcType'} and $opts->{'SrcType'} ne $srcType) { }
1540 1364 78 if ($dstGrp) { }
1545 284 1082 unless /^(\d*)(all|\*)$/i
1546 0 1082 length $1 ? :
1554 7 1435 if ($srcExifTool->{'TAG_INFO'}{$tag}{'MakerNotes'})
1558 1415 27 if ($dstTag eq "*")
1562 1409 33 if ($set->[1] eq '*' or $set->[3]{'WILD'}) { }
1565 26 118 if $srcExifTool->{'TAG_INFO'}{$tag}{'Protected'} and $srcExifTool->{'TAG_INFO'}{$tag}{'Binary'}
1569 1383 0 $structOpt eq '2' ? :
1572 33 0 unless $dstTag =~ /[?*]/
1582 0 1416 if ($wrn and not $noWarn)
1587 660 756 if $rtn
1608 3990 2715 if (ref $tag eq 'HASH' and $tag->{'IsNVH'} or not defined $tag) { }
1612 2598 117 if ($self->{'NEW_VALUE'})
1614 49 2549 if (ref $tag) { }
1471 1078 elsif (defined($tagInfo = $Image::ExifTool::Extra{$tag}) and $tagInfo->{'Writable'}) { }
1623 5 1073 if $tag =~ s/(.*)://
1627 1078 4 unless my $nvh = $self->GetNewValueHash($tagInfo)
1630 0 2 if $_ eq $nvh->{'WriteGroup'}
1632 0 2 if ($grps[0] eq $nvh->{'WriteGroup'}) { }
1634 0 0 if $_ eq $grps[1]
1637 2 0 if $_ eq $grps[0]
1640 0 0 if /^ID-(.*)/i and &IsSameID($tagInfo->{'TagID'}, $1)
1642 0 0 unless $nvh = $nvh->{'Next'}
1646 2 2 if defined $nvHash->{'IsCreating'}
1651 1818 897 if $newValueHashPt
1653 4435 2270 unless ($nvHash and $nvHash->{'Value'})
1654 1773 2662 if wantarray
1660 60 2210 if ($nvHash->{'TagInfo'}{'RawConvInv'} or $nvHash->{'Shift'})
1667 26 34 if $nvHash->{'Shift'} and $table
1672 26 34 if ($checkProc) { }
1674 0 26 if ($err or not defined $val)
1675 0 0 unless $err
1680 26 0 unless $conv
1682 0 34 unless $conv
1685 2 32 if (ref $conv eq 'CODE') { }
1690 0 32 if $@
1692 0 34 if ($Image::ExifTool::evalWarning)
1694 0 0 if ($Image::ExifTool::evalWarning ne "\n")
1704 1110 1160 if wantarray
1719 216 19 if ($newVal)
1725 15 19077 if $tagInfo->{'WriteNothing'}
1727 1 19076 if $tagInfo->{'WritePseudo'}
1731 0 235 unless wantarray
1750 113 0 unless $nvHash->{'Save'}
1777 1 0 if ($newValues)
1783 24 549 if ($nvHash->{'Save'}) { }
1787 0 549 if ($lastHash) { }
1 548 elsif ($nvHash->{'Next'}) { }
1800 1 0 if ($savedValues)
1801 0 1 unless $newValues
1803 1 88 if ($newValues->{$key}) { }
1830 0 0 unless defined $tag
1832 0 0 unless defined $val
1834 0 0 unless $isOverwriting
1837 0 0 if $tag eq "FileCreateDate" and $^O ne "MSWin32"
1838 0 0 if ($isOverwriting < 0)
1840 0 0 unless (defined $originalTime)
1842 0 0 $tag eq 'FileCreateDate' ? :
1843 0 0 unless defined $originalTime
1846 0 0 unless $isUnixTime
1847 0 0 unless $self->IsOverwriting($nvHash, $originalTime)
1851 0 0 if ($tag eq 'FileCreateDate') { }
1852 0 0 unless eval { do { require Win32::API } }
1853 0 0 unless eval { do { require Win32API::File } }
1858 0 0 unless $self->SetFileTime($file, $aTime, $mTime, $cTime, 1)
1880 1 0 unless $opt
1882 1 0 unless (defined $newName)
1883 0 1 if ($opt) { }
1884 0 0 if ($opt eq 'HardLink' or $opt eq 'Link') { }
0 0 elsif ($opt eq 'SymLink') { }
0 0 elsif ($opt eq 'Test') { }
1891 0 0 unless defined $newName
1894 1 0 if defined $filename and $self->IsOverwriting($nvHash, $file)
1896 0 1 if defined $dir and $self->IsOverwriting($nvHash, $file)
1897 0 1 unless $doName or $doDir
1898 1 0 if ($doName) { }
1900 0 1 if $doDir
1907 0 1 if ($^O eq 'MSWin32') { }
1908 0 0 if ($newName =~ /[\0-\x1f<>"|*]/)
1912 0 0 if ($newName =~ /:/ and not $newName =~ /^[A-Z]:[^:]*$/i)
1916 0 0 if ($newName =~ /\?/ and not $newName =~ m[^[\\/]{2}\?[\\/][^?]*$])
1920 0 0 if ($newName =~ m[(^|[\\/])(CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(\.[^.]*)?$]i)
1924 0 0 if ($newName =~ /([. ])$/)
1925 0 0 if $self->Warn("New file name not recommended for Windows (ends with '$1')", 2)
1927 0 0 if (length $newName > 259 and not $newName =~ /\?/)
1928 0 0 if $self->Warn("New file name not recommended for Windows (exceeds 260 chars)", 2)
1934 0 1 unless length $newName
1936 0 0 if ($self->Exists($newName) and !defined($usedFlag) || $usedFlag)
1937 0 0 if ($file ne $newName or $opt =~ /Link$/) { }
1939 0 0 if ($opt =~ /Link$/ or not $self->IsSameFile($file, $newName))
1948 0 1 if ($opt eq "Test")
1955 0 1 if (($result = $self->CreateDirectory($newName)) != 0)
1956 0 0 if ($result < 0)
1962 0 1 if ($opt eq 'HardLink' or $opt eq 'Link') { }
0 1 elsif ($opt eq 'SymLink') { }
1963 0 0 unless (link $file, $newName)
1971 0 0 if $^O eq "MSWin32"
1976 0 0 if (not $file =~ m[^/] and $newName =~ m[/])
1977 0 0 unless (eval { do { require Cwd } })
1982 0 0 unless (defined $file)
1987 0 0 unless (eval { do { symlink $file, $newName } })
1996 0 1 unless ($self->Rename($file, $newName))
1999 0 0 unless ($self->Open(\*EXIFTOOL_SFN_IN, $file))
2003 0 0 unless ($self->Open(\*EXIFTOOL_SFN_OUT, $newName, ">"))
2012 0 0 unless print EXIFTOOL_SFN_OUT $buff
2014 0 0 unless close EXIFTOOL_SFN_OUT
2016 0 0 if ($err)
2025 0 0 unless $self->Unlink($file)
2044 0 222 if (defined $perm)
2045 0 0 if (eval { do { chmod $perm & 4095, $file } }) { }
2055 0 222 if (defined $uid or defined $gid)
2056 0 0 unless defined $uid
2057 0 0 unless defined $gid
2058 0 0 if (eval { do { chown $uid, $gid, $file } }) { }
2059 0 0 if $uid >= 0
2060 0 0 if $gid >= 0
2064 0 0 unless $result
2071 1332 0 unless $nvHash
2072 0 0 if ($^O eq 'darwin') { }
0 0 elsif ($tag ne 'FileCreateDate') { }
2073 0 0 if ref $file
2076 0 0 if $res == 1 or not $result
2085 0 222 if ($zhash)
2087 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 } }) { }
2098 0 0 if ($self->EncodeFileName($zfile)) { }
2104 0 0 if ($wattr == Win32API::File::INVALID_FILE_ATTRIBUTES()) { }
0 0 elsif ($wattr & Win32API::File::FILE_ATTRIBUTE_READONLY()) { }
2109 0 0 if ($wide) { }
2110 0 0 if eval { do { Win32API::File::DeleteFileW($zfile) } }
2112 0 0 if eval { do { Win32API::File::DeleteFile($zfile) } }
2114 0 0 if ($res > 0) { }
2121 0 0 if $res == 1 or not $result
2154 0 0 if ($setModDate and $self->IsOverwriting($nvHash) < 0 and defined $infile and ref $infile ne "SCALAR")
2160 0 0 if ($setCreateDate and $self->IsOverwriting($nvHash2) < 0 and defined $infile and ref $infile ne "SCALAR")
2163 0 0 unless defined $cTime
2170 4 231 if (not defined $outfile and defined $infile)
2174 0 4 if defined $hardLink and not length $hardLink
2175 0 4 if defined $symLink and not length $symLink
2176 0 4 if defined $testName and not length $testName
2179 0 4 if (defined $newDir and length $newDir) { }
2180 0 0 unless $newDir =~ m[/$]
2184 1 3 if ($numNew == $numPseudo) { }
0 6 elsif (defined $newFileName and length $newFileName) { }
2186 1 0 if (defined $newFileName || defined $newDir and not ref $infile)
2188 1 0 if ($result > 0) { }
0 0 elsif ($result < 0) { }
2195 1 0 if (not ref $infile or UNIVERSAL::isa($infile, "GLOB"))
2196 0 1 if $setModDate
2197 0 1 if $setCreateDate
2198 0 1 if $self->SetSystemTags($infile) > 0
2200 0 1 if (defined $hardLink or defined $symLink or defined $testName)
2201 0 0 if $hardLink and $self->SetFileName($infile, $hardLink, "HardLink")
2202 0 0 if $symLink and $self->SetFileName($infile, $symLink, "SymLink")
2203 0 0 if $testName and $self->SetFileName($infile, $testName, "Test")
2209 0 0 if (ref $infile) { }
0 0 elsif ($self->IsOverwriting($nvHash, $infile)) { }
2218 0 3 if (defined $newDir)
2219 0 0 unless defined $outfile or ref $infile
2220 0 0 if (defined $outfile)
2222 0 0 unless ref $infile
2229 5 229 if (ref $infile) { }
206 23 elsif (defined $infile and $infile ne '') { }
0 23 elsif (not defined $outfile) { }
2231 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) } } || $@) { }
2238 0 0 $] < 5.01 ? :
0 0 $@ ? :
2239 0 0 if (defined $outfile) { }
2247 2 204 unless defined $outfile
2248 206 0 if ($self->Open(\*EXIFTOOL_FILE2, $infile)) { }
2265 22 1 unless $outType or ref $outfile
2266 23 0 if (&CanCreate($outType)) { }
0 0 elsif ($outType) { }
2267 23 0 if ($self->{'OPTIONS'}{'WriteMode'} =~ /g/i) { }
2284 29 205 unless (@fileTypeList)
2285 23 6 if ($fileType) { }
2295 13 221 if (ref $outfile) { }
1 220 elsif (not defined $outfile) { }
0 220 elsif ($self->Exists($outfile)) { }
220 0 elsif ($self->Open(\*EXIFTOOL_OUTFILE, $outfile, '>')) { }
2297 0 13 if (UNIVERSAL::isa($outRef, 'GLOB')) { }
2302 13 0 unless defined $$outRef
2308 0 1 if ($raf)
2323 0 0 $tmpfile ? :
2331 234 0 unless $raf
2333 1 233 if ($numNew == $numPseudo) { }
0 233 elsif (not ref $infile and $infile eq '-' || $infile =~ /\|$/) { }
2338 0 1 unless &Write($outRef, $buff)
2354 23 210 unless $raf->Read($hdr, 1024)
2355 0 233 unless $raf->Seek($inPos, 0)
2360 35 233 if ($Image::ExifTool::magicNumber{$type} and length $hdr and not $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s)
2361 35 0 if @fileTypeList
2369 106 127 if ($type eq 'JPEG' or $type eq 'EXV') { }
13 114 elsif ($type eq 'TIFF') { }
112 2 elsif (exists $writableType{$type}) { }
0 2 elsif ($type eq 'ORF' or $type eq 'RAW') { }
2 0 elsif ($type eq 'EXIF') { }
2373 0 13 if (grep /^$tiffType$/, @{$Image::ExifTool::noWriteFile{'TIFF'};}) { }
2377 0 13 if ($tiffType eq "FFF")
2386 85 27 if (ref $writableType{$type} eq 'ARRAY') { }
2403 2 0 if (defined $buff) { }
2404 2 0 &Write($outRef, $buff) ? :
2412 233 0 if $rtnVal
2413 0 0 unless @fileTypeList
2415 0 0 unless $raf->Seek($inPos, 0)
2416 0 0 if (UNIVERSAL::isa($outRef, 'GLOB')) { }
2423 0 233 unless ($rtnVal)
2425 0 0 if ($seekErr) { }
0 0 elsif ($fileType and defined $rtnVal) { }
0 0 elsif ($fileType) { }
2428 0 0 if ($self->{'VALUE'}{'Error'}) { }
0 0 elsif ($fileType eq 'RAW') { }
2433 0 0 if ($wrongType) { }
2438 0 0 unless $Image::ExifTool::magicNumber{$type}
2439 0 0 unless $hdr =~ /^$Image::ExifTool::magicNumber{$type}/s
2449 0 0 if $infile and &GetFileType($infile)
2454 0 0 if $err
2461 234 0 if ($rtnVal > 0)
2462 0 23 if ($outType and $type and $outType ne $type)
2464 0 0 unless (grep /^$type$/, @types)
2469 0 234 if ($rtnVal > 0 and not &Tell($outRef) and not $self->{'VALUE'}{'Error'})
2471 0 0 if (defined $hdr and length $hdr) { }
2472 0 0 unless defined $type
2478 0 234 if $self->{'VALUE'}{'Error'}
2482 1 233 if (defined $outBuff)
2483 0 1 if ($rtnVal <= 0 or not $self->{'CHANGED'}) { }
1 0 elsif (UNIVERSAL::isa($inRef, 'GLOB')) { }
2494 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 } }
2501 206 28 if ($closeIn)
2503 0 206 unless close $inRef or not defined $outBuff
2504 206 0 if ($rtnVal > 0)
2506 0 206 if ($^O eq "darwin" and -s "$infile/..namedfork/rsrc")
2507 0 0 if ($self->{'DEL_GROUP'}{'RSRC'}) { }
2514 0 0 if ($self->Open(\*SRC, "$infile/..namedfork/rsrc")) { }
2515 0 0 if ($self->Open(\*DST, "$outfile/..namedfork/rsrc", '>')) { }
2519 0 0 unless print DST $buf
2521 0 0 unless close DST or $err
2530 0 0 if $err and $self->Error("Error $err Mac OS resource fork", 2)
2534 0 206 if $eraseIn
2538 220 14 if ($closeOut)
2540 0 220 unless close $outRef
2542 0 220 if ($rtnVal <= 0) { }
2 218 elsif ($tmpfile) { }
2547 0 2 unless ($self->Rename($tmpfile, $infile))
2549 0 0 if (not $self->Unlink($infile)) { }
0 0 elsif (not $self->Rename($tmpfile, $infile)) { }
2559 2 0 if $rtnVal > 0
2563 221 0 if ($rtnVal > 0 and $closeOut || defined $outBuff && ($closeIn || UNIVERSAL::isa($infile, 'GLOB')))
2564 220 1 $closeOut ? :
2566 0 221 if $self->SetSystemTags($target) > 0
2567 197 24 if ($closeIn)
2568 0 197 if $setModDate and $self->SetFileModifyDate($target, $originalTime, undef, 1) > 0
2570 0 197 if $setCreateDate and $self->SetFileModifyDate($target, $createTime, "FileCreateDate", 1) > 0
2572 0 197 if defined $hardLink and $self->SetFileName($target, $hardLink, "HardLink")
2573 0 197 if defined $symLink and $self->SetFileName($target, $symLink, "SymLink")
2574 0 197 if defined $testName
2578 0 234 if ($rtnVal < 0) { }
234 0 elsif ($rtnVal > 0) { }
2579 0 0 unless $self->{'VALUE'}{'Error'}
2582 5 229 unless $self->{'CHANGED'}
2600 0 0 if $group
2610 0 0 if ($table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP")
2619 0 0 unless $tag
2621 0 0 if $tagInfo->{'SubDirectory'} and not $tagInfo->{'Writable'}
2622 0 0 if $tagInfo->{'Hidden'}
2623 0 0 if (@groups)
2626 0 0 unless grep /^$group$/i, @tg
2645 0 0 if $group
2655 0 0 if ($table->{'GROUPS'} and $table->{'GROUPS'}{'0'} eq "XMP")
2660 0 0 if (@parts > 3)
2672 0 0 unless $tag
2675 0 0 unless $writable or $table->{'WRITABLE'} and not defined $writable and not $tagInfo->{'SubDirectory'}
2676 0 0 if $tagInfo->{'Hidden'}
2677 0 0 if (@groups)
2680 0 0 unless grep /^$group$/i, @tg
2699 0 0 if ref $family
2701 0 0 if $family == 3
2702 0 0 if $family == 4
2703 0 0 if $family == 5
2704 0 0 if $family == 6
2715 0 0 if $grps = $table->{'GROUPS'} and $grp = $grps->{$family}
2718 0 0 if ($family == 7) { }
2721 0 0 if (not defined $id) { }
0 0 elsif ($id =~ /^\d+$/) { }
2724 0 0 if $self and $self->{'OPTIONS'}{'HexTagIDs'}
2732 0 0 unless $grps = $tagInfo->{'Groups'} and $grp = $grps->{$family}
2769 0 1 unless my $table = &GetTagTable($tableName)
2775 0 1 if $Image::ExifTool::specialTags{$tagID}
2802 0 5409 if ref $$valPt eq "SCALAR"
2805 0 5409 if ($] >= "5.006" and eval { do { require Encode; &Encode::is_utf8($$valPt) } } || $@)
2808 0 0 $] < 5.01 ? :
0 0 $@ ? :
2811 92 5317 if ($self->{'OPTIONS'}{'Escape'})
2813 0 92 if ($self->{'OPTIONS'}{'Escape'} eq 'XML') { }
92 0 elsif ($self->{'OPTIONS'}{'Escape'} eq 'HTML') { }
2835 70 27890 unless $convType
2838 27960 44547 if (not defined $type) { }
21604 22943 elsif ($type eq 'PrintConv') { }
2840 569 27391 if ($tagInfo->{'List'})
2842 74 0 if (defined $listSplit and not $tagInfo->{'Struct'} and $wantGroup || !defined($wantGroup))
2845 59 0 if $listSplit eq 1 and $tagInfo->{'AutoSplit'}
2847 41 0 @splitVal ? :
33 41 @splitVal > 1 ? :
2855 13 0 if ($tagInfo->{'RawJoin'} and $tagInfo->{'List'} and not ref $val)
2857 13 0 if @splitVal > 1
2861 275 22668 if ($tagInfo->{'WriteCheck'})
2864 0 275 if $@
2866 22909 34 unless ($err2)
2868 22040 801 if ($table and $table->{'CHECK_PROC'} and not $tagInfo->{'RawConvInv'})
2870 46 21994 if (ref $val eq 'ARRAY') { }
2874 0 136 if $err2
2881 3315 19628 if (defined $err2)
2882 3307 8 if ($err2) { }
2895 27154 22410 unless defined $conv or defined $convInv
2898 12 22398 if (ref $val eq 'ARRAY') { }
153 22245 elsif (ref $conv eq 'ARRAY' or ref $convInv eq 'ARRAY') { }
2906 153 0 if (ref $conv eq "ARRAY")
2910 29 124 if (ref $convInv eq "ARRAY")
2917 13651 8811 if ($convInv) { }
8808 3 elsif ($conv) { }
2921 131 13520 if (ref $convInv eq 'CODE') { }
2926 198 13322 if $@
2928 223 13428 if ($Image::ExifTool::evalWarning) { }
124 13304 elsif (not defined $val) { }
2930 9 214 if ($Image::ExifTool::evalWarning eq "\n") { }
2931 9 0 unless defined $err
2944 8620 188 if (ref $conv eq 'HASH' and !exists($$tagInfo{"${type}Inv"}) || $convInvList) { }
150 38 elsif (not $tagInfo->{'WriteAlso'}) { }
2947 0 0 if ($self->{'CUR_LANG'} and $type eq "PrintConv" and ref($lc = $self->{'CUR_LANG'}{$tag}) eq "HASH" and $lc = $lc->{'PrintConv'})
2954 0 0 unless defined $lc->{$val}
2957 0 0 if ($conv->{'BITMASK'})
2960 0 0 unless defined $lc->{$val}
2967 100 8520 if ($conv->{'BITMASK'}) { }
2971 2 98 if ($err2) { }
67 31 elsif (defined $val2) { }
2974 2 0 unless (defined $val)
2989 4518 4100 if (not defined $val) { }
0 4100 elsif ($Image::ExifTool::evalWarning) { }
2990 2779 1739 $multi ? :
0 4518 $Image::ExifTool::evalWarning ? :
3004 17320 125 unless @valList
3006 73 52 if (++$index >= @valList)
3008 12 61 $tagInfo->{'List'} ? :
3011 16 36 if $convList
3012 11 41 if $convInvList
3047 0 6 if ($docGrp) { }
3048 0 0 $docGrp =~ /(\d+)$/ ? :
3056 0 9 if ($var eq "\$" or $var eq "/")
3057 0 0 if $bra
3058 0 0 if ($var eq '/') { }
0 0 elsif ($line =~ /^self\b/ and not $rtnStr =~ /\$$/) { }
3073 0 9 if $line =~ s/^#//
3075 1 8 if ($bra and $line =~ s/^\@(#)?//)
3077 0 1 if $1
3081 3 4 if ($bra and not $line =~ s/^\s*\}// and $line =~ s/^\s*;\s*(.*?)\s*\}//s)
3088 3 4 unless $level and $line =~ s/^(.*?)\s*\}//s
3093 0 3 unless length $expr
3097 0 9 unless @tags
3104 1 8 if $asList
3107 0 9 if ($cache and not $lcTag =~ /(^|:)all$/) { }
3110 0 0 if $tag =~ s/^(.*)://
3114 0 0 unless ($cacheTag)
3119 0 0 if defined $group
3121 0 0 $ex->{$_} ? :
3122 0 0 if (defined $cacheTag->[$doc])
3123 0 0 unless $cacheTag->[$doc] =~ / \((\d+)\)$/
3126 0 0 if / \((\d+)\)$/ and $1 < $cur
3131 0 0 $lcTag =~ /\b(main|doc(\d+)):/ ? :
3132 0 0 if ($cacheTag->[$doc])
3138 0 9 if ($docGrp and not $lcTag =~ /\b(main|doc\d+):/)
3142 0 9 if ($lcTag eq 'all') { }
0 9 elsif (defined $self->{'OPTIONS'}{'UserParam'}{$lcTag}) { }
3 6 elsif ($tag =~ /(.*):(.+)/) { }
0 6 elsif ($tag eq 'self') { }
3149 0 3 if (lc $tag eq 'all') { }
3152 0 0 $match ? :
3158 0 3 if (defined $val and $tg =~ / \((\d+)\)$/)
3161 0 0 if not $tag =~ / \((\d+)\)$/ or $1 > $tagNum
3165 2 1 unless $tag =~ / /
3173 3 3 unless (defined $val)
3176 3 0 if (defined $tg)
3183 1 8 if $asList
3184 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) { }
3187 1 0 unless @tags
3189 0 0 if ($self->{'OPTIONS'}{'Binary'} or $$val =~ /^Binary data/) { }
3198 0 0 if $asList
3200 8 0 unless @tags
3201 0 0 if defined $val
3204 1 8 if (@val) { }
3205 0 1 if defined $val
3208 8 0 if defined $val
3211 3 6 if (defined $expr and defined $val)
3215 1 2 if ($asList) { }
3219 0 3 if $@
3223 1 0 @val ? :
3228 0 2 if $@
3229 0 2 ref $_ eq 'ARRAY' ? :
3231 0 3 if ($Image::ExifTool::evalWarning)
3232 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i) ? :
3234 0 0 if ($opt)
3235 0 0 if ($opt eq 'Error') { }
0 0 elsif ($opt ne 'Silent') { }
3245 0 9 unless (defined $val or ref $opt)
3247 0 0 unless (defined $val)
3248 0 0 $docGrp && !($var =~ /\b(main|doc\d+):/i) ? :
3249 0 0 $didExpr ? :
3252 0 0 if $opt and $opt eq 'Silent' || &$opt($self, $msg, 2)
3256 0 9 if (ref $opt eq 'HASH') { }
3257 0 0 if $type
3258 0 0 if (defined $expr)
3281 0 0 if ($advFmtSelf and defined($shift = $advFmtSelf->{'OPTIONS'}{'GlobalTimeShift'}))
3286 0 0 unless defined $_
3287 0 0 if $shift
3297 0 0 $advFmtSelf ? :
3299 0 0 $_[0] && $new eq $_ ? :
3311 0 0 unless (@tagInfo)
3312 0 0 if &TagExists($tag)
3317 0 0 $tagInfo->{'Writable'} ? :
0 0 if defined $tagInfo->{'Writable'}
3318 0 0 if $tagInfo->{'Table'}{'WRITABLE'}
3321 0 0 if ($writeProc)
3324 0 0 if $tagInfo->{'Writable'}
3337 0 0 unless lc $file eq lc $file2
3344 0 0 if ($self->Open(\*TMP1, $tmp1, ">"))
3346 0 0 if $self->Exists($tmp2)
3350 0 0 if ($interrupted and $SIG{'INT'})
3381 0 1 if ($dir and not $self->IsDirectory($dir))
3386 0 0 if (length $dir and not $self->IsDirectory($dir))
3389 0 0 if ($self->EncodeFileName($d2)) { }
3391 0 0 unless (eval { do { require Win32::API } })
3395 0 0 unless ($k32CreateDir)
3396 0 0 if defined $k32CreateDir
3398 0 0 unless ($k32CreateDir)
3404 0 0 unless $k32CreateDir->Call($d2, 0)
3406 0 0 unless mkdir $d2, 511
3425 2 0 if (defined $mode and not defined $self->GetNewValue("FilePermissions"))
3430 2 0 if (defined $uid and defined $gid and not defined $newUid && defined $newGid)
3431 0 2 if defined $newGid
3432 0 2 if defined $newUid
3446 0 1 unless defined $dir
3447 0 1 if ($newName =~ m[/$]) { }
1 0 elsif (not $newName =~ m[/]) { }
3462 0 0 unless exists $info->{$tag}
3466 0 0 unless exists $info->{$key}
3477 61 8559 unless defined $val
3479 40 8519 if ($val =~ /^Unknown\s*\((.*)\)$/i) { }
3481 0 40 if ($val =~ /^0x([\da-fA-F]+)$/)
3500 15310 6450 unless $matches
3502 3128 3322 if ($matches > 1 and not $pattern =~ /\$$/)
3505 499 8885 if defined $conv->{$_} and $conv->{$_} =~ /$pattern/
3507 2998 130 if $matches > 1
3510 7356 3411 if not $conv->{$_} =~ /$pattern/ or $ignorePrintConv{$_}
3516 5108 3411 unless ($found)
3518 792 4316 if ($conv->{'OTHER'}) { }
3525 2998 2110 if $matches > 1
3528 8512 47 if wantarray
3544 41 6164 unless $nvHash
3546 6047 117 unless $nvHash->{'DelValue'}
3549 13 104 unless @{$nvHash->{'DelValue'};} or defined $shift
3551 58 46 unless defined $val
3555 3 43 if ($conv)
3558 0 3 if (ref $conv eq 'CODE') { }
3565 0 3 if $@
3567 0 3 unless defined $val
3570 6 40 if $nvHash->{'CreateOnly'}
3572 13 27 if (defined $shift)
3574 6 7 unless ($shiftType and $shiftType eq "Time")
3575 0 6 unless (&IsFloat($val))
3578 0 0 if (defined $conv)
3581 0 0 if (ref $conv eq 'CODE') { }
0 0 elsif (not ref $conv) { }
3586 0 0 if $@
3588 0 0 if ($Image::ExifTool::evalWarning)
3593 0 0 unless (defined $val and &IsFloat($val))
3602 0 13 if ($err)
3608 0 13 unless defined $checkVal
3610 0 13 if $val eq $nvHash->{'Value'}[0]
3616 10 22 if $val eq $delVal
3637 5336 26832 unless $writeGroup =~ /^(MakerNotes|XMP|Composite|QuickTime)$/
3652 1 67444 unless $tagInfo
3656 41720 25724 if $opts
3657 21129 46315 unless defined $writeGroup
3659 46315 21129 if ($writeGroup)
3663 36 1967 if $nvHash->{'WriteGroup'} =~ /^(QuickTime|All)$/
3665 12 1955 if $tagInfo->{'WriteGroup'} and $tagInfo->{'WriteGroup'} eq "All"
3671 2403 593 if (defined $nvHash and $opts{'delete'} || $opts{'create'} && $nvHash->{'Save'})
3676 0 2403 if ($protect and not $opts{'create'} && ($nvHash->{'NoReplace'} || $_[5] || $nvHash->{'DelValue'} && !defined($nvHash->{'Shift'}))) { }
2394 9 elsif ($opts{'delete'}) { }
3689 58 9 unless ref $copy{$key} eq "ARRAY"
3697 0 0 if $protect and $nvHash->{'Value'}
3700 23023 23430 if (not defined $nvHash and $opts{'create'})
3708 32 22991 if ($self->{'NEW_VALUE'}{$tagInfo}) { }
3723 0 0 if $loadedAllTables
3729 0 0 unless $table =~ /:/
3742 0 0 if ($writeProc)
3751 0 0 unless my $subdir = $tagInfo->{'SubDirectory'}
3752 0 0 unless my $tableName = $subdir->{'TagTable'}
3754 0 0 if $Image::ExifTool::allTables{$tableName} or $pushedTables{$tableName}
3770 2664 0 if ($nvHash eq $firstHash) { }
3772 0 2664 if ($nvHash->{'Next'}) { }
3784 80 2584 if ($nvHash->{'Save'})
3799 777 7 unless $self->{'NEW_VALUE'}
3803 2 5 if $removeGroups{$group}
3806 0 7 if $self->{'OPTIONS'}{'Verbose'} > 1
3819 1581 404 if $wgrp eq $grp0
3820 270 1715 if (grep /^($grp0|$wgrp)$/i, @groups)
3821 0 270 if $out
3825 1979 6 unless $nvHash = $nextHash
3839 1170 24 if ($nv)
3843 56407 32433 if $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3864 21112 287 if $tagTablePtr and $tagTablePtr ne $tagInfo->{'Table'}
3880 30 429 unless $parent
3890 151319 34424 unless $tagInfo->{'SubDirectory'}
3895 3794 30630 unless ($dirName)
3901 252 34172 if ($editDirs->{$dirName} and $editDirs->{$dirName} eq $parent)
3903 139 113 if $addDirs->{$dirName}
3907 75 384 if wantarray
3923 182 116 unless ($langInfo)
3953 192 125 unless ($fileDirs)
3954 112 80 unless ref $fileType eq "HASH"
3968 3524 9431 if ($preferredGroup)
3970 825 2699 if ($isCreating) { }
3975 141 1 if $preferredGroup ne $g0 and $nvHash->{'CreateGroups'}{$preferredGroup} and !$altGroup || $altGroup ne $g0
3981 93 0 if $nvHash->{'Value'} and $preferredGroup eq $g0 and not $nvHash->{'EditOnly'} and $self->{'OPTIONS'}{'WriteMode'} =~ /g/
3988 387 12568 if ($dirName =~ /^MIE\d*(-[a-z]+)?\d*$/i)
3993 0 12955 if ($dirName eq '*' and $nvHash->{'Value'}) { }
46 12909 elsif ($dirName eq 'QuickTime') { }
3995 0 0 if ($val)
3997 0 0 unless $val =~ /\b($_|All)\b/i
3999 0 0 if $_ eq "FixBase"
4010 6351 46233 if (ref $parent)
4015 5309 47275 if $isCreating and $isCreating != 2
4020 37 168 if (%{$self->{'DEL_GROUP'};})
4023 2 841 if /^-/
4026 73 768 if $translateWriteGroup{$dirName}
4028 26 815 if $dirName =~ /^XMP-/
4032 13 1186 if (ref $parent)
4042 86 38 if ($editDirs->{'IFD0'} and $fileDirs->{'JFIF'})
4047 2 203 if ($self->{'OPTIONS'}{'Verbose'})
4052 0 2 unless $self->{'OPTIONS'}{'Verbose'} > 1
4069 0 1715 unless $tagTablePtr
4070 4 1711 if $self->{'OPTIONS'}{'Verbose'}
4075 574 1141 unless $dirName
4076 207 1508 if (%{$self->{'DEL_GROUP'};})
4080 97 110 unless $permanentDir{$grp0}
4082 40 167 if ($delFlag)
4083 0 40 if ($grp0 =~ /^(MakerNotes)$/ || $grp1 =~ /^(IFD0|ExifIFD|MakerNotes)$/ and $self->IsRawType and !($dirInfo->{'TagInfo'} && defined $dirInfo->{'TagInfo'}{'Permanent'}) || $dirInfo->{'TagInfo'}{'Permanent'}) { }
10 30 elsif (not $blockExifTypes{$self->{'FILE_TYPE'}}) { }
4094 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}) { }
4096 0 0 if $grp0 eq "Photoshop"
4101 0 0 if $delGroup->{'IFD0'}
4104 0 0 unless $delGroup->{$grp1} or $grp1 eq "ExifIFD"
4107 40 0 if ($grp1)
4108 30 10 if ($dataPt or $dirInfo->{'RAF'})
4110 1 29 if $out
4111 3 27 if $grp1 eq "ICC_Profile"
4113 6 24 if $dirName =~ /IFD/
4119 1 39 if not $right and $grp1 eq "EXIF"
4120 21 19 if ($delFlag == 2 and $right) { }
4124 21 0 if (not $parent or $parent eq $right or $parent eq $right2) { }
4127 9 12 unless $self->{'Recreated'}
4128 0 21 if ($self->{'Recreated'}{$path})
4129 0 0 $parent ? :
4148 18 1 unless $dirInfo->{'NoDelete'}
4154 231 1466 unless $writeProc or $writeProc = $tagTablePtr->{'WRITE_PROC'}
4161 202 1264 if $blockName eq "IFD0"
4167 1 12 if ($blockName eq "EXIF")
4168 0 1 unless ($blockExifTypes{$self->{'FILE_TYPE'}})
4176 0 1 unless $writeProc eq \&Image::ExifTool::WriteTIFF
4178 5 8 $dataPt ? :
0 13 unless $self->IsOverwriting($nvHash, $dataPt ? $$dataPt : "")
4181 0 13 unless (defined $newVal and length $newVal)
4182 0 0 unless $dataPt or $dirInfo->{'RAF'}
4184 0 0 if ($blockName eq "MakerNotes" and $rawType{$self->{'FileType'}})
4192 0 13 if $out
4197 680 547 if (defined $dataPt and defined $dirInfo->{'DirStart'} and defined $dirInfo->{'DataPos'} and not $dirInfo->{'NoRefTest'})
4202 0 680 if ($self->{'PROCESSED'}{$addr} and $dirName ne 'ICC_Profile' || $self->{'TIFF_TYPE'} ne 'IIQ') { }
4203 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)) { }
4210 0 0 if $out
4223 4 1449 if ($out)
4225 0 4 $dirName eq 'MakerNotes' && $dirInfo->{'TagInfo'} ? :
4226 3 1 if (not defined $oldDir or $oldDir ne $name)
4227 1 2 $isRewriting ? :
4243 56 1397 unless defined $newData and length $newData || $isRewriting
4247 4 1449 if ($out)
4248 0 4 if defined $newData and not length $newData
4249 0 4 if ($self->{'CHANGED'} == $oldChanged and $self->{'OPTIONS'}{'Verbose'} > 2)
4262 12 0 &GetByteOrder() eq 'MM' ? :
4270 75 108 &GetByteOrder() eq 'MM' ? :
4280 0 0 $val > 0 ? :
4287 1 0 &GetByteOrder() eq 'MM' ? :
4290 0 1 $exp & 32768 ? :
4320 0 169 if defined $opts{'Len'}
4322 70 99 unless defined $addr
4323 4 165 unless defined $len
4324 5 164 if ($maxLen and $len > $maxLen)
4330 0 169 if ($len > $datLen)
4339 159 69 if $wid > $len - $i
4347 5 164 if $more
4374 578 39 if (defined $tagID) { }
4375 563 15 if $tagID =~ /^\d+$/
4380 617 0 if ($tagInfo and $tagInfo->{'Name'}) { }
4384 0 0 if $parms{'Table'}
4385 0 0 if ($prefix or $hexID) { }
4386 0 0 unless $prefix
4387 0 0 $hexID ? :
4394 0 617 unless defined $size or not $dataPt
4400 365 252 if (defined $index)
4402 172 193 if length $index < 2
4406 39 578 if ($tagInfo and $tagInfo->{'SubDirectory'}) { }
4411 578 0 if (defined $val) { }
0 0 elsif ($dataPt) { }
4412 0 578 if ref $val eq "ARRAY"
4422 0 40 if ($verbose > 1 and $parms{'Extra'} || $parms{'Format'} || $parms{'DataPt'} || defined $size || $tagID =~ m[/])
4426 389 1 if ($hexID) { }
4432 0 390 if defined $parms{'Extra'}
4434 390 0 if ($format or defined $size)
4436 390 0 if (defined $size)
4438 352 38 if $format
4440 352 38 if ($format)
4442 352 0 if $parms{'Count'}
4446 165 0 if $verbose > 2 and $parms{'DataPt'}
4451 165 18 if ($verbose > 2 and $parms{'DataPt'} and not $tagInfo && $tagInfo->{'ReadFromRAF'})
4455 165 0 $verbose == 3 ? :
165 0 if $verbose < 5
4475 0 1 unless defined $pos
4479 0 1 unless ($size)
4480 0 0 unless $raf->Seek(0, 2)
4482 0 0 unless $size
4484 0 1 unless $raf->Seek($pos, 0)
4485 0 1 if ($htmlDump)
4486 0 0 unless my $num = $raf->Read($buff, $size)
4488 0 0 if $trailer eq "Unknown"
4494 1 0 unless $verbose > 2
4497 0 0 if ($verbose < 5)
4498 0 0 $verbose < 4 ? :
4499 0 0 if $num > $limit
4501 0 0 unless $raf->Read($buff, $num) == $num
4503 0 0 if ($size > 2 * $num) { }
0 0 elsif ($size > $num) { }
4513 0 0 if (defined $buf2)
4539 0 0 if $prePos and $preLen and $prePos + $preLen > $pos
4540 0 0 if $lastOne
4544 0 0 if (defined $prePos) { }
4556 0 0 if ($pos < $prePos)
4564 0 0 unless $preLen
4566 0 0 if ($self->{'OPTIONS'}{'Verbose'})
4595 1044 14 unless $_[0]{'OPTIONS'}{'Verbose'} > 1
4598 9 5 unless $xtra
4613 0 0 if $ch < 128
4616 0 0 if $ch < 32
4619 0 0 if $ch < 16
4637 0 0 if ($_[0] =~ /([\x80-\xff])/g) { }
4645 0 0 if $len
4646 0 0 unless defined $ch
4651 0 0 if ($ch < 194 or $ch >= 248)
4658 0 0 if ($ch < 224) { }
0 0 elsif ($ch < 240) { }
4667 0 0 unless ($_[0] =~ /\G([\x80-\xbf]{$n})/g)
4690 15 43 unless defined $guidCount and ++$guidCount < 256
4705 0 0 unless $res
4708 0 0 if (not $cmap) { }
0 0 elsif (length $cmap == 3 * 2 ** $bits) { }
0 0 elsif (length $cmap != 6 * 2 ** $bits) { }
4716 0 0 $cmap ? :
4717 0 0 $cols == 1 ? :
0 0 $cols == 1 ? :
0 0 $cmap ? :
0 0 $cmap ? :
4758 0 58 unless ref $self
4759 0 58 if ($self->{'Now'}) { }
4770 58 0 if $tzFlag or not defined $tzFlag
4790 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) { }
4797 0 431 if lc $val eq "now"
4800 0 437 if ($fmt)
4801 0 0 unless (defined $strptimeLib)
4802 0 0 if (eval { do { require POSIX::strptime } }) { }
0 0 elsif (eval { do { require Time::Piece } }) { }
4814 0 0 $fmt =~ s/%f$// && $val =~ s/(\.\d+)\s*$// ? :
4817 0 0 if (not $lib) { }
0 0 elsif ($lib eq 'POSIX::strptime') { }
4818 0 0 unless $self->{'OPTIONS'}{'StrictDate'}
4825 0 0 if ($^O eq "MSWin32" and $fmt =~ /%s/ and $val =~ /-\d/)
4834 0 0 if (defined $a[5] and length $a[5]) { }
4840 0 0 if defined $a[4] and length $a[4]
4843 0 0 if (not defined $a[$i] && length $a[$i]) { }
0 0 elsif (length $a[$i] < 2) { }
4844 0 0 if ($i < 2 or $dateOnly) { }
4858 430 7 if ($val =~ /(\d{4})/g)
4862 404 26 if (@a >= 3) { }
26 0 elsif ($dateOnly) { }
4866 5 399 @a > 5 && $val =~ /(\.\d+)\s*$/ ? :
4868 34 370 if ($tzFlag) { }
92 278 elsif (defined $tzFlag) { }
4869 34 0 unless ($tz)
4870 34 0 if (eval { do { require Time::Local } }) { }
4882 403 1 if (defined $ss and $ss < 60) { }
1 0 elsif ($dateOnly) { }
4890 0 404 if ($a[0] < 1 or $a[0] > 12)
4894 0 404 if ($a[1] < 1 or $a[1] > 31)
4898 0 404 if $a[2] > 24
4899 0 404 if $a[3] > 59
4905 7 430 unless $rtnVal
4925 0 44 unless (&SetByteOrder($byteOrder))
4926 0 0 if $self->Options("Verbose")
4940 1550 3417 if @_ < 3
4959 0 739 if $val eq "inf"
4960 0 739 if $val eq "undef"
4961 16 723 if $val =~ m[^([-+]?\d+)/(\d+)$]
4963 38 685 if $val == 0
4964 10 675 $val < 0 ? :
4970 0 1550 if ($n > $maxInt or $d > $maxInt)
4971 0 0 if defined $num
4972 0 0 if $val < 1
4977 685 865 if abs $err < "1e-08"
4980 0 865 unless $frac -= $int
4993 10 178 if $val < 0
4999 10 57 if $val < 0
5008 27 1 &GetByteOrder() eq 'MM' ? :
5009 27 1 if $_[1]
5015 0 0 if $val < 0
5021 0 428 if $_[1]
5027 0 42 if $_[1]
5033 0 0 if $_[1]
5039 0 0 if $_[1]
5048 0 0 $val < 0 ? :
5056 2 10 $val < 0 ? :
5060 0 61 if $_[1]
5066 0 63 if $_[1]
5126 1238 360 if ($proc) { }
360 0 elsif ($format eq 'string' or $format eq 'undef') { }
5128 661 577 if ($count) { }
5129 63 598 if $count < 0
5136 0 1719 unless defined $val
5138 1232 487 if ($format =~ /^int/) { }
7 480 elsif (not &IsFloat($val)) { }
5139 0 1232 unless (&IsInt($val) or &IsHex($val))
5140 0 0 unless &IsFloat($val)
5142 0 0 $val < 0 ? :
5146 0 7 unless $format =~ /^rational/ and $val eq 'inf' || $val eq 'undef' || &IsRational($val)
5152 187 173 if $format eq "string"
5153 61 299 if ($count and $count > 0) { }
5155 29 32 if ($diff)
5158 22 7 if ($diff < 0) { }
5159 22 0 if ($format eq 'string') { }
5160 0 22 unless $count
5172 2 358 if $dataPt
5178 215 1023 if $dataPt
5190 98 2 unless $bits
5191 98 2 unless $num
5194 82 18 if ($val ne "(none)")
5198 42 0 if ($lookup) { }
5201 33 9 unless (defined $bit)
5202 0 33 if ($val =~ /\[(\d+)\]/) { }
5206 31 2 unless @vals > 1 and wantarray
5213 0 9 unless (&IsInt($bit) and $bit < $num)
5214 0 0 unless wantarray
5215 0 0 &IsInt($bit) ? :
5231 295 29 if (UNIVERSAL::isa($outfile, 'GLOB')) { }
5245 2301 1425 if (UNIVERSAL::isa($outfile, 'GLOB')) { }
1425 0 elsif (ref $outfile eq 'SCALAR') { }
5261 0 12 if ($self->{'DEL_GROUP'}{'Trailer'})
5269 8 4 if ($trailInfo->{'Fixup'})
5270 8 0 if ($pos > 0) { }
5291 2 127 if ref $types[0]
5292 127 2 unless $types[0]
5294 122 7 unless @types
5298 241 10 unless $self->{'NEW_VALUE'}{$Image::ExifTool::Extra{$type}}
5299 1 9 if $$self{"Did$type"}
5300 1 8 unless my $val = $self->GetNewValue($type)
5302 3 5 if ($type eq "CanonDR4")
5303 1 2 if $self->{'DidCanonVRD'}
5308 0 7 $trailPt ? :
5310 0 7 if ($trailPt) { }
5330 32 78 unless $type
5335 3 107 if $type eq "ICC"
5343 0 110 if ($size > $maxLen)
5347 0 0 if $type eq "EXIF" and $n + $maxLen <= $len - 4 and substr($$dataPt, $n + $maxLen, 4) =~ /^(MM\0\x2a|II\x2a\0)/
5353 3 107 if ($type eq "ICC")
5359 0 110 unless &Write($outfile, $segHdr, $header, $buff)
5360 110 0 if $n >= $len
5377 0 33 if ($size > $maxXMPLen)
5382 0 33 unless &Write($outfile, $app1hdr, $Image::ExifTool::xmpAPP1hdr, $$dataPt)
5384 0 33 if (defined $guid)
5391 0 0 if $len > $maxLen
5394 0 0 unless &Write($outfile, $app1hdr, $Image::ExifTool::xmpExtAPP1hdr, $guid, pack("N2", $size, $off), substr($$extPt, $off, $len))
5419 2 108 unless ($raf->Read($s, 2) == 2 and $s eq "\377\330")
5420 1 1 if (defined $s and length $s) { }
5421 0 1 unless $s eq "\377\1" and $raf->Read($s, 5) == 5 and $s eq "Exiv2"
5423 0 1 unless $self->{'FILE_TYPE'} eq "EXV"
5427 0 2 unless &Write($outfile, "\377\1")
5430 110 0 unless $verbose > 3
5435 0 110 unless &Write($outfile, $s)
5452 1 791 unless $raf->ReadLine($s)
5455 0 791 unless $raf->Read($ch, 1)
5457 791 0 unless $marker == 255
5461 109 682 if ($marker == 218 or $marker == 217)
5468 108 574 if (($marker & 240) == 192 and $marker == 192 || $marker & 3) { }
574 0 elsif ($marker != 0 and $marker != 1 and $marker < 208 || $marker > 215) { }
5469 0 108 unless $raf->Seek(7, 1)
5474 0 574 unless $raf->Read($s, 2) == 2
5476 0 574 unless defined $len and $len >= 2
5478 347 227 if (($marker & 240) == 224)
5479 86 261 $len < 64 ? :
5480 0 347 unless $raf->Read($s, $n) == $n
5484 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) { }
5485 18 27 if $s =~ /^JFIF\0/
5486 9 36 if $s =~ /^JFXX\0\x10/
5487 9 36 if $s =~ /^(II|MM).{4}HEAPJPGM/s
5489 60 24 if ($s =~ /^(.{0,4})$Image::ExifTool::exifAPP1hdr(.{1,4})/is)
5493 0 0 if (@dirOrder and $dirOrder[-1] =~ /^(IFD0|ExtendedEXIF)$/ and not length $junk and not $bytes =~ /^(MM\0\x2a|II\x2a\0)/)
5499 22 62 if $s =~ /^$Image::ExifTool::xmpAPP1hdr/
5500 2 82 if $s =~ /^$Image::ExifTool::xmpExtAPP1hdr/
5502 14 41 if $s =~ /^ICC_PROFILE\0/
5503 32 23 if $s =~ /^FPXR\0/
5504 9 46 if $s =~ /^MPF\0/
5506 9 0 if $s =~ /^(Meta|META|Exif)\0\0/
5508 9 0 if $s =~ /^RMETA\0/
5510 10 9 if $s =~ /^Ducky/
5512 20 9 if $s =~ /^$Image::ExifTool::psAPP13hdr/
5514 16 0 if $s =~ /^Adobe/
5518 209 138 if defined $dirName and not $delGroup->{$dirName}
5520 0 574 unless $raf->Seek($len, 1)
5522 443 239 unless $dirName
5526 2 108 unless ($marker and $marker == 218)
5527 0 2 unless $isEXV
5528 0 2 if $marker and $marker != 217
5530 0 110 unless $raf->Seek($pos, 0)
5541 1 791 unless $raf->ReadLine($segJunk)
5545 108 684 if length $segJunk
5548 791 1 if ($raf->Read($ch, 1)) { }
1 0 elsif ($creatingEXV) { }
5550 791 0 unless $marker == 255
5565 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) { }
5566 0 108 unless $raf->Read($segData, 7) == 7
5573 0 682 unless $raf->Read($s, 2) == 2
5575 0 682 unless defined $len and $len >= 2
5578 0 682 unless $raf->Read($segData, $len) == $len
5589 1 791 if (exists $addDirs->{'JFIF'} and not defined $doneDir{'JFIF'})
5591 1 0 if (defined $doneDir{'Adobe'}) { }
5596 0 0 if ($verbose)
5615 0 0 if defined $delJFIF
5616 0 0 if (defined $newData and length $newData)
5618 0 0 unless &Write($outfile, $app0hdr, "JFIF\0", $newData)
5623 60 687 if $markerName eq "APP0" or $dirCount{'IFD0'} or $dirCount{'ExtendedEXIF'}
5625 31 656 if (exists $addDirs->{'IFD0'} and not defined $doneDir{'IFD0'})
5627 1 30 if $verbose
5637 29 2 if (defined $buff and length $buff)
5638 0 29 if (length($buff) + length($Image::ExifTool::exifAPP1hdr) > $maxSegmentLen)
5639 0 0 if ($self->Options('NoMultiExif')) { }
5646 0 29 if ($self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile)
5651 0 0 if $self->{'PREVIEW_INFO'}
5652 0 0 if $self->{'LeicaTrailer'}
5656 0 29 if (not $n) { }
0 58 elsif ($n > 1 and $oldOutfile) { }
5666 182 505 if $dirCount{'Photoshop'}
5667 19 486 if (exists $addDirs->{'Photoshop'} and not defined $doneDir{'Photoshop'})
5669 0 19 if $verbose
5677 19 0 if (defined $buff and length $buff)
5678 0 19 unless &WriteMultiSegment($outfile, 237, $Image::ExifTool::psAPP13hdr, \$buff)
5683 15 490 if $dirCount{'XMP'}
5684 26 464 if (exists $addDirs->{'XMP'} and not defined $doneDir{'XMP'})
5686 0 26 if $verbose
5696 26 0 if (defined $buff and length $buff)
5698 0 26 unless &WriteMultiXMP($self, $outfile, \$buff, $dirInfo{'ExtendedXMP'}, $dirInfo{'ExtendedGUID'})
5702 5 485 if $dirCount{'ICC_Profile'}
5703 3 482 if (exists $addDirs->{'ICC_Profile'} and not defined $doneDir{'ICC_Profile'})
5705 0 3 if $delGroup->{'ICC_Profile'} and $delGroup->{'ICC_Profile'} != 2
5706 0 3 if $verbose
5714 3 0 if (defined $buff and length $buff)
5715 0 3 unless &WriteMultiSegment($outfile, 226, "ICC_PROFILE\0", \$buff, "ICC")
5720 1 484 if $dirCount{'Ducky'}
5721 2 482 if (exists $addDirs->{'Ducky'} and not defined $doneDir{'Ducky'})
5723 0 2 if $verbose
5731 2 0 if (defined $buff and length $buff)
5733 2 0 if ($size <= $maxSegmentLen) { }
5736 0 2 unless &Write($outfile, $app12hdr, "Ducky", $buff)
5743 25 459 if $dirCount{'Adobe'}
5744 0 459 if (exists $addDirs->{'Adobe'} and not defined $doneDir{'Adobe'})
5747 0 0 if ($buff)
5748 0 0 if $verbose
5750 0 0 if ($size <= $maxSegmentLen) { }
5753 0 0 unless &Write($outfile, $app14hdr, $buff)
5761 20 439 if $dirCount{'COM'}
5762 5 434 if (exists $addDirs->{'COM'} and not defined $doneDir{'COM'})
5764 0 5 if $delGroup->{'File'} and $delGroup->{'File'} != 2
5766 5 0 if (defined $newComment)
5767 0 5 if ($verbose)
5771 0 5 unless &WriteMultiSegment($outfile, 254, "", \$newComment)
5784 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) { }
5785 1 107 if $verbose
5786 0 108 unless &Write($outfile, $hdr, $segData)
5790 1 107 if $verbose
5793 0 108 unless &Write($outfile, $hdr, $s, $segData)
5796 104 4 unless $delGroup->{'Trailer'}
5798 92 4 unless ($oldOutfile or $delPreview or $trailInfo or $delGroup->{'Trailer'} or $nvTrail)
5801 0 92 unless &Write($outfile, $buff)
5809 0 16 unless my $n = $raf->Read($buff, 65536)
5810 16 0 if ($endedWithFF and $buff =~ /^\xd9/gs or $buff =~ /\xff\xd9/gs)
5816 0 16 unless &Write($outfile, substr($buff, 0, $pos))
5820 0 0 unless ($n == 65536)
5824 0 0 unless &Write($outfile, $buff)
5825 0 0 substr($buff, 65535, 1) eq "\377" ? :
5830 0 16 if ($nvTrail)
5832 0 0 if ($nvTrail->{'Value'} and $nvTrail->{'Value'}[0]) { }
0 0 elsif ($raf->Seek(0, 2) and $raf->Tell != $endPos) { }
5834 0 0 unless &Write($outfile, $nvTrail->{'Value'}[0])
5843 11 5 if ($trailInfo)
5848 0 11 unless $self->ProcessTrailers($trailInfo)
5850 15 1 if (not $oldOutfile) { }
0 1 elsif ($self->{'LeicaTrailer'}) { }
5854 0 0 if ($trailInfo) { }
5857 0 0 unless $raf->Seek(0, 2)
5872 0 0 defined $dat ? :
5874 0 0 if defined $trailSize
5879 0 0 unless &Write($outfile, $writeBuffer)
5881 0 0 if (defined $dat)
5882 0 0 unless &Write($outfile, $dat)
5887 0 1 $self->{'Make'} =~ /^SONY/i ? :
5888 1 0 if (length $buff < $scanLen)
5890 0 1 if $raf->Read($buf2, $scanLen - length($buff))
5896 0 1 if ($buff =~ /(\xff\xd8\xff.|.\xd8\xff\xdb)(..)/gs)
5900 0 0 if ($self->{'Make'} =~ /^SONY/i and $junkLen > 32)
5903 0 0 if ($jpegHdr eq "\377\330\377\341")
5907 0 0 if (length $buff > $junkLen + $segLen + 6 and substr($buff, $junkLen + $segLen + 3, 3) eq "\330\377\333")
5925 0 1 if $previewInfo->{'Absolute'}
5926 1 0 if ($previewInfo->{'Relative'}) { }
0 0 elsif ($previewInfo->{'ChangeBase'}) { }
5932 0 0 if $makerOffset
5938 0 1 unless &Write($outfile, $writeBuffer)
5941 0 1 if ($previewInfo->{'Data'} ne "LOAD_PREVIEW")
5943 0 0 if $junkLen
5945 0 0 unless &Write($outfile, $previewInfo->{'Data'})
5952 16 0 unless ($delPreview)
5954 11 5 if ($trailInfo) { }
5959 0 5 unless $raf->Seek(0, 2)
5962 3 13 if ($extra > 0)
5963 2 1 if ($delGroup->{'Trailer'}) { }
5964 0 2 if $verbose
5968 0 1 if $verbose
5969 0 1 unless $raf->Seek($endPos, 0)
5970 0 1 unless &CopyBlock($raf, $outfile, $extra)
5975 11 5 if ($trailInfo)
5976 0 11 unless $self->WriteTrailerBuffer($trailInfo, $outfile)
5983 0 2 unless &Write($outfile, "\377\331")
5988 0 0 if $verbose and $marker
5990 0 0 unless &Write($outfile, $hdr)
6000 2 572 if ($verbose)
6002 0 2 if ($verbose > 2 and $markerName =~ /^APP/)
6007 55 519 if ($delGroup->{$dirName})
6008 0 55 if $verbose
6009 4 51 if $dirName eq "ICC_Profile"
6017 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) { }
6018 11 20 if ($$segDataPt =~ /^JFIF\0/) { }
8 12 elsif ($$segDataPt =~ /^JFXX\0\x10/) { }
6 6 elsif ($$segDataPt =~ /^(II|MM).{4}HEAPJPGM/s) { }
6020 0 11 if $delGroup->{'JFIF'}
6021 0 11 unless $editDirs->{'JFIF'}
6033 11 0 if (defined $newData and length $newData)
6038 2 6 if $delGroup->{'JFIF'}
6041 0 6 if $delGroup->{'CIFF'}
6042 2 4 unless $editDirs->{'CIFF'}
6049 4 0 if (Image::ExifTool::CanonRaw::WriteCRW($self, \%dirInfo) > 0)
6050 4 0 if (length $newData) { }
6060 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 =~ /
6062 0 52 if (length $1) { }
0 52 elsif (not $$segDataPt =~ /^Exif\0/) { }
6069 1 51 unless $editDirs->{'IFD0'}
6071 0 51 if (defined $combinedSegData)
6078 0 51 if ($dirOrder[0] eq "ExtendedEXIF")
6080 0 0 unless (defined $combinedSegData)
6087 0 51 if $doneDir{'IFD0'}
6090 1 50 if ($delGroup->{'IFD0'} or $delGroup->{'EXIF'})
6107 50 0 if (defined $buff) { }
6111 0 0 unless $self->Options("IgnoreMinorErrors")
6114 4 46 unless length $$segDataPt
6115 0 46 if (length($$segDataPt) + length($Image::ExifTool::exifAPP1hdr) > $maxSegmentLen)
6116 0 0 if ($self->Options('NoMultiExif')) { }
6123 1 45 if ($self->{'PREVIEW_INFO'} || $self->{'LeicaTrailer'} and not $oldOutfile)
6128 1 0 if $self->{'PREVIEW_INFO'}
6129 0 1 if $self->{'LeicaTrailer'}
6133 0 46 if (not $n) { }
0 92 elsif ($n > 1 and $oldOutfile) { }
6145 0 21 if $delGroup->{'XMP'}
6147 7 14 unless $editDirs->{'XMP'}
6148 3 11 if ($doneDir{'XMP'} + $dirCount{'XMP'} > 1)
6151 2 1 if ($$segDataPt =~ /^$Image::ExifTool::xmpExtAPP1hdr/) { }
6153 0 2 if (length $$segDataPt < 75) { }
6158 0 2 if ($guid =~ /[^A-Za-z0-9]/) { }
6163 1 1 if ($extXMP) { }
6164 0 1 unless $size == $extXMP->{'Size'}
6174 1 0 unless $extendedXMP{'Main'}
6178 2 1 if $dirCount{'XMP'}
6184 1 0 if (/:HasExtendedXMP\s*(=\s*['"]|>)(\w{32})/)
6187 0 1 if ($goodGuid and $goodGuid ne $2)
6196 1 0 if $readGuid eq 1
6198 1 1 unless length $guid == 32
6199 0 1 if ($guid ne $readGuid and $readGuid ne 2)
6200 0 0 $guid eq $goodGuid ? :
6204 0 1 if ($guid ne $goodGuid)
6208 0 1 unless ref $extXMP eq "HASH"
6212 0 2 unless defined $extXMP->{$off}
6216 1 0 if ($off == $size) { }
6223 0 1 if $extendedXMP{'Error'}
6235 9 3 if (defined $newData) { }
6237 7 2 if (length $newData) { }
6240 0 7 unless &WriteMultiXMP($self, $outfile, \$newData, $dirInfo{'ExtendedXMP'}, $dirInfo{'ExtendedGUID'})
6247 0 3 if $verbose
6248 0 3 if ($doneDir{'XMP'} > 1)
6252 0 0 unless length $dat
6254 0 0 unless &Write($outfile, $hdr, $s, $Image::ExifTool::xmpAPP1hdr, $dat)
6257 0 0 unless length $guid == 32
6259 0 0 unless ref $extXMP eq "HASH"
6260 0 0 unless my $size = $extXMP->{'Size'}
6264 0 0 unless &Write($outfile, $hdr, $s, $Image::ExifTool::xmpExtAPP1hdr, $guid, pack("N2", $size, $off), $extXMP->{$off})
6273 2 3 unless length $$segDataPt
6278 0 0 if ($$segDataPt =~ /^ICC_PROFILE\0/ and $length >= 14) { }
0 0 elsif ($$segDataPt =~ /^FPXR\0/) { }
0 0 elsif ($$segDataPt =~ /^MPF\0/) { }
6280 0 0 if $delGroup->{'ICC_Profile'}
6284 0 0 if (defined $iccChunksTotal) { }
6286 0 0 if ($chunksTot != $iccChunksTotal and defined $iccChunkCount)
6296 0 0 unless $chunksTot
6298 0 0 if (defined $iccChunkCount) { }
0 0 elsif (defined $chunkNum) { }
6300 0 0 if (defined $iccChunk[$chunkNum]) { }
6307 0 0 unless ++$iccChunkCount >= $iccChunksTotal
6326 0 0 if (defined $newData)
6330 0 0 unless length $$segDataPt
6332 0 0 unless &WriteMultiSegment($outfile, $marker, "ICC_PROFILE\0", $segDataPt, "ICC")
6341 0 0 if $delGroup->{'FlashPix'}
6344 0 0 if $delGroup->{'MPF'}
6347 1 0 if ($$segDataPt =~ /^(Meta|META|Exif)\0\0/)
6349 0 1 if $delGroup->{'Meta'}
6350 0 1 if $doneDir{'Meta'}
6352 0 1 unless $editDirs->{'Meta'}
6365 1 0 if (defined $buff) { }
6369 0 0 unless $self->Options("IgnoreMinorErrors")
6372 0 1 unless length $$segDataPt > 6
6375 0 0 if ($$segDataPt =~ /^RMETA\0/)
6377 0 0 if $delGroup->{'RMETA'}
6380 1 0 if ($$segDataPt =~ /^Ducky/)
6382 0 1 if $delGroup->{'Ducky'}
6383 0 1 if $doneDir{'Ducky'}
6385 0 1 unless $editDirs->{'Ducky'}
6396 1 0 if (defined $newData)
6399 0 1 if length $newData
6402 1 0 unless length $$segDataPt
6405 8 1 if ($$segDataPt =~ /^$Image::ExifTool::psAPP13hdr/)
6408 0 8 if (defined $combinedSegData)
6414 0 8 if ($dirOrder[0] eq "Photoshop")
6416 0 0 unless defined $combinedSegData
6419 0 8 if ($doneDir{'Photoshop'})
6423 0 0 if $delGroup->{'Photoshop'}
6437 8 0 if (defined $newData)
6441 2 6 unless length $$segDataPt
6443 0 6 unless &WriteMultiSegment($outfile, $marker, $Image::ExifTool::psAPP13hdr, $segDataPt)
6449 4 0 if ($$segDataPt =~ /^Adobe/)
6452 0 4 if ($delGroup->{'Adobe'} or $editDirs->{'Adobe'})
6459 4 0 unless ($doneDir{'COM'})
6461 3 1 unless ($delGroup->{'File'} and $delGroup->{'File'} != 2)
6466 3 0 if ($self->IsOverwriting($nvHash, $val) or $delGroup->{'File'}) { }
6475 2 2 if (defined $newComment) { }
6478 0 2 unless &WriteMultiSegment($outfile, 254, "", \$newComment)
6480 0 2 if $verbose
6489 13 10 if ($del or $delGroup->{'*'} and not $segType and $marker >= 224 and $marker <= 239)
6490 1 12 unless $segType
6491 0 13 if $verbose
6496 441 4 if (defined $segDataPt and defined $$segDataPt)
6500 0 441 if ($size > $maxSegmentLen) { }
6501 0 0 unless $segType
6506 0 441 unless &Write($outfile, $hdr, $s, $$segDataPt)
6513 0 110 if defined $iccChunkCount
6514 2 108 if @$path > $pn
6516 0 110 if $oldOutfile
6517 110 0 if ($rtnVal)
6520 3 107 if $trailPt
6523 0 110 if $rtnVal and $err
6524 0 1 if ($creatingEXV and $rtnVal > 0 and not $self->{'CHANGED'})
6538 25 66 if (length $$valPtr and not $$valPtr =~ /^\xff\xd8/ and not $self->Options("IgnoreMinorErrors"))
6557 2449 16561 if ($format eq "string" or $format eq "undef")
6558 2134 315 unless $count and $count > 0
6560 213 102 if ($format eq 'string') { }
6561 10 203 if $len >= $count
6563 0 102 if $len > $count
6565 246 59 if ($len < $count)
6570 1922 14639 if ($count and $count != 1) { }
6572 126 1796 if $count < 0
6577 913 15629 if (@vals != $count)
6578 3 910 @vals > $count ? :
6583 17210 1364 if ($format =~ /^int/) { }
1343 21 elsif ($format =~ /^rational/ or $format eq 'float' or $format eq 'double') { }
6585 3009 14201 unless (&IsInt($val))
6586 6 3003 if (&IsHex($val)) { }
6590 1737 1266 unless &IsFloat($val) and $count == 1
6591 20 1246 $val < 0 ? :
6594 0 15473 unless my $rng = $intRange{$format}
6595 301 15172 if $val < $rng->[0]
6597 4 15168 if $val > $rng->[1] and $val != 4277010157
6600 263 1080 unless (&IsFloat($val))
6602 227 36 if ($format =~ /^rational/)
6603 1 226 if $val eq "inf" or $val eq "undef"
6604 70 156 if ($val =~ m[^([-+]?\d+)/(\d+)$])
6605 70 0 unless $1 < 0 and $format =~ /u$/
6611 0 1080 if ($format =~ /^rational\d+u$/ and $val < 0)
6627 4400 7358 unless ($format)
6629 3099 1301 if ($table and $table->{'FORMAT'}) { }
6637 1636 10122 if ($format =~ /(.*)\[(.*)\]/)
6641 0 1636 if $count =~ /\$size/
6655 0 3 if ($self->EncodeFileName($old)) { }
0 3 elsif ($self->EncodeFileName($new)) { }
6664 0 3 if ($winUni) { }
6671 3 0 if $result or $^O ne "MSWin32"
6675 0 0 if $try > 50
6691 0 0 if ($self->EncodeFileName($file)) { }
6692 0 0 if eval { do { Win32API::File::DeleteFileW($file) } }
6694 0 0 if unlink $file
6714 0 0 unless (ref $file)
6716 0 0 unless ($self->Open(\*FH, $file, "+<"))
6718 0 0 if (defined $atime or defined $mtime)
6720 0 0 unless defined $atime
6721 0 0 unless defined $mtime
6722 0 0 if defined $atime and defined $mtime
6724 0 0 unless $success
6731 0 0 if ($^O eq "MSWin32")
6732 0 0 if (not eval { do { require Win32::API } }) { }
0 0 elsif (not eval { do { require Win32API::File } }) { }
6739 0 0 unless ($win32Handle)
6747 0 0 unless defined $time
6754 0 0 unless ($k32SetFileTime)
6755 0 0 if defined $k32SetFileTime
6757 0 0 unless ($k32SetFileTime)
6763 0 0 unless ($k32SetFileTime->Call($win32Handle, $ctime, $atime, $mtime))
6771 0 0 if (defined $atime and defined $mtime)
6778 0 0 if $success or not defined $saveFile
6783 0 0 unless ($noWarn)
6784 0 0 if ($@ or $Image::ExifTool::evalWarning) { }
0 0 elsif (not $success) { }
6804 69 53 unless $size > 0
6805 0 53 $size > 65536 ? :
6806 0 53 unless $raf->Read($buff, $n) == $n
6807 0 53 unless &Write($outfile, $buff)
6825 13 0 if $num
6828 0 24 unless $raf->Seek($pos, 0)
6830 0 0 defined $result ? :
0 24 unless $result
6832 3 21 if $pad
6833 0 24 if $err
6835 0 13 if ($err)
6849 14339 450 unless $self
6852 0 450 unless my $dataPt = $dirInfo->{'DataPt'}
6855 0 450 unless ($increment)
6861 192 258 if ($tagTablePtr->{'DATAMEMBER'})
6870 0 450 unless my $newData = substr($$dataPt, $dirStart, $dirLen)
6879 22 205 if (ref $tagTablePtr->{$tagID} eq "ARRAY" or $tagInfo->{'Condition'})
6881 9 13 unless $writeInfo and $writeInfo eq $tagInfo
6891 87 131 if ($format) { }
6892 36 51 if ($format =~ /(.*)\[(.*)\]/) { }
1 50 elsif ($format eq 'string') { }
6899 0 36 if $@
6902 1 0 $dirLen > $entry ? :
6908 6 212 if @varInfo and $varInfo[0][0] == $tagID
6910 3 215 unless defined $val
6912 1 214 unless $self->IsOverwriting($nvHash, $val) > 0
6914 1 213 unless defined $newVal
6916 6 207 if $tagInfo->{'DataMember'}
6919 1 212 if $mask
6921 0 213 if ($tagInfo->{'DataTag'} and not $tagInfo->{'IsOffset'})
6922 0 0 unless $newVal == 4277010157
6924 0 0 if defined $data
6926 0 0 if ($format =~ /^int16/ and $newVal > 65535)
6931 213 0 if (defined $rtnVal)
6938 1 0 if ($tagTablePtr->{'IS_OFFSET'} and $dirInfo->{'Fixup'})
6944 0 1 unless $tagInfo = $self->GetTagInfo($tagTablePtr, $tagID)
6950 1 0 unless $entry <= $dirLen - 4
6955 0 0 unless $offset
6959 0 0 unless $self->{'FILE_TYPE'} eq "JPEG" and $tagInfo->{'DataTag'} and $tagInfo->{'DataTag'} eq "PreviewImage" and defined $tagInfo->{'OffsetPair'}
6967 0 0 unless $previewInfo
6970 0 0 unless $format eq "int32u"
6971 0 0 if $tagInfo->{'IsOffset'} and $tagInfo->{'IsOffset'} eq 3
6974 0 0 unless (defined $previewInfo->{'Data'})
6975 0 0 if ($offset >= 0 and $offset + $size <= $dirInfo->{'DataLen'}) { }
6984 12 438 if ($tagTablePtr->{'IS_SUBDIR'})
6990 9 4 unless defined $tagInfo
6996 0 4 if $entry >= $dirLen
6998 0 4 unless ($tagInfo)
7000 0 0 if $more > 128
7003 0 0 unless $tagInfo
7005 0 4 unless $tagInfo->{'SubDirectory'}
7009 4 0 if defined $dat and length $dat
7022 0 111 unless $self
7025 111 0 if $self->ProcessTIFF($dirInfo, $tagTablePtr) > 0