exiftool_vendored 12.35.0 → 12.39.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +59 -4
  3. data/bin/MANIFEST +1 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -45
  7. data/bin/exiftool +79 -59
  8. data/bin/lib/File/RandomAccess.pm +1 -1
  9. data/bin/lib/File/RandomAccess.pod +2 -2
  10. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  11. data/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  12. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  13. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  14. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  15. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  16. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  17. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  18. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  19. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  20. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  21. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +10 -4
  23. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Canon.pm +143 -10
  25. data/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  26. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  27. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  28. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  29. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  30. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  31. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  32. data/bin/lib/Image/ExifTool/DJI.pm +1 -1
  33. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  34. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
  37. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  38. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  39. data/bin/lib/Image/ExifTool/Exif.pm +22 -2
  40. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  41. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  42. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  43. data/bin/lib/Image/ExifTool/FLIR.pm +16 -4
  44. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  45. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  46. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  47. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  48. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  49. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  50. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  51. data/bin/lib/Image/ExifTool/GIF.pm +6 -2
  52. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  53. data/bin/lib/Image/ExifTool/GPS.pm +15 -11
  54. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  55. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  56. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  57. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  58. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  59. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  60. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  61. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  62. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  63. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  64. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  65. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  66. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  67. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  68. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  69. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  71. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  72. data/bin/lib/Image/ExifTool/Jpeg2000.pm +4 -1
  73. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  74. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  76. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  84. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  96. data/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  97. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  98. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  99. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  100. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  101. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  102. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  103. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  104. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  105. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  106. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  107. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  109. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  110. data/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  111. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  112. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  114. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  115. data/bin/lib/Image/ExifTool/Nikon.pm +1870 -83
  116. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  117. data/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
  118. data/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
  119. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  120. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  122. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  123. data/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  124. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  125. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  126. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  127. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  128. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  129. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  130. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  131. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  132. data/bin/lib/Image/ExifTool/PNG.pm +29 -8
  133. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  134. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  135. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  138. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  139. data/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  140. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  143. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  145. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  147. data/bin/lib/Image/ExifTool/QuickTime.pm +4 -3
  148. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +40 -4
  149. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  150. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  151. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  152. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  153. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  155. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  156. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  158. data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  159. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  160. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  161. data/bin/lib/Image/ExifTool/Shift.pl +3 -1
  162. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  163. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  164. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Sony.pm +1 -1
  166. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  168. data/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
  169. data/bin/lib/Image/ExifTool/TagLookup.pm +6496 -5895
  170. data/bin/lib/Image/ExifTool/TagNames.pod +1507 -43
  171. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  172. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  175. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  177. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  178. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  179. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  180. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  181. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  182. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  183. data/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  184. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  185. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  186. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +2 -1
  187. data/bin/lib/Image/ExifTool/WriteXMP.pl +11 -12
  188. data/bin/lib/Image/ExifTool/Writer.pl +12 -8
  189. data/bin/lib/Image/ExifTool/XMP.pm +149 -45
  190. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  191. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  192. data/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  193. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  194. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  195. data/bin/lib/Image/ExifTool.pm +24 -10
  196. data/bin/lib/Image/ExifTool.pod +64 -63
  197. data/bin/perl-Image-ExifTool.spec +43 -43
  198. data/lib/exiftool_vendored/version.rb +1 -1
  199. metadata +2 -2
@@ -2586,7 +2586,7 @@ Definitions for PLUS (Picture Licensing Universal System) tags.
2586
2586
 
2587
2587
  =head1 AUTHOR
2588
2588
 
2589
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2589
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2590
2590
 
2591
2591
  This library is free software; you can redistribute it and/or modify it
2592
2592
  under the same terms as Perl itself.
@@ -36,7 +36,7 @@ use strict;
36
36
  use vars qw($VERSION $AUTOLOAD %stdCase);
37
37
  use Image::ExifTool qw(:DataAccess :Utils);
38
38
 
39
- $VERSION = '1.59';
39
+ $VERSION = '1.60';
40
40
 
41
41
  sub ProcessPNG_tEXt($$$);
42
42
  sub ProcessPNG_iTXt($$$);
@@ -142,11 +142,14 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
142
142
  },
143
143
  gAMA => {
144
144
  Name => 'Gamma',
145
+ Writable => 1,
146
+ Protected => 1,
145
147
  Notes => q{
146
148
  ExifTool reports the gamma for decoding the image, which is consistent with
147
149
  the EXIF convention, but is the inverse of the stored encoding gamma
148
150
  },
149
151
  ValueConv => 'my $a=unpack("N",$val);$a ? int(1e9/$a+0.5)/1e4 : $val',
152
+ ValueConvInv => 'pack("N", int(1e5/$val+0.5))',
150
153
  },
151
154
  gIFg => {
152
155
  Name => 'GIFGraphicControlExtension',
@@ -166,7 +169,10 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
166
169
  },
167
170
  iCCP => {
168
171
  Name => 'ICC_Profile',
169
- Notes => 'this is where ExifTool will write a new ICC_Profile',
172
+ Notes => q{
173
+ this is where ExifTool will write a new ICC_Profile. When creating a new
174
+ ICC_Profile, the SRGBRendering tag should be deleted if it exists
175
+ },
170
176
  SubDirectory => {
171
177
  TagTable => 'Image::ExifTool::ICC_Profile::Main',
172
178
  ProcessProc => \&ProcessPNG_Compressed,
@@ -174,7 +180,12 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
174
180
  },
175
181
  'iCCP-name' => {
176
182
  Name => 'ProfileName',
177
- Notes => 'not a real tag ID, this tag represents the iCCP profile name',
183
+ Writable => 1,
184
+ FakeTag => 1, # (not a real PNG tag, so don't try to write it)
185
+ Notes => q{
186
+ not a real tag ID, this tag represents the iCCP profile name, and may only
187
+ be written when the ICC_Profile is written
188
+ },
178
189
  },
179
190
  # IDAT
180
191
  # IEND
@@ -227,7 +238,11 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
227
238
  },
228
239
  sRGB => {
229
240
  Name => 'SRGBRendering',
241
+ Writable => 1,
242
+ Protected => 1,
243
+ Notes => 'this chunk should not be present if an iCCP chunk exists',
230
244
  ValueConv => 'unpack("C",$val)',
245
+ ValueConvInv => 'pack("C",$val)',
231
246
  PrintConv => {
232
247
  0 => 'Perceptual',
233
248
  1 => 'Relative Colorimetric',
@@ -259,6 +274,7 @@ my %noLeapFrog = ( SAVE => 1, SEEK => 1, IHDR => 1, JHDR => 1, IEND => 1, MEND =
259
274
  },
260
275
  tRNS => {
261
276
  Name => 'Transparency',
277
+ # may have as many entries as the PLTE table, but who wants to see all that?
262
278
  ValueConv => q{
263
279
  return \$val if length($val) > 6;
264
280
  join(" ",unpack($Image::ExifTool::PNG::colorType == 3 ? "C*" : "n*", $val));
@@ -1158,11 +1174,16 @@ sub ProcessPNG_Compressed($$$)
1158
1174
  if ($tagInfo and $$tagInfo{Name} eq 'ICC_Profile') {
1159
1175
  $et->VerboseDir('iCCP');
1160
1176
  $tagTablePtr = \%Image::ExifTool::PNG::Main;
1161
- if (length($tag) and not $outBuff) {
1162
- FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag);
1163
- }
1177
+ FoundPNG($et, $tagTablePtr, 'iCCP-name', $tag) if length($tag) and not $outBuff;
1164
1178
  $success = FoundPNG($et, $tagTablePtr, 'iCCP', $val, $compressed, $outBuff);
1165
- $$outBuff = $hdr . $$outBuff if $outBuff and $$outBuff;
1179
+ if ($outBuff and $$outBuff) {
1180
+ my $profileName = $et->GetNewValue($Image::ExifTool::PNG::Main{'iCCP-name'});
1181
+ if (defined $profileName) {
1182
+ $hdr = $profileName . substr($hdr, length $tag);
1183
+ $et->VerboseValue("+ PNG:ProfileName", $profileName);
1184
+ }
1185
+ $$outBuff = $hdr . $$outBuff;
1186
+ }
1166
1187
  } else {
1167
1188
  $success = FoundPNG($et, $tagTablePtr, $tag, $val, $compressed, $outBuff, 'Latin');
1168
1189
  }
@@ -1540,7 +1561,7 @@ and JNG (JPEG Network Graphics) images.
1540
1561
 
1541
1562
  =head1 AUTHOR
1542
1563
 
1543
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1564
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1544
1565
 
1545
1566
  This library is free software; you can redistribute it and/or modify it
1546
1567
  under the same terms as Perl itself.
@@ -143,7 +143,7 @@ BitMap) images.
143
143
 
144
144
  =head1 AUTHOR
145
145
 
146
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
146
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
147
147
 
148
148
  This library is free software; you can redistribute it and/or modify it
149
149
  under the same terms as Perl itself.
@@ -284,7 +284,7 @@ information from Paint Shop Pro images.
284
284
 
285
285
  =head1 AUTHOR
286
286
 
287
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
287
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
288
288
 
289
289
  This library is free software; you can redistribute it and/or modify it
290
290
  under the same terms as Perl itself.
@@ -379,7 +379,7 @@ KF7 and KF8 books (AZW and AZW3).
379
379
 
380
380
  =head1 AUTHOR
381
381
 
382
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
383
383
 
384
384
  This library is free software; you can redistribute it and/or modify it
385
385
  under the same terms as Perl itself.
@@ -2837,7 +2837,7 @@ Panasonic and Leica maker notes in EXIF information.
2837
2837
 
2838
2838
  =head1 AUTHOR
2839
2839
 
2840
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2840
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2841
2841
 
2842
2842
  This library is free software; you can redistribute it and/or modify it
2843
2843
  under the same terms as Perl itself.
@@ -888,7 +888,7 @@ write meta information in Panasonic/Leica RAW, RW2 and RWL images.
888
888
 
889
889
  =head1 AUTHOR
890
890
 
891
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
891
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
892
892
 
893
893
  This library is free software; you can redistribute it and/or modify it
894
894
  under the same terms as Perl itself.
@@ -731,7 +731,7 @@ timed metadata from the 'mett' frame found in Parrot drone MP4 videos.
731
731
 
732
732
  =head1 AUTHOR
733
733
 
734
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
734
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
735
735
 
736
736
  This library is free software; you can redistribute it and/or modify it
737
737
  under the same terms as Perl itself.
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
58
58
  use Image::ExifTool::GPS;
59
59
  use Image::ExifTool::HP;
60
60
 
61
- $VERSION = '3.39';
61
+ $VERSION = '3.40';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -340,6 +340,7 @@ sub DecodeAFPoints($$$$;$);
340
340
  '8 64' => 'HD PENTAX-D FA* 50mm F1.4 SDM AW', #27
341
341
  '8 65' => 'HD PENTAX-D FA 70-210mm F4 ED SDM WR', #PH
342
342
  '8 66' => 'HD PENTAX-D FA 85mm F1.4 ED SDM AW', #James O'Neill
343
+ '8 67' => 'HD PENTAX-D FA 21mm F2.4 ED Limited DC WR', #ChristianShulz
343
344
  '8 195' => 'HD PENTAX DA* 16-50mm F2.8 ED PLM AW', #27
344
345
  '8 196' => 'HD PENTAX-DA* 11-18mm F2.8 ED DC AW', #29
345
346
  '8 197' => 'HD PENTAX-DA 55-300mm F4.5-6.3 ED PLM WR RE', #29
@@ -6314,7 +6315,7 @@ tags, and everyone who helped contribute to the LensType values.
6314
6315
 
6315
6316
  =head1 AUTHOR
6316
6317
 
6317
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
6318
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
6318
6319
 
6319
6320
  This library is free software; you can redistribute it and/or modify it
6320
6321
  under the same terms as Perl itself.
@@ -712,7 +712,7 @@ One maker notes.
712
712
 
713
713
  =head1 AUTHOR
714
714
 
715
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
715
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
716
716
 
717
717
  This library is free software; you can redistribute it and/or modify it
718
718
  under the same terms as Perl itself.
@@ -484,7 +484,7 @@ information from Kodak Photo CD Image Pac (PCD) files.
484
484
 
485
485
  =head1 AUTHOR
486
486
 
487
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
487
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
488
488
 
489
489
  This library is free software; you can redistribute it and/or modify it
490
490
  under the same terms as Perl itself.
@@ -236,7 +236,7 @@ write information written by the Camera Bits Photo Mechanic software.
236
236
 
237
237
  =head1 AUTHOR
238
238
 
239
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
239
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
240
240
 
241
241
  This library is free software; you can redistribute it and/or modify it
242
242
  under the same terms as Perl itself.
@@ -1143,7 +1143,7 @@ be preserved when copying Photoshop information via user-defined tags.
1143
1143
 
1144
1144
  =head1 AUTHOR
1145
1145
 
1146
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1146
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1147
1147
 
1148
1148
  This library is free software; you can redistribute it and/or modify it
1149
1149
  under the same terms as Perl itself.
@@ -777,7 +777,7 @@ This code reads meta information from EPS (Encapsulated PostScript), PS
777
777
 
778
778
  =head1 AUTHOR
779
779
 
780
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
780
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
781
781
 
782
782
  This library is free software; you can redistribute it and/or modify it
783
783
  under the same terms as Perl itself.
@@ -112,7 +112,7 @@ Print Image Matching meta information.
112
112
 
113
113
  =head1 AUTHOR
114
114
 
115
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
115
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
116
116
 
117
117
  This library is free software; you can redistribute it and/or modify it
118
118
  under the same terms as Perl itself.
@@ -1331,7 +1331,7 @@ information from the APP7 Qualcomm segment in JPEG images.
1331
1331
 
1332
1332
  =head1 AUTHOR
1333
1333
 
1334
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1334
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1335
1335
 
1336
1336
  This library is free software; you can redistribute it and/or modify it
1337
1337
  under the same terms as Perl itself.
@@ -47,7 +47,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
47
47
  use Image::ExifTool::Exif;
48
48
  use Image::ExifTool::GPS;
49
49
 
50
- $VERSION = '2.72';
50
+ $VERSION = '2.73';
51
51
 
52
52
  sub ProcessMOV($$;$);
53
53
  sub ProcessKeys($$$);
@@ -6370,7 +6370,7 @@ my %eeBox2 = (
6370
6370
  'player.movie.visual.tint' => 'Tint',
6371
6371
  'player.movie.visual.contrast' => 'Contrast',
6372
6372
  'player.movie.audio.gain' => 'AudioGain',
6373
- 'player.movie.audio.treble' => 'Trebel',
6373
+ 'player.movie.audio.treble' => 'Treble',
6374
6374
  'player.movie.audio.bass' => 'Bass',
6375
6375
  'player.movie.audio.balance' => 'Balance',
6376
6376
  'player.movie.audio.pitchshift' => 'PitchShift',
@@ -6465,6 +6465,7 @@ my %eeBox2 = (
6465
6465
  %Image::ExifTool::QuickTime::iTunesInfo = (
6466
6466
  PROCESS_PROC => \&ProcessMOV,
6467
6467
  GROUPS => { 1 => 'iTunes', 2 => 'Audio' },
6468
+ VARS => { LONG_TAGS => 0 }, # (hack for discrepancy in the way long tags are counted in BuildTagLookup)
6468
6469
  NOTES => q{
6469
6470
  ExifTool will extract any iTunesInfo tags that exist, even if they are not
6470
6471
  defined in this table. These tags belong to the family 1 "iTunes" group,
@@ -9684,7 +9685,7 @@ information from QuickTime and MP4 video, M4A audio, and HEIC image files.
9684
9685
 
9685
9686
  =head1 AUTHOR
9686
9687
 
9687
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
9688
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9688
9689
 
9689
9690
  This library is free software; you can redistribute it and/or modify it
9690
9691
  under the same terms as Perl itself.
@@ -99,7 +99,7 @@ my %insvLimit = (
99
99
  The tags below are extracted from timed metadata in QuickTime and other
100
100
  formats of video files when the ExtractEmbedded option is used. Although
101
101
  most of these tags are combined into the single table below, ExifTool
102
- currently reads 58 different formats of timed GPS metadata from video files.
102
+ currently reads 59 different formats of timed GPS metadata from video files.
103
103
  },
104
104
  VARS => { NO_ID => 1 },
105
105
  GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
@@ -1527,7 +1527,7 @@ sub ProcessFreeGPS($$$)
1527
1527
  $spd = $9 * $knotsToKph if length $9;
1528
1528
  $trk = $10 if length $10;
1529
1529
 
1530
- } elsif ($$dataPt =~ /^.{16}YndAkasoCar/s) {
1530
+ } elsif ($$dataPt =~ /^.{64}[\x01-\x0c]\0{3}[\x01-\x1f]\0{3}A[NS][EW]\0/s) {
1531
1531
 
1532
1532
  # Akaso V1 dascham
1533
1533
  # 0000: 00 00 80 00 66 72 65 65 47 50 53 20 78 00 00 00 [....freeGPS x...]
@@ -1539,6 +1539,17 @@ sub ProcessFreeGPS($$$)
1539
1539
  # 0060: 4b dc c8 41 9a 79 a7 43 34 58 43 31 4f 37 31 35 [K..A.y.C4XC1O715]
1540
1540
  # 0070: 35 31 32 36 36 35 37 35 59 4e 44 53 0d e7 cc f9 [51266575YNDS....]
1541
1541
  # 0080: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 [................]
1542
+ # Redtiger F7N dashcam
1543
+ # 0000: 00 00 40 00 66 72 65 65 47 50 53 20 f0 01 00 00 [..@.freeGPS ....]
1544
+ # 0010: 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
1545
+ # 0020: 01 00 00 00 b0 56 50 01 7b 18 68 45 17 02 3f 46 [.....VP.{.hE..?F]
1546
+ # 0030: 13 00 00 00 01 00 00 00 06 00 00 00 15 00 00 00 [................]
1547
+ # 0040: 0c 00 00 00 1c 00 00 00 41 4e 57 00 00 00 00 00 [........ANW.....]
1548
+ # 0050: 80 d4 26 4e 36 11 b5 40 74 b5 15 7b cd 7b f3 40 [..&N6..@t..{.{.@]
1549
+ # 0060: 0a d7 a3 3d cd 4c 4e 43 38 34 37 41 45 48 31 36 [...=.LNC847AEH16]
1550
+ # 0070: 33 36 30 38 32 34 35 37 59 53 4b 4a 01 00 00 00 [36082457YSKJ....]
1551
+ # 0080: ec ff ff ff 00 00 00 00 0e 00 00 00 01 00 00 00 [................]
1552
+ # 0090: 0a 00 00 00 e5 07 00 00 0c 00 00 00 1c 00 00 00 [................]
1542
1553
  ($hr,$min,$sec,$yr,$mon,$day,$stat,$latRef,$lonRef) =
1543
1554
  unpack('x48V6a1a1a1x1', $$dataPt);
1544
1555
  # ignore invalid fixes
@@ -1581,6 +1592,31 @@ sub ProcessFreeGPS($$$)
1581
1592
  substr($time,7,6) = pack 'C*', map { $_ ^= 0x70 } unpack 'C*', substr($time,7,6);
1582
1593
  # (other values are currently unknown)
1583
1594
 
1595
+ } elsif ($$dataPt =~ /^.{64}A([NS])([EW])\0/s) {
1596
+
1597
+ # Vantrue S1 dashcam
1598
+ # 0000: 00 00 80 00 66 72 65 65 47 50 53 20 78 00 00 00 [....freeGPS x...]
1599
+ # 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
1600
+ # 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [................]
1601
+ # 0030: 68 6f 72 73 6f 6e 74 65 63 68 00 00 00 00 00 00 [horsontech......]
1602
+ # 0040: 41 4e 45 00 15 00 00 00 07 00 00 00 02 00 00 00 [ANE.............]
1603
+ # 0050: 03 00 00 00 35 00 00 00 05 00 00 00 4f 74 4c 44 [....5.......OtLD]
1604
+ # 0060: e2 77 a0 45 89 c1 98 42 71 bd ac 42 02 ab 0d 43 [.w.E...Bq..B...C]
1605
+ # 0070: 05 00 00 00 7f 00 00 00 07 01 00 00 00 00 00 00 [................]
1606
+ ($latRef, $lonRef) = ($1, $2);
1607
+ ($yr,$mon,$day,$hr,$min,$sec,@acc) = unpack('x68V6x20V3', $$dataPt);
1608
+ return 0 unless $mon>=1 and $mon<=12 and $day>=1 and $day<=31;
1609
+ $yr += 2000 if $yr < 2000;
1610
+ # (not sure about acc scaling)
1611
+ map { $_ = $_ - 4294967296 if $_ >= 0x80000000; $_ /= 1000 } @acc;
1612
+ SetByteOrder('II');
1613
+ $lon = GetFloat($dataPt, 0x5c);
1614
+ $lat = GetFloat($dataPt, 0x60);
1615
+ $spd = GetFloat($dataPt, 0x64) * $knotsToKph;
1616
+ $trk = GetFloat($dataPt, 0x68);
1617
+ $alt = GetFloat($dataPt, 0x6c);
1618
+ SetByteOrder('MM');
1619
+
1584
1620
  } else {
1585
1621
 
1586
1622
  # decode binary GPS format (Viofo A119S, ref 2)
@@ -2547,7 +2583,7 @@ sub ProcessInsta360($;$)
2547
2583
  my $trailerLen = unpack('x38V', $buff);
2548
2584
  $trailerLen > $fileEnd and $et->Warn('Bad Insta360 trailer size'), return 0;
2549
2585
  if ($dirInfo) {
2550
- $$dirInfo{DirLen} = $trailerLen if $dirInfo;
2586
+ $$dirInfo{DirLen} = $trailerLen;
2551
2587
  $$dirInfo{DataPos} = $fileEnd - $trailerLen;
2552
2588
  if ($$dirInfo{OutFile}) {
2553
2589
  if ($$et{DEL_GROUP}{Insta360}) {
@@ -2830,7 +2866,7 @@ information like GPS tracks from MOV, MP4 and INSV media data.
2830
2866
 
2831
2867
  =head1 AUTHOR
2832
2868
 
2833
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2869
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2834
2870
 
2835
2871
  This library is free software; you can redistribute it and/or modify it
2836
2872
  under the same terms as Perl itself.
@@ -2029,7 +2029,7 @@ including AVI videos, WAV audio files and WEBP images.
2029
2029
 
2030
2030
  =head1 AUTHOR
2031
2031
 
2032
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
2032
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2033
2033
 
2034
2034
  This library is free software; you can redistribute it and/or modify it
2035
2035
  under the same terms as Perl itself.
@@ -225,7 +225,7 @@ resource files.
225
225
 
226
226
  =head1 AUTHOR
227
227
 
228
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
228
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
229
229
 
230
230
  This library is free software; you can redistribute it and/or modify it
231
231
  under the same terms as Perl itself.
@@ -366,7 +366,7 @@ information from RTF (Rich Text Format) documents.
366
366
 
367
367
  =head1 AUTHOR
368
368
 
369
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
369
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
370
370
 
371
371
  This library is free software; you can redistribute it and/or modify it
372
372
  under the same terms as Perl itself.
@@ -125,7 +125,7 @@ images are a type of high dynamic-range image.
125
125
 
126
126
  =head1 AUTHOR
127
127
 
128
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
128
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
129
129
 
130
130
  This library is free software; you can redistribute it and/or modify it
131
131
  under the same terms as Perl itself.
@@ -168,7 +168,7 @@ information from Rawzor compressed images.
168
168
 
169
169
  =head1 AUTHOR
170
170
 
171
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
171
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
172
172
 
173
173
  This library is free software; you can redistribute it and/or modify it
174
174
  under the same terms as Perl itself.
@@ -715,7 +715,7 @@ little-endian, but the Real format is big-endian.
715
715
 
716
716
  =head1 AUTHOR
717
717
 
718
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
718
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
719
719
 
720
720
  This library is free software; you can redistribute it and/or modify it
721
721
  under the same terms as Perl itself.
@@ -431,7 +431,7 @@ maker notes in images from Reconyx cameras.
431
431
 
432
432
  =head1 AUTHOR
433
433
 
434
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
434
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
435
435
 
436
436
  This library is free software; you can redistribute it and/or modify it
437
437
  under the same terms as Perl itself.
@@ -303,7 +303,7 @@ from Redcode R3D version 1 and 2 video files.
303
303
 
304
304
  =head1 AUTHOR
305
305
 
306
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
306
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
307
307
 
308
308
  This library is free software; you can redistribute it and/or modify it
309
309
  under the same terms as Perl itself.
@@ -1143,7 +1143,7 @@ interpret Ricoh maker notes EXIF meta information.
1143
1143
 
1144
1144
  =head1 AUTHOR
1145
1145
 
1146
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1146
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1147
1147
 
1148
1148
  This library is free software; you can redistribute it and/or modify it
1149
1149
  under the same terms as Perl itself.
@@ -1485,7 +1485,7 @@ Samsung maker notes in EXIF information.
1485
1485
 
1486
1486
  =head1 AUTHOR
1487
1487
 
1488
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
1488
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1489
1489
 
1490
1490
  This library is free software; you can redistribute it and/or modify it
1491
1491
  under the same terms as Perl itself.
@@ -419,7 +419,7 @@ Sanyo maker notes in EXIF information.
419
419
 
420
420
  =head1 AUTHOR
421
421
 
422
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
422
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
423
423
 
424
424
  This library is free software; you can redistribute it and/or modify it
425
425
  under the same terms as Perl itself.
@@ -128,7 +128,7 @@ metadata from the JPEG APP4 SCALADO segment.
128
128
 
129
129
  =head1 AUTHOR
130
130
 
131
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
131
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
132
132
 
133
133
  This library is free software; you can redistribute it and/or modify it
134
134
  under the same terms as Perl itself.
@@ -304,6 +304,8 @@ sub ShiftTime($;$$$)
304
304
  $mode = defined $time[3] ? 'DateTime' : 'Date';
305
305
  } elsif (defined $time[3]) {
306
306
  $mode = 'Time';
307
+ } else {
308
+ $mode = '';
307
309
  }
308
310
  # get number of digits after the seconds decimal point
309
311
  if (defined $time[5] and $time[5] =~ /\.(\d+)/) {
@@ -630,7 +632,7 @@ limited to the range 1970 to 2038 on 32-bit systems.
630
632
 
631
633
  =head1 AUTHOR
632
634
 
633
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
635
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
634
636
 
635
637
  This library is free software; you can redistribute it and/or modify it
636
638
  under the same terms as Perl itself.
@@ -341,7 +341,7 @@ name prefix.
341
341
 
342
342
  =head1 AUTHOR
343
343
 
344
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
344
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
345
345
 
346
346
  This library is free software; you can redistribute it and/or modify it
347
347
  under the same terms as Perl itself.
@@ -837,7 +837,7 @@ Sigma and Foveon maker notes in EXIF information.
837
837
 
838
838
  =head1 AUTHOR
839
839
 
840
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
840
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
841
841
 
842
842
  This library is free software; you can redistribute it and/or modify it
843
843
  under the same terms as Perl itself.
@@ -650,7 +650,7 @@ Sigma and Foveon X3F images.
650
650
 
651
651
  =head1 AUTHOR
652
652
 
653
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
653
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
654
654
 
655
655
  This library is free software; you can redistribute it and/or modify it
656
656
  under the same terms as Perl itself.
@@ -11283,7 +11283,7 @@ Minolta.
11283
11283
 
11284
11284
  =head1 AUTHOR
11285
11285
 
11286
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
11286
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
11287
11287
 
11288
11288
  This library is free software; you can redistribute it and/or modify it
11289
11289
  under the same terms as Perl itself.
@@ -379,7 +379,7 @@ write Sony Image Data Converter version 3.0 metadata in ARW images.
379
379
 
380
380
  =head1 AUTHOR
381
381
 
382
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
382
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
383
383
 
384
384
  This library is free software; you can redistribute it and/or modify it
385
385
  under the same terms as Perl itself.
@@ -174,7 +174,7 @@ information.
174
174
 
175
175
  =head1 AUTHOR
176
176
 
177
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
177
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
178
178
 
179
179
  This library is free software; you can redistribute it and/or modify it
180
180
  under the same terms as Perl itself.
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
15
15
  use Image::ExifTool qw(:Utils :Vars);
16
16
  use Image::ExifTool::XMP;
17
17
 
18
- $VERSION = '1.31';
18
+ $VERSION = '1.32';
19
19
  @ISA = qw(Exporter);
20
20
 
21
21
  # set this to a language code to generate Lang module with 'MISSING' entries
@@ -58,6 +58,12 @@ my %translateLang = (
58
58
  my $numbersFirst = 1; # set to -1 to sort numbers last, or 2 to put negative numbers last
59
59
  my $caseInsensitive; # used internally by sort routine
60
60
 
61
+ # write groups that don't represent real family 1 group names
62
+ my %fakeWriteGroup = (
63
+ Comment => 1, # (JPEG Comment)
64
+ colr => 1, # (Jpeg2000 'colr' box)
65
+ );
66
+
61
67
  #------------------------------------------------------------------------------
62
68
  # Utility to print tag information database as an XML list
63
69
  # Inputs: 0) output file name (undef to send to console),
@@ -178,9 +184,8 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
178
184
  }
179
185
  my @groups = $et->GetGroup($tagInfo);
180
186
  my $writeGroup = $$tagInfo{WriteGroup} || $$table{WRITE_GROUP};
181
- if ($writeGroup and $writeGroup ne 'Comment') {
182
- $groups[1] = $writeGroup; # use common write group for group 1
183
- }
187
+ # use common write group for group 1 (unless fake)
188
+ $groups[1] = $writeGroup if $writeGroup and not $fakeWriteGroup{$writeGroup};
184
189
  # add group names if different from table defaults
185
190
  my $grp = '';
186
191
  for ($fam=0; $fam<3; ++$fam) {
@@ -638,7 +643,7 @@ and values.
638
643
 
639
644
  ~head1 AUTHOR
640
645
 
641
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
646
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
642
647
 
643
648
  This library is free software; you can redistribute it and/or modify it
644
649
  under the same terms as Perl itself.
@@ -822,7 +827,7 @@ Number of modules updated, or negative on error.
822
827
 
823
828
  =head1 AUTHOR
824
829
 
825
- Copyright 2003-2021, Phil Harvey (philharvey66 at gmail.com)
830
+ Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
826
831
 
827
832
  This library is free software; you can redistribute it and/or modify it
828
833
  under the same terms as Perl itself.