Commit 90cd16d799 for perl
commit 90cd16d799e7d99652635adfdc93453a315d2668
Author: Paul Marquess <pmqs@outlook.com>
Date: Mon Oct 12 14:39:24 2026 -0400
cpan/IO-Compress - Update to version 2.225
2.225 9 October 2026
* update to version 2,225
Fri Oct 9 15:32:13 2026 +0100
ad11c5d0913e697572987e9c1bfc49b59743dee3
* Update email address
Fri Oct 9 14:12:19 2026 +0100
08b77153277feaee4aa8f29778470b97983e19ca
* Fix inefficient and unbounded code for reading gzip Name & Comment fields #86
Fri Oct 9 13:58:14 2026 +0100
cdc16a0607c97c457d49fcf23d9f28a049dc05de
* add newStreamHook #84
Fri Oct 9 11:49:22 2026 +0100
d283b082186ec57fb11bd693f7ccca762d567c96
* Fix typo
Fri Sep 4 00:08:27 2026 +0100
f6755650cc4ac1e2e34502ee5db1f9c855215976
* Fix typo in Changes file
Fri Aug 28 12:32:14 2026 +0100
bd72147253d077e10157c4696e9d11b135762a4e
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index ca530822fc..510809e817 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -680,8 +680,8 @@ our %Modules = (
},
'IO-Compress' => {
- 'DISTRIBUTION' => 'PMQS/IO-Compress-2.224.tar.gz',
- 'SYNCINFO' => 'jkeenan on Mon Aug 31 18:36:54 2026',
+ 'DISTRIBUTION' => 'PMQS/IO-Compress-2.225.tar.gz',
+ 'SYNCINFO' => 'jkeenan on Mon Oct 12 14:38:45 2026',
'MAIN_MODULE' => 'IO::Compress::Base',
'FILES' => q[cpan/IO-Compress],
'EXCLUDED' => [
diff --git a/cpan/IO-Compress/Makefile.PL b/cpan/IO-Compress/Makefile.PL
index 38cad62d9d..947a15a9b8 100644
--- a/cpan/IO-Compress/Makefile.PL
+++ b/cpan/IO-Compress/Makefile.PL
@@ -4,9 +4,9 @@ use strict ;
use warnings;
require 5.008 ;
-$::VERSION = '2.224' ;
-$::DEP_ZLIB_VERSION = '2.224';
-$::DEP_BZIP2_VERSION = '2.224';
+$::VERSION = '2.225' ;
+$::DEP_ZLIB_VERSION = '2.225';
+$::DEP_BZIP2_VERSION = '2.225';
use lib '.';
use private::MakeUtil;
@@ -38,7 +38,7 @@ WriteMakefile(
),
ABSTRACT => 'IO Interface to compressed data files/buffers',
- AUTHOR => 'Paul Marquess <pmqs@cpan.org>',
+ AUTHOR => 'Paul Marquess <pmqs@outlook.com>',
INSTALLDIRS => ($] >= 5.009 && $] < 5.011 ? 'perl' : 'site'),
diff --git a/cpan/IO-Compress/bin/streamzip b/cpan/IO-Compress/bin/streamzip
index b80e2fac40..83eb8249d1 100644
--- a/cpan/IO-Compress/bin/streamzip
+++ b/cpan/IO-Compress/bin/streamzip
@@ -288,7 +288,7 @@ L<https://rt.cpan.org/Public/Dist/Display.html?Name=IO-Compress>.
=head1 AUTHOR
-Paul Marquess F<pmqs@cpan.org>.
+Paul Marquess F<pmqs@outlook.com>.
=head1 COPYRIGHT
diff --git a/cpan/IO-Compress/lib/Compress/Zlib.pm b/cpan/IO-Compress/lib/Compress/Zlib.pm
index 0b1a3a65f8..e71c822d8d 100644
--- a/cpan/IO-Compress/lib/Compress/Zlib.pm
+++ b/cpan/IO-Compress/lib/Compress/Zlib.pm
@@ -7,17 +7,17 @@ use Carp ;
use IO::Handle ;
use Scalar::Util qw(dualvar);
-use IO::Compress::Base::Common 2.224 ;
-use Compress::Raw::Zlib 2.224 ;
-use IO::Compress::Gzip 2.224 ;
-use IO::Uncompress::Gunzip 2.224 ;
+use IO::Compress::Base::Common 2.225 ;
+use Compress::Raw::Zlib 2.225 ;
+use IO::Compress::Gzip 2.225 ;
+use IO::Uncompress::Gunzip 2.225 ;
use strict ;
use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.224';
+$VERSION = '2.225';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
@@ -461,7 +461,7 @@ sub inflate
package Compress::Zlib ;
-use IO::Compress::Gzip::Constants 2.224 ;
+use IO::Compress::Gzip::Constants 2.225 ;
sub memGzip($)
{
@@ -1501,7 +1501,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/File/GlobMapper.pm b/cpan/IO-Compress/lib/File/GlobMapper.pm
index 8810021de3..bdee2d3b85 100644
--- a/cpan/IO-Compress/lib/File/GlobMapper.pm
+++ b/cpan/IO-Compress/lib/File/GlobMapper.pm
@@ -683,7 +683,7 @@ L<File::Glob|File::Glob>
=head1 AUTHOR
-The I<File::GlobMapper> module was written by Paul Marquess, F<pmqs@cpan.org>.
+The I<File::GlobMapper> module was written by Paul Marquess, F<pmqs@outlook.com>.
=head1 COPYRIGHT AND LICENSE
diff --git a/cpan/IO-Compress/lib/IO/Compress.pm b/cpan/IO-Compress/lib/IO/Compress.pm
index 623ab80b24..bfd9cdc3b5 100644
--- a/cpan/IO-Compress/lib/IO/Compress.pm
+++ b/cpan/IO-Compress/lib/IO/Compress.pm
@@ -1,6 +1,6 @@
package IO::Compress;
-our $VERSION = '2.224' ;
+our $VERSION = '2.225' ;
=head1 NAME
@@ -12,7 +12,7 @@ This is a stub module. It contains no code.
=head1 AUTHOR
-Paul Marquess F<pmqs@cpan.org>.
+Paul Marquess F<pmqs@outlook.com>.
=head1 COPYRIGHT
diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
index 4dcdf9706a..65d391aa53 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
+use IO::Compress::Base::Common 2.225 qw(:Status);
-use Compress::Raw::Bzip2 2.224 ;
+use Compress::Raw::Bzip2 2.225 ;
our ($VERSION);
-$VERSION = '2.224';
+$VERSION = '2.225';
sub mkCompObject
{
diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
index e2ec3e90b5..b523eb9694 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
@@ -4,13 +4,13 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
-use Compress::Raw::Zlib 2.224 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.225 qw(:Status);
+use Compress::Raw::Zlib 2.225 qw( !crc32 !adler32 ) ;
require Exporter;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
-$VERSION = '2.224';
+$VERSION = '2.225';
@ISA = qw(Exporter);
@EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
%EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
diff --git a/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
index 2d7b8cf688..d378a7477c 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
@@ -4,10 +4,10 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
+use IO::Compress::Base::Common 2.225 qw(:Status);
our ($VERSION);
-$VERSION = '2.224';
+$VERSION = '2.225';
sub mkCompObject
{
diff --git a/cpan/IO-Compress/lib/IO/Compress/Base.pm b/cpan/IO-Compress/lib/IO/Compress/Base.pm
index 10697235d5..fbe42413de 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Base.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Base.pm
@@ -4,7 +4,7 @@ package IO::Compress::Base ;
use strict ;
use warnings;
-use IO::Compress::Base::Common 2.224 ;
+use IO::Compress::Base::Common 2.225 ;
use IO::File ();
use Scalar::Util ();
@@ -18,7 +18,7 @@ use Symbol();
our (@ISA, $VERSION);
@ISA = qw(IO::File Exporter);
-$VERSION = '2.224';
+$VERSION = '2.225';
#Can't locate object method "SWASHNEW" via package "utf8" (perhaps you forgot to load "utf8"?) at .../ext/Compress-Zlib/Gzip/blib/lib/Compress/Zlib/Common.pm line 16.
@@ -1041,7 +1041,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm b/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
index 916987c095..96871b5bb8 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
@@ -11,7 +11,7 @@ use File::GlobMapper;
require Exporter;
our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
@ISA = qw(Exporter);
-$VERSION = '2.224';
+$VERSION = '2.225';
@EXPORT = qw( isaFilehandle isaFilename isaScalar
whatIsInput whatIsOutput
diff --git a/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm b/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
index 44b29495b7..41ef5ac761 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
@@ -5,16 +5,16 @@ use warnings;
use bytes;
require Exporter ;
-use IO::Compress::Base 2.224 ;
+use IO::Compress::Base 2.225 ;
-use IO::Compress::Base::Common 2.224 qw();
-use IO::Compress::Adapter::Bzip2 2.224 ;
+use IO::Compress::Base::Common 2.225 qw();
+use IO::Compress::Adapter::Bzip2 2.225 ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
-$VERSION = '2.224';
+$VERSION = '2.225';
$Bzip2Error = '';
@ISA = qw(IO::Compress::Base Exporter);
@@ -51,7 +51,7 @@ sub getExtraParams
{
my $self = shift ;
- use IO::Compress::Base::Common 2.224 qw(:Parse);
+ use IO::Compress::Base::Common 2.225 qw(:Parse);
return (
'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned, 1],
@@ -870,7 +870,7 @@ See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Deflate.pm b/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
index e3a60fad9c..f1cfc314e5 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Deflate.pm
@@ -6,16 +6,16 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.224 ();
-use IO::Compress::Adapter::Deflate 2.224 ;
+use IO::Compress::RawDeflate 2.225 ();
+use IO::Compress::Adapter::Deflate 2.225 ;
-use IO::Compress::Zlib::Constants 2.224 ;
-use IO::Compress::Base::Common 2.224 qw();
+use IO::Compress::Zlib::Constants 2.225 ;
+use IO::Compress::Base::Common 2.225 qw();
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$DeflateError = '';
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -943,7 +943,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/FAQ.pod b/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
index 251f7e534b..c09621546b 100644
--- a/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
+++ b/cpan/IO-Compress/lib/IO/Compress/FAQ.pod
@@ -676,7 +676,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Gzip.pm b/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
index 0a1b21251e..afc8449d4b 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Gzip.pm
@@ -6,12 +6,12 @@ use bytes;
require Exporter ;
-use IO::Compress::RawDeflate 2.224 () ;
-use IO::Compress::Adapter::Deflate 2.224 ;
+use IO::Compress::RawDeflate 2.225 () ;
+use IO::Compress::Adapter::Deflate 2.225 ;
-use IO::Compress::Base::Common 2.224 qw(:Status );
-use IO::Compress::Gzip::Constants 2.224 ;
-use IO::Compress::Zlib::Extra 2.224 ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
+use IO::Compress::Gzip::Constants 2.225 ;
+use IO::Compress::Zlib::Extra 2.225 ;
BEGIN
{
@@ -23,7 +23,7 @@ BEGIN
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$GzipError = '' ;
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -1317,7 +1317,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
index 9915806271..f637c17109 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);
-$VERSION = '2.224';
+$VERSION = '2.225';
@ISA = qw(Exporter);
diff --git a/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm b/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
index ec7544a331..dbf9b4ed5b 100644
--- a/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
@@ -6,16 +6,16 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base 2.224 ;
-use IO::Compress::Base::Common 2.224 qw(:Status :Parse);
-use IO::Compress::Adapter::Deflate 2.224 ;
-use Compress::Raw::Zlib 2.224 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base 2.225 ;
+use IO::Compress::Base::Common 2.225 qw(:Status :Parse);
+use IO::Compress::Adapter::Deflate 2.225 ;
+use Compress::Raw::Zlib 2.225 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$RawDeflateError = '';
@ISA = qw(IO::Compress::Base Exporter);
@@ -1062,7 +1062,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Zip.pm b/cpan/IO-Compress/lib/IO/Compress/Zip.pm
index 0d295a641b..32d22a7ed8 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Zip.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Zip.pm
@@ -4,41 +4,41 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status );
-use IO::Compress::RawDeflate 2.224 ();
-use IO::Compress::Adapter::Deflate 2.224 ;
-use IO::Compress::Adapter::Identity 2.224 ;
-use IO::Compress::Zlib::Extra 2.224 ;
-use IO::Compress::Zip::Constants 2.224 ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
+use IO::Compress::RawDeflate 2.225 ();
+use IO::Compress::Adapter::Deflate 2.225 ;
+use IO::Compress::Adapter::Identity 2.225 ;
+use IO::Compress::Zlib::Extra 2.225 ;
+use IO::Compress::Zip::Constants 2.225 ;
use File::Spec();
use Config;
-use Compress::Raw::Zlib 2.224 ();
+use Compress::Raw::Zlib 2.225 ();
BEGIN
{
eval { require IO::Compress::Adapter::Bzip2 ;
- IO::Compress::Adapter::Bzip2->VERSION( 2.224 );
+ IO::Compress::Adapter::Bzip2->VERSION( 2.225 );
require IO::Compress::Bzip2 ;
- IO::Compress::Bzip2->VERSION( 2.224 );
+ IO::Compress::Bzip2->VERSION( 2.225 );
} ;
eval { require IO::Compress::Adapter::Lzma ;
- IO::Compress::Adapter::Lzma->VERSION( 2.224 );
+ IO::Compress::Adapter::Lzma->VERSION( 2.225 );
require IO::Compress::Lzma ;
- IO::Compress::Lzma->VERSION( 2.224 );
+ IO::Compress::Lzma->VERSION( 2.225 );
} ;
eval { require IO::Compress::Adapter::Xz ;
- IO::Compress::Adapter::Xz->VERSION( 2.224 );
+ IO::Compress::Adapter::Xz->VERSION( 2.225 );
require IO::Compress::Xz ;
- IO::Compress::Xz->VERSION( 2.224 );
+ IO::Compress::Xz->VERSION( 2.225 );
} ;
eval { require IO::Compress::Adapter::Zstd ;
- IO::Compress::Adapter::Zstd->VERSION( 2.224 );
+ IO::Compress::Adapter::Zstd->VERSION( 2.225 );
require IO::Compress::Zstd ;
- IO::Compress::Zstd->VERSION( 2.224 );
+ IO::Compress::Zstd->VERSION( 2.225 );
} ;
}
@@ -47,7 +47,7 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$ZipError = '';
@ISA = qw(IO::Compress::RawDeflate Exporter);
@@ -2278,7 +2278,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
index 2194f3e3af..61511b5705 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
@@ -7,7 +7,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
-$VERSION = '2.224';
+$VERSION = '2.225';
@ISA = qw(Exporter);
diff --git a/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm b/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
index f991ece33a..72edfadc98 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
@@ -9,7 +9,7 @@ require Exporter;
our ($VERSION, @ISA, @EXPORT);
-$VERSION = '2.224';
+$VERSION = '2.225';
@ISA = qw(Exporter);
diff --git a/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm b/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
index 793a36999e..ca9a953d75 100644
--- a/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
+++ b/cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
@@ -6,9 +6,9 @@ use bytes;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = '2.224';
+$VERSION = '2.225';
-use IO::Compress::Gzip::Constants 2.224 ;
+use IO::Compress::Gzip::Constants 2.225 ;
sub ExtraFieldError
{
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
index be738a8359..aa9313f02b 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
@@ -4,12 +4,12 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
+use IO::Compress::Base::Common 2.225 qw(:Status);
-use Compress::Raw::Bzip2 2.224 ;
+use Compress::Raw::Bzip2 2.225 ;
our ($VERSION, @ISA);
-$VERSION = '2.224';
+$VERSION = '2.225';
sub mkUncompObject
{
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
index b4a03ecbfb..868763c24d 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
@@ -4,14 +4,14 @@ use warnings;
use strict;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
+use IO::Compress::Base::Common 2.225 qw(:Status);
use IO::Compress::Zip::Constants ;
our ($VERSION);
-$VERSION = '2.224';
+$VERSION = '2.225';
-use Compress::Raw::Zlib 2.224 ();
+use Compress::Raw::Zlib 2.225 ();
sub mkUncompObject
{
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
index 027a650bec..4e5be3b665 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
@@ -4,11 +4,11 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status);
-use Compress::Raw::Zlib 2.224 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common 2.225 qw(:Status);
+use Compress::Raw::Zlib 2.225 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
our ($VERSION);
-$VERSION = '2.224';
+$VERSION = '2.225';
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
index f8f23838b0..04cbead3dc 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
@@ -6,22 +6,22 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Parse);
+use IO::Compress::Base::Common 2.225 qw(:Parse);
-use IO::Uncompress::Adapter::Inflate 2.224 ();
+use IO::Uncompress::Adapter::Inflate 2.225 ();
-use IO::Uncompress::Base 2.224 ;
-use IO::Uncompress::Gunzip 2.224 ;
-use IO::Uncompress::Inflate 2.224 ;
-use IO::Uncompress::RawInflate 2.224 ;
-use IO::Uncompress::Unzip 2.224 ;
+use IO::Uncompress::Base 2.225 ;
+use IO::Uncompress::Gunzip 2.225 ;
+use IO::Uncompress::Inflate 2.225 ;
+use IO::Uncompress::RawInflate 2.225 ;
+use IO::Uncompress::Unzip 2.225 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$AnyInflateError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -1006,7 +1006,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
index 2fbd57d729..566defca28 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
@@ -4,16 +4,16 @@ use strict;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 ();
+use IO::Compress::Base::Common 2.225 ();
-use IO::Uncompress::Base 2.224 ;
+use IO::Uncompress::Base 2.225 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$AnyUncompressError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -33,26 +33,26 @@ BEGIN
# Don't trigger any __DIE__ Hooks.
local $SIG{__DIE__};
- eval ' use IO::Uncompress::Adapter::Inflate 2.224 ;';
- eval ' use IO::Uncompress::Adapter::Bunzip2 2.224 ;';
- eval ' use IO::Uncompress::Adapter::LZO 2.224 ;';
- eval ' use IO::Uncompress::Adapter::Lzf 2.224 ;';
- eval ' use IO::Uncompress::Adapter::UnLzma 2.224 ;';
- eval ' use IO::Uncompress::Adapter::UnXz 2.224 ;';
- eval ' use IO::Uncompress::Adapter::UnZstd 2.224 ;';
- eval ' use IO::Uncompress::Adapter::UnLzip 2.224 ;';
-
- eval ' use IO::Uncompress::Bunzip2 2.224 ;';
- eval ' use IO::Uncompress::UnLzop 2.224 ;';
- eval ' use IO::Uncompress::Gunzip 2.224 ;';
- eval ' use IO::Uncompress::Inflate 2.224 ;';
- eval ' use IO::Uncompress::RawInflate 2.224 ;';
- eval ' use IO::Uncompress::Unzip 2.224 ;';
- eval ' use IO::Uncompress::UnLzf 2.224 ;';
- eval ' use IO::Uncompress::UnLzma 2.224 ;';
- eval ' use IO::Uncompress::UnXz 2.224 ;';
- eval ' use IO::Uncompress::UnZstd 2.224 ;';
- eval ' use IO::Uncompress::UnLzip 2.224 ;';
+ eval ' use IO::Uncompress::Adapter::Inflate 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::Bunzip2 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::LZO 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::Lzf 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzma 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::UnXz 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::UnZstd 2.225 ;';
+ eval ' use IO::Uncompress::Adapter::UnLzip 2.225 ;';
+
+ eval ' use IO::Uncompress::Bunzip2 2.225 ;';
+ eval ' use IO::Uncompress::UnLzop 2.225 ;';
+ eval ' use IO::Uncompress::Gunzip 2.225 ;';
+ eval ' use IO::Uncompress::Inflate 2.225 ;';
+ eval ' use IO::Uncompress::RawInflate 2.225 ;';
+ eval ' use IO::Uncompress::Unzip 2.225 ;';
+ eval ' use IO::Uncompress::UnLzf 2.225 ;';
+ eval ' use IO::Uncompress::UnLzma 2.225 ;';
+ eval ' use IO::Uncompress::UnXz 2.225 ;';
+ eval ' use IO::Uncompress::UnZstd 2.225 ;';
+ eval ' use IO::Uncompress::UnLzip 2.225 ;';
}
@@ -1082,7 +1082,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
index 3b8b8e05f5..f2c9c4c265 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Base.pm
@@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
@ISA = qw(IO::File Exporter);
-$VERSION = '2.224';
+$VERSION = '2.225';
use constant G_EOF => 0 ;
use constant G_ERR => -1 ;
-use IO::Compress::Base::Common 2.224 ;
+use IO::Compress::Base::Common 2.225 ;
use IO::File ;
use Symbol;
@@ -196,6 +196,32 @@ sub smartReadExact
return $_[0]->smartRead($_[1], $_[2]) == $_[2];
}
+sub smartReadToDelim
+{
+ my $self = shift ;
+ my $out = shift ;
+ my $delim = shift ;
+ my $max_size = shift || 64 * 1024 ; # 64k
+
+ $$out = '' ;
+ my $got = '';
+
+ my $status = $self->smartRead(\$got, $max_size) >= 0
+ or return STATUS_ERROR ;
+
+ if ((my $ix = index($got, $delim)) >= 0)
+ {
+ $$out .= substr($got, 0, $ix + length($delim)) ;
+ $self->pushBack(substr($got, $ix + length($delim) )) ;
+ }
+ else
+ {
+ $$out = $got ;
+ }
+
+ return length $$out;
+}
+
sub smartEof
{
my ($self) = $_[0];
@@ -1559,7 +1585,7 @@ L<IO::Zlib|IO::Zlib>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm b/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
index 7566f25caa..220cbf6e0b 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
@@ -4,15 +4,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status );
+use IO::Compress::Base::Common 2.225 qw(:Status );
-use IO::Uncompress::Base 2.224 ;
-use IO::Uncompress::Adapter::Bunzip2 2.224 ;
+use IO::Uncompress::Base 2.225 ;
+use IO::Uncompress::Adapter::Bunzip2 2.225 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
-$VERSION = '2.224';
+$VERSION = '2.225';
$Bunzip2Error = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -914,7 +914,7 @@ See the module L<Compress::Bzip2|Compress::Bzip2>
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm b/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
index ab32079bf5..2cd42c560f 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
@@ -6,12 +6,12 @@ use strict ;
use warnings;
use bytes;
-use IO::Uncompress::RawInflate 2.224 ;
+use IO::Uncompress::RawInflate 2.225 ;
-use Compress::Raw::Zlib 2.224 () ;
-use IO::Compress::Base::Common 2.224 qw(:Status );
-use IO::Compress::Gzip::Constants 2.224 ;
-use IO::Compress::Zlib::Extra 2.224 ;
+use Compress::Raw::Zlib 2.225 () ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
+use IO::Compress::Gzip::Constants 2.225 ;
+use IO::Compress::Zlib::Extra 2.225 ;
require Exporter ;
@@ -25,7 +25,7 @@ Exporter::export_ok_tags('all');
$GunzipError = '';
-$VERSION = '2.224';
+$VERSION = '2.225';
sub new
{
@@ -44,7 +44,10 @@ sub gunzip
sub getExtraParams
{
- return ( 'parseextra' => [IO::Compress::Base::Common::Parse_boolean, 0] ) ;
+ return (
+ 'parseextra' => [IO::Compress::Base::Common::Parse_boolean, 0],
+ 'newstreamhook' => [IO::Compress::Base::Common::Parse_code, undef],
+ ) ;
}
sub ckParams
@@ -55,6 +58,8 @@ sub ckParams
# gunzip always needs crc32
$got->setValue('crc32' => 1);
+ *$self->{'newstreamhook'} = $got->getValue('newstreamhook');
+
return 1;
}
@@ -185,14 +190,16 @@ sub _readGzipHeader($)
my $origname ;
if ($flag & GZIP_FLG_FNAME) {
- $origname = "" ;
- while (1) {
- $self->smartReadExact(\$buffer, 1)
- or return $self->TruncatedHeader("FNAME");
- last if $buffer eq GZIP_NULL_BYTE ;
- $origname .= $buffer
- }
- $keep .= $origname . GZIP_NULL_BYTE ;
+ $self->smartReadToDelim(\$origname, GZIP_NULL_BYTE) != STATUS_ERROR
+ or return $self->TruncatedHeader("FNAME");
+
+ $keep .= $origname ;
+
+ return $self->HeaderError("No NULL termination found in FNAME")
+ if substr($origname, -1, 1) ne GZIP_NULL_BYTE ;
+
+ # remove the terminating GZIP_NULL_BYTE
+ $origname = substr($origname, 0, -1);
return $self->HeaderError("Non ISO 8859-1 Character found in Name")
if *$self->{Strict} && $origname =~ /$GZIP_FNAME_INVALID_CHAR_RE/o ;
@@ -200,14 +207,16 @@ sub _readGzipHeader($)
my $comment ;
if ($flag & GZIP_FLG_FCOMMENT) {
- $comment = "";
- while (1) {
- $self->smartReadExact(\$buffer, 1)
- or return $self->TruncatedHeader("FCOMMENT");
- last if $buffer eq GZIP_NULL_BYTE ;
- $comment .= $buffer
- }
- $keep .= $comment . GZIP_NULL_BYTE ;
+ $self->smartReadToDelim(\$comment, GZIP_NULL_BYTE) != STATUS_ERROR
+ or return $self->TruncatedHeader("FCOMMENT");
+
+ $keep .= $comment ;
+
+ return $self->HeaderError("No NULL termination found in FCOMMENT")
+ if substr($comment, -1, 1) ne GZIP_NULL_BYTE ;
+
+ # remove the terminating GZIP_NULL_BYTE
+ $comment = substr($comment, 0, -1);
return $self->HeaderError("Non ISO 8859-1 Character found in Comment")
if *$self->{Strict} && $comment =~ /$GZIP_FCOMMENT_INVALID_CHAR_RE/o ;
@@ -232,7 +241,7 @@ sub _readGzipHeader($)
*$self->{Type} = 'rfc1952';
- return {
+ my $info = {
'Type' => 'rfc1952',
'FingerprintLength' => 2,
'HeaderLength' => length $keep,
@@ -263,7 +272,15 @@ sub _readGzipHeader($)
#'CompSize'=> $compsize,
#'CRC32'=> $CRC32,
#'OrigSize'=> $ISIZE,
- }
+ };
+
+ if (*$self->{'newstreamhook'})
+ {
+ my $cb = *$self->{'newstreamhook'} ;
+ $cb->($info);
+ }
+
+ return $info;
}
@@ -754,6 +771,15 @@ will be overwritten by the uncompressed data.
Defaults to 0.
+=item C<< NewStreamHook => \&hook >>
+The C<hook> sub will only be invoked when the C<MultiStream> option is enabled and the
+code has detected a new gzip header.
+
+Ther equivalent data that is returned by C<getHeaderInfo>will be passed into C<hook>
+
+A single parameter is passed into the C<hook> sub that consists of the data returned by
+running the C<getHeaderInfo> method on th enew gzip stream.
+
=item C<< Strict => 0|1 >>
This option controls whether the extra checks defined below are used when
@@ -1127,7 +1153,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
index 6ff0fda7a8..3baf88e7fe 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
@@ -5,15 +5,15 @@ use strict ;
use warnings;
use bytes;
-use IO::Compress::Base::Common 2.224 qw(:Status );
-use IO::Compress::Zlib::Constants 2.224 ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
+use IO::Compress::Zlib::Constants 2.225 ;
-use IO::Uncompress::RawInflate 2.224 ;
+use IO::Uncompress::RawInflate 2.225 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$InflateError = '';
@ISA = qw(IO::Uncompress::RawInflate Exporter);
@@ -1002,7 +1002,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
index 784fdd84f8..150707104b 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
@@ -5,16 +5,16 @@ use strict ;
use warnings;
use bytes;
-use Compress::Raw::Zlib 2.224 ;
-use IO::Compress::Base::Common 2.224 qw(:Status );
+use Compress::Raw::Zlib 2.225 ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
-use IO::Uncompress::Base 2.224 ;
-use IO::Uncompress::Adapter::Inflate 2.224 ;
+use IO::Uncompress::Base 2.225 ;
+use IO::Uncompress::Adapter::Inflate 2.225 ;
require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
-$VERSION = '2.224';
+$VERSION = '2.225';
$RawInflateError = '';
@ISA = qw(IO::Uncompress::Base Exporter);
@@ -1130,7 +1130,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm b/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
index e005e19356..969b7d3670 100644
--- a/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
+++ b/cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
@@ -6,14 +6,14 @@ use warnings;
use bytes;
use IO::File;
-use IO::Uncompress::RawInflate 2.224 ;
-use IO::Compress::Base::Common 2.224 qw(:Status );
-use IO::Uncompress::Adapter::Inflate 2.224 ;
-use IO::Uncompress::Adapter::Identity 2.224 ;
-use IO::Compress::Zlib::Extra 2.224 ;
-use IO::Compress::Zip::Constants 2.224 ;
+use IO::Uncompress::RawInflate 2.225 ;
+use IO::Compress::Base::Common 2.225 qw(:Status );
+use IO::Uncompress::Adapter::Inflate 2.225 ;
+use IO::Uncompress::Adapter::Identity 2.225 ;
+use IO::Compress::Zlib::Extra 2.225 ;
+use IO::Compress::Zip::Constants 2.225 ;
-use Compress::Raw::Zlib 2.224 () ;
+use Compress::Raw::Zlib 2.225 () ;
BEGIN
{
@@ -21,13 +21,13 @@ BEGIN
local $SIG{__DIE__};
eval{ require IO::Uncompress::Adapter::Bunzip2 ;
- IO::Uncompress::Adapter::Bunzip2->VERSION(2.224) } ;
+ IO::Uncompress::Adapter::Bunzip2->VERSION(2.225) } ;
eval{ require IO::Uncompress::Adapter::UnLzma ;
- IO::Uncompress::Adapter::UnLzma->VERSION(2.224) } ;
+ IO::Uncompress::Adapter::UnLzma->VERSION(2.225) } ;
eval{ require IO::Uncompress::Adapter::UnXz ;
- IO::Uncompress::Adapter::UnXz->VERSION(2.224) } ;
+ IO::Uncompress::Adapter::UnXz->VERSION(2.225) } ;
eval{ require IO::Uncompress::Adapter::UnZstd ;
- IO::Uncompress::Adapter::UnZstd->VERSION(2.224) } ;
+ IO::Uncompress::Adapter::UnZstd->VERSION(2.225) } ;
}
@@ -35,7 +35,7 @@ require Exporter ;
our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
-$VERSION = '2.224';
+$VERSION = '2.225';
$UnzipError = '';
@ISA = qw(IO::Uncompress::RawInflate Exporter);
@@ -2013,7 +2013,7 @@ The primary site for gzip is L<http://www.gzip.org>.
=head1 AUTHOR
-This module was written by Paul Marquess, C<pmqs@cpan.org>.
+This module was written by Paul Marquess, C<pmqs@outlook.com>.
=head1 MODIFICATION HISTORY
diff --git a/cpan/IO-Compress/t/004gziphdr.t b/cpan/IO-Compress/t/004gziphdr.t
index 775de6bf14..7e3b77f15e 100644
--- a/cpan/IO-Compress/t/004gziphdr.t
+++ b/cpan/IO-Compress/t/004gziphdr.t
@@ -20,7 +20,7 @@ BEGIN {
if eval { require Test::NoWarnings ; Test::NoWarnings->import; 1 };
- plan tests => 918 + $extra ;
+ plan tests => 928 + $extra ;
use_ok('Compress::Raw::Zlib') ;
use_ok('IO::Compress::Gzip::Constants') ;
@@ -735,10 +735,9 @@ EOM
}
my $Name = "fred" ;
- my $truncated ;
for my $index ( GZIP_MIN_HEADER_SIZE .. GZIP_MIN_HEADER_SIZE + length($Name) -1)
{
- title "Header Corruption - Truncated in Name";
+ title "Header Corruption - Truncated in Name - index $index";
my $string = <<EOM;
some text
EOM
@@ -754,8 +753,7 @@ EOM
ok ! $g
or print "# $g\n" ;
- like $GunzipError, '/^Header Error: Truncated in FNAME Section/';
-
+ like $GunzipError, '/^Header Error: (Truncated in FNAME Section|No NULL termination found in FNAME)/';
}
my $Comment = "comment" ;
@@ -780,8 +778,7 @@ EOM
ok ! $g
or print "# $g\n" ;
- like $GunzipError, '/^Header Error: Truncated in FCOMMENT Section/';
-
+ like $GunzipError, '/^Header Error: (Truncated in FCOMMENT Section|No NULL termination found in FCOMMENT)/';
}
for my $index ( GZIP_MIN_HEADER_SIZE .. GZIP_MIN_HEADER_SIZE + GZIP_FHCRC_SIZE -1)
@@ -987,3 +984,128 @@ EOM
ok ! $x ;
}
}
+
+{
+ title "NewStreamHook - one stream";
+
+ my $lex = LexFile->new( my $name );
+
+ my $gz = IO::Compress::Gzip->new( $name, Name => "first" )
+ or diag "GzipError is $GzipError" ;
+
+ $gz->write("abcd");
+
+ $gz->close() ;
+
+ my @names ;
+
+ my $gunzip = IO::Uncompress::Gunzip->new( $name,
+ MultiStream => 1,
+ Append => 1,
+ NewStreamHook =>
+ sub
+ {
+ my $info = shift;
+ push @names, $info->{Name};
+ }
+ )
+ or diag "GunzipError is $GunzipError" ;
+
+ my $data;
+ 1 while $gunzip->read($data) > 0;
+
+ is $data, "abcd" ;
+
+ is_deeply \@names, ["first"], "NewStreamHook called with correct names" ;
+}
+
+
+{
+ title "NewStreamHook - two streams";
+
+ my $lex = LexFile->new( my $name );
+
+ my $gz = IO::Compress::Gzip->new( $name, Name => "first" )
+ or diag "GzipError is $GzipError" ;
+
+ $gz->write("abcd");
+
+ $gz->newStream( Name => "second" );
+ $gz->write("efgh");
+
+ $gz->close() ;
+
+ my @names ;
+
+ my $gunzip = IO::Uncompress::Gunzip->new( $name,
+ MultiStream => 1,
+ Append => 1,
+ NewStreamHook =>
+ sub
+ {
+ my $info = shift;
+ push @names, $info->{Name};
+ }
+ )
+ or diag "GunzipError is $GunzipError" ;
+
+ my $data;
+ 1 while $gunzip->read($data) > 0;
+
+ is $data, "abcdefgh" ;
+
+ is_deeply \@names, ["first", "second"], "NewStreamHook called with correct names" ;
+}
+
+{
+ title "Tets really long FNAME field";
+ # https://github.com/pmqs/IO-Compress/issues/86
+
+ my $lex = LexFile->new( my $name );
+
+ my $fname = "x" x (1 + (1024 * 64));
+
+ my $gz = IO::Compress::Gzip->new( $name, Name => $fname )
+ or diag "GzipError is $GzipError" ;
+
+ $gz->write("abcd");
+
+ $gz->newStream( Name => "second" );
+ $gz->write("efgh");
+
+ $gz->close() ;
+
+ my @names ;
+
+ my $gunzip = IO::Uncompress::Gunzip->new( $name);
+
+ like $GunzipError, '/Header Error: No NULL termination found in FNAME/', "Got expected error" ;
+
+}
+
+{
+ title "Tets really long COMMENT field";
+ # https://github.com/pmqs/IO-Compress/issues/86
+
+ my $lex = LexFile->new( my $name );
+
+ my $fname = "fred";
+ my $comment = "x" x (1 + (1024 * 64));
+
+ my $gz = IO::Compress::Gzip->new( $name, Name => $fname, Comment => $comment )
+ or diag "GzipError is $GzipError" ;
+
+ $gz->write("abcd");
+
+ $gz->newStream( Name => "second" );
+ $gz->write("efgh");
+
+ $gz->close() ;
+
+ my @names ;
+
+ my $gunzip = IO::Uncompress::Gunzip->new( $name);
+
+ like $GunzipError, '/Header Error: No NULL termination found in FCOMMENT/', "Got expected error" ;
+
+}
\ No newline at end of file
diff --git a/cpan/IO-Compress/t/105oneshot-gzip-only.t b/cpan/IO-Compress/t/105oneshot-gzip-only.t
index 69eb1c221e..3922464260 100644
--- a/cpan/IO-Compress/t/105oneshot-gzip-only.t
+++ b/cpan/IO-Compress/t/105oneshot-gzip-only.t
@@ -19,7 +19,7 @@ BEGIN {
$extra = 1
if eval { require Test::NoWarnings ; Test::NoWarnings->import; 1 };
- plan tests => 70 + $extra ;
+ plan tests => 73 + $extra ;
use_ok('IO::Compress::Gzip', qw($GzipError)) ;
use_ok('IO::Uncompress::Gunzip', qw($GunzipError)) ;
@@ -126,4 +126,42 @@ sub gzipGetHeader
cmp_ok $hdr->{Time}, '<=', $after, " Time is ok";
}
+
+{
+ title "NewStreamHook - two streams";
+
+ use IO::Uncompress::Gunzip qw($GunzipError gunzip) ;
+
+ my $lex = LexFile->new( my $name );
+
+ my $gz = IO::Compress::Gzip->new( $name, Name => "first" )
+ or diag "GzipError is $GzipError" ;
+
+ $gz->write("abcd");
+
+ $gz->newStream( Name => "second" );
+ $gz->write("efgh");
+
+ $gz->close() ;
+
+ my @names ;
+ my $data;
+
+ gunzip $name => \$data,
+ MultiStream => 1,
+ Append => 1,
+ NewStreamHook =>
+ sub
+ {
+ my $info = shift;
+ push @names, $info->{Name};
+ }
+ or diag "GunzipError is $GunzipError" ;
+
+
+ is $data, "abcdefgh" ;
+
+ is_deeply \@names, ["first", "second"], "NewStreamHook called with correct names" ;
+}
+
# TODO add more error cases