This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Archive-Extract to CPAN version 0.56
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Tue, 23 Aug 2011 19:03:52 +0000 (20:03 +0100)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Tue, 23 Aug 2011 19:03:52 +0000 (20:03 +0100)
  [DELTA]

  Changes for 0.56    Tue Aug 23 15:55:52 2011
  ============================================
  * Amend the MSWin32 fixes for 'unzip' to
    work with Cygwin-based tools too.

Porting/Maintainers.pl
cpan/Archive-Extract/lib/Archive/Extract.pm
cpan/Archive-Extract/t/01_Archive-Extract.t
pod/perldelta.pod

index eb5d84c..45a3d30 100755 (executable)
@@ -198,7 +198,7 @@ use File::Glob qw(:case);
     'Archive::Extract' =>
        {
        'MAINTAINER'    => 'kane',
-       'DISTRIBUTION'  => 'BINGOS/Archive-Extract-0.54.tar.gz',
+       'DISTRIBUTION'  => 'BINGOS/Archive-Extract-0.56.tar.gz',
        'FILES'         => q[cpan/Archive-Extract],
        'UPSTREAM'      => 'cpan',
        'BUGS'          => 'bug-archive-extract@rt.cpan.org',
index d183dc6..4ca925d 100644 (file)
@@ -45,7 +45,7 @@ use vars qw[$VERSION $PREFER_BIN $PROGRAMS $WARN $DEBUG
             $_ALLOW_BIN $_ALLOW_PURE_PERL $_ALLOW_TAR_ITER
          ];
 
-$VERSION            = '0.54';
+$VERSION            = '0.56';
 $PREFER_BIN         = 0;
 $WARN               = 1;
 $DEBUG              = 0;
@@ -258,16 +258,16 @@ Returns a C<Archive::Extract> object on success, or false on failure.
         ### figure out the type, if it wasn't already specified ###
         unless ( $parsed->{type} ) {
             $parsed->{type} =
-                $ar =~ /.+?\.(?:tar\.gz|tgz)$/i     ? TGZ   :
-                $ar =~ /.+?\.gz$/i                  ? GZ    :
-                $ar =~ /.+?\.tar$/i                 ? TAR   :
-                $ar =~ /.+?\.(zip|jar|par)$/i       ? ZIP   :
-                $ar =~ /.+?\.(?:tbz2?|tar\.bz2?)$/i ? TBZ   :
-                $ar =~ /.+?\.bz2$/i                 ? BZ2   :
-                $ar =~ /.+?\.Z$/                    ? Z     :
-                $ar =~ /.+?\.lzma$/                 ? LZMA  :
-                $ar =~ /.+?\.(?:txz|tar\.xz)$/i     ? TXZ   :
-                $ar =~ /.+?\.xz$/                   ? XZ    :
+                $ar =~ /.+?\.(?:tar\.gz|tgz)$/i         ? TGZ   :
+                $ar =~ /.+?\.gz$/i                      ? GZ    :
+                $ar =~ /.+?\.tar$/i                     ? TAR   :
+                $ar =~ /.+?\.(zip|jar|ear|war|par)$/i   ? ZIP   :
+                $ar =~ /.+?\.(?:tbz2?|tar\.bz2?)$/i     ? TBZ   :
+                $ar =~ /.+?\.bz2$/i                     ? BZ2   :
+                $ar =~ /.+?\.Z$/                        ? Z     :
+                $ar =~ /.+?\.lzma$/                     ? LZMA  :
+                $ar =~ /.+?\.(?:txz|tar\.xz)$/i         ? TXZ   :
+                $ar =~ /.+?\.xz$/                       ? XZ    :
                 '';
 
         }
@@ -1087,7 +1087,10 @@ sub _unzip_bin {
             $self->_error( $self->_no_buffer_files( $self->archive ) );
 
         } else {
-            local $/ = ON_WIN32 ? "\r\n" : "\n";
+            ### Annoyingly, pesky MSWin32 can either have 'native' tools
+            ### which have \r\n line endings or Cygwin-based tools which
+            ### have \n line endings. Jan Dubois suggested using this fix
+            local $/ = ON_WIN32 ? qr/\r?\n/ : "\n";
             $self->files( [split $/, $buffer] );
         }
     }
index 3b2bccd..649aaea 100644 (file)
@@ -104,7 +104,17 @@ my $tmpl = {
                     modules     => [qw[Archive::Zip]],
                     method      => 'is_zip',
                     outfile     => 'a',
-                },                
+                }, 
+    'x.ear' => {    programs    => [qw[unzip]],
+                    modules     => [qw[Archive::Zip]],
+                    method      => 'is_zip',
+                    outfile     => 'a',
+                },
+    'x.war' => {    programs    => [qw[unzip]],
+                    modules     => [qw[Archive::Zip]],
+                    method      => 'is_zip',
+                    outfile     => 'a',
+                },               
     'x.par' => {    programs    => [qw[unzip]],
                     modules     => [qw[Archive::Zip]],
                     method      => 'is_zip',
@@ -197,6 +207,18 @@ my $tmpl = {
                     outfile     => 'z',
                     outdir      => 'y'
                 },
+    'y.ear' => {    programs    => [qw[unzip]],
+                    modules     => [qw[Archive::Zip]],
+                    method      => 'is_zip',
+                    outfile     => 'z',
+                    outdir      => 'y'
+                },
+    'y.war' => {    programs    => [qw[unzip]],
+                    modules     => [qw[Archive::Zip]],
+                    method      => 'is_zip',
+                    outfile     => 'z',
+                    outdir      => 'y'
+              },
     ### with non-same top dir
     'double_dir.zip' => {
                     programs    => [qw[unzip]],
index 960e86c..b3e05a2 100644 (file)
@@ -106,7 +106,7 @@ XXX
 
 =item *
 
-L<Archive::Extract> has been upgraded from version 0.52 to version 0.54
+L<Archive::Extract> has been upgraded from version 0.52 to version 0.56
 
 Resolved an issue where C<unzip> executable was present in C<PATH> on MSWin32