exiftool-vendored.pl 12.91.0 → 12.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars $advFmtSelf);
31
31
 
32
- $VERSION = '12.91';
32
+ $VERSION = '12.97';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -1873,9 +1873,10 @@ my %systemTagsNotes = (
1873
1873
  this write-only tag is used to define the GPS track log data or track log
1874
1874
  file name. Currently supported track log formats are GPX, NMEA RMC/GGA/GLL,
1875
1875
  KML, IGC, Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Winplus
1876
- Beacon text, and Bramor gEO log files. May be set to the special value of
1877
- "DATETIMEONLY" (all caps) to set GPS date/time tags if no input track points
1878
- are available. See L<geotag.html|../geotag.html> for details
1876
+ Beacon text, Bramor gEO, Google Takeout JSON, and CSV log files. May be set
1877
+ to the special value of "DATETIMEONLY" (all caps) to set GPS date/time tags
1878
+ if no input track points are available. See L<geotag.html|../geotag.html>
1879
+ for details
1879
1880
  },
1880
1881
  DelCheck => q{
1881
1882
  require Image::ExifTool::Geotag;
@@ -4734,6 +4735,56 @@ sub IsDirectory($$)
4734
4735
  return 0;
4735
4736
  }
4736
4737
 
4738
+ #------------------------------------------------------------------------------
4739
+ # Create directory for specified file
4740
+ # Inputs: 0) ExifTool ref, 1) complete file name including path
4741
+ # Returns: '' = directory created, undef = nothing done, otherwise error string
4742
+ my $k32CreateDir;
4743
+ sub CreateDirectory($$)
4744
+ {
4745
+ local $_;
4746
+ my ($self, $file) = @_;
4747
+ my ($err, $dir);
4748
+ ($dir = $file) =~ s/[^\/]*$//; # remove filename from path specification
4749
+ if ($dir and not $self->IsDirectory($dir)) {
4750
+ my @parts = split /\//, $dir;
4751
+ $dir = '';
4752
+ foreach (@parts) {
4753
+ $dir .= $_;
4754
+ if (length and not $self->IsDirectory($dir) and
4755
+ # don't try to create a network drive root directory
4756
+ not (IsPC() and $dir =~ m{^//[^/]*$}))
4757
+ {
4758
+ my $success;
4759
+ # create directory since it doesn't exist
4760
+ my $d2 = $dir; # (must make a copy in case EncodeFileName recodes it)
4761
+ if ($self->EncodeFileName($d2)) {
4762
+ # handle Windows Unicode directory names
4763
+ unless (eval { require Win32::API }) {
4764
+ $err = 'Install Win32::API to create directories with Unicode names';
4765
+ last;
4766
+ }
4767
+ unless (defined $k32CreateDir) {
4768
+ $k32CreateDir = Win32::API->new('KERNEL32', 'CreateDirectoryW', 'PP', 'I');
4769
+ unless ($k32CreateDir) {
4770
+ $k32CreateDir = 0;
4771
+ # give this error once, then just "Error creating" for subsequent attempts
4772
+ return 'Error accessing Win32::API::CreateDirectoryW';
4773
+ }
4774
+ }
4775
+ $success = $k32CreateDir->Call($d2, 0) if $k32CreateDir;
4776
+ } else {
4777
+ $success = mkdir($d2, 0777);
4778
+ }
4779
+ $success or $err = "Error creating directory $dir", last;
4780
+ $err = '';
4781
+ }
4782
+ $dir .= '/';
4783
+ }
4784
+ }
4785
+ return $err;
4786
+ }
4787
+
4737
4788
  #------------------------------------------------------------------------------
4738
4789
  # Get file times (Unix seconds since the epoch)
4739
4790
  # Inputs: 0) ExifTool ref, 1) file name or ref
@@ -5648,6 +5699,17 @@ sub SetupTagTable($)
5648
5699
  }
5649
5700
  }
5650
5701
 
5702
+ #------------------------------------------------------------------------------
5703
+ # Is this a PC system?
5704
+ # Returns: true for PC systems
5705
+ # uses lookup for O/S names which may use a backslash as a directory separator
5706
+ # (ref File::Spec of PathTools-3.2701)
5707
+ my %isPC = (MSWin32 => 1, os2 => 1, dos => 1, NetWare => 1, symbian => 1, cygwin => 1);
5708
+ sub IsPC()
5709
+ {
5710
+ return $isPC{$^O};
5711
+ }
5712
+
5651
5713
  #------------------------------------------------------------------------------
5652
5714
  # Utilities to check for numerical types
5653
5715
  # Inputs: 0) value; Returns: true if value is a numerical type
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.91
3
+ Version: 12.97
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl