Compress::Raw::Zlib, Compress::Zlib, IO::Compress::Zlib 2.000_10
Paul Marquess [Thu, 16 Mar 2006 14:38:52 +0000 (14:38 +0000)]
From: "Paul Marquess" <paul.marquess@ntlworld.com>
Message-ID: <009401c64907$5a6ed710$4c05140a@myopwv.com>

p4raw-id: //depot/perl@27516

41 files changed:
ext/Compress/IO/Base/Changes
ext/Compress/IO/Base/README
ext/Compress/IO/Base/lib/IO/Compress/Base.pm
ext/Compress/IO/Base/lib/IO/Compress/Base/Common.pm
ext/Compress/IO/Base/lib/IO/Uncompress/AnyUncompress.pm
ext/Compress/IO/Base/lib/IO/Uncompress/Base.pm
ext/Compress/IO/Zlib/Changes
ext/Compress/IO/Zlib/Makefile.PL
ext/Compress/IO/Zlib/README
ext/Compress/IO/Zlib/lib/IO/Compress/Adapter/Deflate.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Adapter/Identity.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Deflate.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Gzip.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Gzip/Constants.pm
ext/Compress/IO/Zlib/lib/IO/Compress/RawDeflate.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Zip.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Zip/Constants.pm
ext/Compress/IO/Zlib/lib/IO/Compress/Zlib/Constants.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/Adapter/Identity.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/Adapter/Inflate.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/AnyInflate.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/Gunzip.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/Inflate.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/RawInflate.pm
ext/Compress/IO/Zlib/lib/IO/Uncompress/Unzip.pm
ext/Compress/IO/Zlib/t/010examples.t
ext/Compress/IO/Zlib/t/050interop-gzip.t
ext/Compress/Raw/Zlib/Makefile.PL
ext/Compress/Raw/Zlib/README
ext/Compress/Raw/Zlib/Zlib.xs
ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm
ext/Compress/Raw/Zlib/t/02zlib.t
ext/Compress/Zlib/Changes
ext/Compress/Zlib/Makefile.PL
ext/Compress/Zlib/README
ext/Compress/Zlib/examples/gzcat
ext/Compress/Zlib/examples/gzstream
ext/Compress/Zlib/lib/Compress/Zlib.pm
ext/Compress/Zlib/t/14gzopen.t
t/lib/compress/generic.pl
t/lib/compress/tied.pl

index a3293e3..fa0d479 100644 (file)
@@ -1,6 +1,15 @@
 CHANGES
 -------
 
+  2.000_10 13 March 2006
+
+      * AnyUncompress doesn't assume  that IO-Compress-Zlib is installed any
+        more.
+
+  2.000_09 3 March 2006
+
+      * Released to CPAN.
+
   2.000_08 2 March 2006
 
       * Split IO::Compress::Base into its own distribution.
index 6f06827..cef3598 100644 (file)
@@ -1,9 +1,9 @@
 
                              IO::Compress::Base
 
-                             Version 2.000_08
+                             Version 2.000_10
 
-                                27 Feb 2006 
+                                13 Mar 2006 
 
 
        Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
@@ -23,7 +23,7 @@ DESCRIPTION
 -----------
 
 
-This module is a base class for all IO::Compress and IO::Uncompress
+This module is the base class for all IO::Compress and IO::Uncompress
 modules.
 
 
index 19669e2..567ed0b 100644 (file)
@@ -20,7 +20,7 @@ use bytes;
 our (@ISA, $VERSION, $got_encode);
 #@ISA    = qw(Exporter IO::File);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 
 #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.
 
@@ -968,13 +968,9 @@ L<IO::Zlib|IO::Zlib>
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Compress::Base> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -983,7 +979,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index dc6ea41..d35a9e0 100644 (file)
@@ -11,7 +11,7 @@ use File::GlobMapper;
 require Exporter;
 our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS);
 @ISA = qw(Exporter);
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 
 @EXPORT = qw( isaFilehandle isaFilename whatIsInput whatIsOutput 
               isaFileGlobString cleanFileGlobString oneTarget
index a2c4df2..e39f1e8 100644 (file)
@@ -6,25 +6,27 @@ use bytes;
 
 use IO::Compress::Base::Common qw(createSelfTiedObject);
 
-#use IO::Uncompress::Base ;
-use IO::Uncompress::Gunzip ;
-use IO::Uncompress::Inflate ;
-use IO::Uncompress::RawInflate ;
-use IO::Uncompress::Unzip ;
+use IO::Uncompress::Base ;
 
 BEGIN
 {
+   eval { require IO::Uncompress::Adapter::Inflate; import IO::Uncompress::Adapter::Inflate };
    eval { require IO::Uncompress::Adapter::Bunzip2; import IO::Uncompress::Adapter::Bunzip2 };
-   eval { require IO::Uncompress::Adapter::LZO;     import IO::Uncompress::Adapter::LZO };
-   eval { require IO::Uncompress::Bunzip2;   import IO::Uncompress::Bunzip2 };
-   eval { require IO::Uncompress::UnLzop;    import IO::Uncompress::UnLzop };
+   eval { require IO::Uncompress::Adapter::LZO; import IO::Uncompress::Adapter::LZO };
+
+   eval { require IO::Uncompress::Bunzip2; import IO::Uncompress::Bunzip2 };
+   eval { require IO::Uncompress::UnLzop; import IO::Uncompress::UnLzop };
+   eval { require IO::Uncompress::Gunzip; import IO::Uncompress::Gunzip };
+   eval { require IO::Uncompress::Inflate; import IO::Uncompress::Inflate };
+   eval { require IO::Uncompress::RawInflate; import IO::Uncompress::RawInflate };
+   eval { require IO::Uncompress::Unzip; import IO::Uncompress::Unzip };
 }
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $AnyUncompressError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -72,21 +74,26 @@ sub mkUncomp
     my $class = shift ;
     my $got = shift ;
 
+    my $magic ;
+
     # try zlib first
-    my ($obj, $errstr, $errno) = IO::Uncompress::Adapter::Inflate::mkUncompObject();
+    if (defined $IO::Uncompress::RawInflate::VERSION )
+    {
+        my ($obj, $errstr, $errno) = IO::Uncompress::Adapter::Inflate::mkUncompObject();
 
-    return $self->saveErrorString(undef, $errstr, $errno)
-        if ! defined $obj;
+        return $self->saveErrorString(undef, $errstr, $errno)
+            if ! defined $obj;
 
-    *$self->{Uncomp} = $obj;
-    
-     my $magic = $self->ckMagic( qw( RawInflate Inflate Gunzip Unzip ) ); 
+        *$self->{Uncomp} = $obj;
+        
+         $magic = $self->ckMagic( qw( RawInflate Inflate Gunzip Unzip ) ); 
 
-     if ($magic) {
-        *$self->{Info} = $self->readHeader($magic)
-            or return undef ;
+         if ($magic) {
+            *$self->{Info} = $self->readHeader($magic)
+                or return undef ;
 
-        return 1;
+            return 1;
+         }
      }
 
      #foreach my $type ( qw( Bunzip2 UnLzop ) ) {
@@ -158,7 +165,7 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::AnyUncompress - Perl interface to read 1950, 1951 & 1952 files/buffers
+IO::Uncompress::AnyUncompress - Uncompress gzip, zip, bzip2 or lzop file/buffer
 
 
 =head1 SYNOPSIS
@@ -225,11 +232,32 @@ B<WARNING -- This is a Beta release>.
 
 
 
-
 This module provides a Perl interface that allows the reading of
-any files/buffers.
+files/buffers that have been compressed with a variety of compression
+libraries.
+
+The formats supported are:
+
+=over 5
+
+=item RFC 1950
+
+=item RFC 1951
+
+=item gzip (RFC 1952)
+
+=item zip
+
+=item bzip2
+
+=item lzop
+
+=back
+
+The module will auto-detect which, if any, of the supported
+compression formats is being used.
+
 
-For writing 1950, 1951 & 1952 files/buffers, see the companion module IO::Compress::RawDeflate.
 
 
 
@@ -881,13 +909,9 @@ L<IO::Zlib|IO::Zlib>
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::AnyUncompress> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -896,7 +920,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 13b187a..dab3b51 100644 (file)
@@ -10,7 +10,7 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
 @ISA    = qw(Exporter );
 
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 
 use constant G_EOF => 0 ;
 use constant G_ERR => -1 ;
@@ -1316,13 +1316,9 @@ L<IO::Zlib|IO::Zlib>
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::Base> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1331,7 +1327,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index a677ed4..81fa6db 100644 (file)
@@ -1,6 +1,14 @@
 CHANGES
 -------
 
+  2.000_10 13 March 2006
+
+      * Documentation updates.
+
+  2.000_09 3 March 2006
+
+      * Released to CPAN.
+
   2.000_08 2 March 2006
 
       * Split IO::Compress::Zlib into its own distribution.
index 027592a..b56eb28 100644 (file)
@@ -23,6 +23,7 @@ WriteMakefile(
         ? (MAN3PODS    => {})
            : (PREREQ_PM   => { 'Compress::Raw::Zlib'  => 0,
                                    'IO::Compress::Base'   => 0,
+                                   'IO::Uncompress::Base' => 0,
                                    $] >= 5.005 && $] < 5.006   
                                 ? ('File::BSDGlob' => 0) 
                                 : () }
index 1413bc1..15fe35a 100644 (file)
@@ -1,9 +1,9 @@
 
                              IO::Compress::Zlib
 
-                             Version 2.000_08
+                             Version 2.000_10
 
-                                27 Feb 2006 
+                                13 Mar 2006 
 
 
        Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
@@ -23,7 +23,7 @@ DESCRIPTION
 -----------
 
 
-This module provides a Perl interface to allow reading an writing of RFC
+This module provides a Perl interface to allow reading and writing of RFC
 1950, 1951, 1952 (i.e. gzip) and zip files/buffers.
 
 
@@ -79,7 +79,7 @@ TROUBLESHOOTING
 
 
 
-The t/17isize Test Suite
+The t/020isize Test Suite
 ------------------------
 
 This test suite checks that IO::Compress::Zlib can cope with gzip files
index 63eb728..4521f17 100644 (file)
@@ -9,7 +9,7 @@ use IO::Compress::Base::Common qw(:Status);
 use Compress::Raw::Zlib qw(Z_OK Z_FINISH MAX_WBITS) ;
 our ($VERSION);
 
-$VERSION = '2.000_05';
+$VERSION = '2.000_10';
 
 sub mkCompObject
 {
index 9bea284..10315aa 100644 (file)
@@ -8,7 +8,7 @@ use IO::Compress::Base::Common qw(:Status);
 use Compress::Raw::Zlib () ;
 our ($VERSION);
 
-$VERSION = '2.000_05';
+$VERSION = '2.000_10';
 
 sub mkCompObject
 {
index abcfee0..ebc200a 100644 (file)
@@ -15,7 +15,7 @@ use IO::Compress::Base::Common qw(createSelfTiedObject);
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $DeflateError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $DeflateError = '';
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
@@ -167,7 +167,9 @@ __END__
 =head1 NAME
 
 
-IO::Compress::Deflate - Perl interface to write RFC 1950 files/buffers
+
+IO::Compress::Deflate - Write RFC 1950 files/buffers
  
 
 =head1 SYNOPSIS
@@ -573,7 +575,7 @@ This parameter defaults to 0.
 
 
 
-=item -Merge =E<gt> 0|1
+=item Merge =E<gt> 0|1
 
 This option is used to compress input data and append it to an existing
 compressed data stream in C<$output>. The end result is a single compressed
@@ -988,13 +990,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Compress::Deflate> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1003,7 +1001,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 0fc8519..5732a30 100644 (file)
@@ -26,7 +26,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GzipError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $GzipError = '' ;
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
@@ -429,7 +429,9 @@ __END__
 =head1 NAME
 
 
-IO::Compress::Gzip - Perl interface to write RFC 1952 files/buffers
+
+IO::Compress::Gzip - Write RFC 1952 files/buffers
  
 
 =head1 SYNOPSIS
@@ -591,16 +593,8 @@ See L<File::GlobMapper|File::GlobMapper> for more details.
 If the C<$input> parameter is any other type, C<undef> will be returned.
 
 
-
 In addition, if C<$input> is a simple filename, the default values for
-a number of the gzip header fields created by this function will 
-be sourced from that file -- 
-
-the NAME gzip header field will be populated with
-the filename itself, and the MTIME header field will be set to the
-modification time of the file.
-The intention here is to mirror part of the behaviour of the gzip
-executable.
+the C<Name> and C<Time> options will be sourced from that file.
 
 If you do not want to use these defaults they can be overridden by
 explicitly setting the C<Name> and C<Time> options or by setting the
@@ -854,7 +848,7 @@ This parameter defaults to 0.
 
 
 
-=item -Merge =E<gt> 0|1
+=item Merge =E<gt> 0|1
 
 This option is used to compress input data and append it to an existing
 compressed data stream in C<$output>. The end result is a single compressed
@@ -1465,13 +1459,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Compress::Gzip> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1480,7 +1470,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 7d046ea..496b8ca 100644 (file)
@@ -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.000_08';
+$VERSION = '2.000_10';
 
 @ISA = qw(Exporter);
 
index 8891a4a..1dcd650 100644 (file)
@@ -16,7 +16,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $RawDeflateError = '';
 
 @ISA = qw(Exporter IO::Compress::Base);
@@ -248,7 +248,9 @@ __END__
 =head1 NAME
 
 
-IO::Compress::RawDeflate - Perl interface to write RFC 1951 files/buffers
+
+IO::Compress::RawDeflate - Write RFC 1951 files/buffers
  
 
 =head1 SYNOPSIS
@@ -657,7 +659,7 @@ This parameter defaults to 0.
 
 
 
-=item -Merge =E<gt> 0|1
+=item Merge =E<gt> 0|1
 
 This option is used to compress input data and append it to an existing
 compressed data stream in C<$output>. The end result is a single compressed
@@ -1072,13 +1074,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Compress::RawDeflate> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1087,7 +1085,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 6952bbc..c714341 100644 (file)
@@ -13,7 +13,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $ZipError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $ZipError = '';
 
 @ISA = qw(Exporter IO::Compress::RawDeflate);
@@ -299,7 +299,9 @@ __END__
 =head1 NAME
 
 
-IO::Compress::Zip - Perl interface to write zip files/buffers
+
+IO::Compress::Zip - Write zip files/buffers
  
 
 =head1 SYNOPSIS
@@ -376,8 +378,9 @@ compressed data to files or buffer.
 
 
 
-Note that this module is not intended to be a replacement for the module
+Note that IO::Compress::Zip is not intended to be a replacement for the module
 C<Archive::Zip>.
+
 The primary aim of this module is not as an archiver, but to provide
 streaming write access to zip file files and buffers.
 
@@ -463,16 +466,8 @@ See L<File::GlobMapper|File::GlobMapper> for more details.
 If the C<$input> parameter is any other type, C<undef> will be returned.
 
 
-
 In addition, if C<$input> is a simple filename, the default values for
-a number of the zip header fields created by this function will 
-be sourced from that file -- 
-
-the NAME gzip header field will be populated with
-the filename itself, and the MTIME header field will be set to the
-modification time of the file.
-The intention here is to mirror part of the behaviour of the 
-zip executable.
+the C<Name> and C<Time> options will be sourced from that file.
 
 If you do not want to use these defaults they can be overridden by
 explicitly setting the C<Name> and C<Time> options or by setting the
@@ -1108,13 +1103,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Compress::Zip> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1123,7 +1114,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 5049492..336bea9 100644 (file)
@@ -7,7 +7,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
 
-$VERSION = '1.00';
+$VERSION = '2.000_10';
 
 @ISA = qw(Exporter);
 
index 2bb0f14..33df33c 100644 (file)
@@ -9,7 +9,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 
 @ISA = qw(Exporter);
 
index 30ab72f..11f325b 100644 (file)
@@ -8,7 +8,7 @@ use IO::Compress::Base::Common qw(:Status);
 
 our ($VERSION);
 
-$VERSION = '2.000_05';
+$VERSION = '2.000_10';
 
 use Compress::Raw::Zlib ();
 
index 4d63442..3b15e49 100644 (file)
@@ -8,7 +8,7 @@ use IO::Compress::Base::Common qw(:Status);
 use Compress::Raw::Zlib qw(Z_OK Z_DATA_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
 
 our ($VERSION);
-$VERSION = '2.000_05';
+$VERSION = '2.000_10';
 
 
 
index 0f30931..38dd36a 100644 (file)
@@ -21,7 +21,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $AnyInflateError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -123,7 +123,7 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::AnyInflate - Perl interface to read RFC 1950, 1951 & 1952 files/buffers
+IO::Uncompress::AnyInflate - Uncompress zlib-based (zip, gzip) file/buffer
 
 
 =head1 SYNOPSIS
@@ -192,15 +192,32 @@ B<WARNING -- This is a Beta release>.
 
 
 
-
 This module provides a Perl interface that allows the reading of
-files/buffers that conform to RFC's 1950, 1951 and 1952. 
+files/buffers that have been compressed in a number of formats that use the
+zlib compression library.
+
+The formats supported are
+
+=over 5
+
+=item RFC 1950
+
+=item RFC 1951
+
+=item gzip (RFC 1952)
+
+=item zip
 
-The module will auto-detect which, if any, of the three supported
+=back
+
+The module will auto-detect which, if any, of the supported
 compression formats is being used.
 
 
 
+
+
+
 =head1 Functional Interface
 
 A top-level function, C<anyinflate>, is provided to carry out
@@ -940,13 +957,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::AnyInflate> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -955,7 +968,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index aefc3c2..9ebc03b 100644 (file)
@@ -27,7 +27,7 @@ Exporter::export_ok_tags('all');
 
 $GunzipError = '';
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 
 sub new
 {
@@ -296,7 +296,9 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::Gunzip - Perl interface to read RFC 1952 files/buffers
+
+IO::Uncompress::Gunzip - Read RFC 1952 files/buffers
+
 
 
 =head1 SYNOPSIS
@@ -373,6 +375,9 @@ For writing RFC 1952 files/buffers, see the companion module IO::Compress::Gzip.
 
 
 
+
+
+
 =head1 Functional Interface
 
 A top-level function, C<gunzip>, is provided to carry out
@@ -1112,13 +1117,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::Gunzip> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1127,7 +1128,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 62c177c..f250e8a 100644 (file)
@@ -13,7 +13,7 @@ use IO::Uncompress::RawInflate ;
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $InflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::RawInflate );
@@ -178,7 +178,9 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::Inflate - Perl interface to read RFC 1950 files/buffers
+
+IO::Uncompress::Inflate - Read RFC 1950 files/buffers
+
 
 
 =head1 SYNOPSIS
@@ -255,6 +257,9 @@ For writing RFC 1950 files/buffers, see the companion module IO::Compress::Defla
 
 
 
+
+
+
 =head1 Functional Interface
 
 A top-level function, C<inflate>, is provided to carry out
@@ -938,13 +943,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::Inflate> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -953,7 +954,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 72b1dbb..c463704 100644 (file)
@@ -17,7 +17,7 @@ use IO::Uncompress::Adapter::Inflate ;
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $RawInflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::Base );
@@ -331,7 +331,9 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::RawInflate - Perl interface to read RFC 1951 files/buffers
+
+IO::Uncompress::RawInflate - Read RFC 1951 files/buffers
+
 
 
 =head1 SYNOPSIS
@@ -408,6 +410,9 @@ For writing RFC 1951 files/buffers, see the companion module IO::Compress::RawDe
 
 
 
+
+
+
 =head1 Functional Interface
 
 A top-level function, C<rawinflate>, is provided to carry out
@@ -1059,13 +1064,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::RawInflate> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1074,7 +1075,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 5e021df..01e81e7 100644 (file)
@@ -16,7 +16,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $UnzipError = '';
 
 @ISA    = qw(Exporter IO::Uncompress::RawInflate);
@@ -527,7 +527,9 @@ __END__
 =head1 NAME
 
 
-IO::Uncompress::Unzip - Perl interface to read zip files/buffers
+
+IO::Uncompress::Unzip - Read zip files/buffers
+
 
 
 =head1 SYNOPSIS
@@ -604,6 +606,9 @@ For writing zip files/buffers, see the companion module IO::Compress::Zip.
 
 
 
+
+
+
 =head1 Functional Interface
 
 A top-level function, C<unzip>, is provided to carry out
@@ -1273,13 +1278,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<IO::Uncompress::Unzip> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1288,7 +1289,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index 4cc165d..35b8f5a 100644 (file)
@@ -30,8 +30,8 @@ BEGIN
 
 
 my $Inc = join " ", map qq["-I$_"] => @INC;
-#$Inc = '"-MExtUtils::testlib"'
-#    if ! $ENV{PERL_CORE} && eval " require ExtUtils::testlib; " ;
+$Inc = '"-MExtUtils::testlib"'
+    if ! $ENV{PERL_CORE} && eval " require ExtUtils::testlib; " ;
 
 my $Perl = ($ENV{'FULLPERL'} or $^X or 'perl') ;
 $Perl = qq["$Perl"] if $^O eq 'MSWin32' ;
index 14f4cf7..3d79a5f 100644 (file)
@@ -18,7 +18,7 @@ BEGIN {
 
     # Check external gzip is available
     my $name = 'gzip';
-    for my $dir (split ":", $ENV{PATH})
+    for my $dir (reverse split ":", $ENV{PATH})
     {
         $GZIP = "$dir/$name"
             if -x "$dir/$name" ;
@@ -46,14 +46,18 @@ sub readWithGzip
 {
     my $file = shift ;
 
+    my $lex = new LexFile my $outfile;
+
     my $comp = "$GZIP -dc" ;
 
-    open F, "$comp $file |";
-    local $/;
-    $_[0] = <F>;
-    close F;
+    #diag "$comp $file >$outfile" ;
+
+    system("$comp $file >$outfile") == 0
+        or die "'$comp' failed: $?";
+
+    $_[0] = readFile($outfile);
 
-    return $? ;
+    return 1 ;
 }
 
 sub getGzipInfo
@@ -67,14 +71,16 @@ sub writeWithGzip
     my $content = shift ;
     my $options = shift || '';
 
+    my $lex = new LexFile my $infile;
+    writeFile($infile, $content);
+
     unlink $file ;
-    my $gzip = "$GZIP -c $options >$file" ;
+    my $gzip = "$GZIP -c $options $infile >$file" ;
 
-    open F, "| $gzip" ;
-    print F $content ;
-    close F ;
+    system($gzip) == 0 
+        or die "'$gzip' failed: $?";
 
-    return $? ;
+    return 1 ;
 }
 
 
@@ -87,15 +93,15 @@ sub writeWithGzip
     my $content = "hello world\n" ;
     my $got;
 
-    is writeWithGzip($file, $content), 0, "writeWithGzip ok";
+    is writeWithGzip($file, $content), 1, "writeWithGzip ok";
 
     gunzip $file => \$got ;
-    is $got, $content;
+    is $got, $content, "got content";
 
 
     gzip \$content => $file1;
     $got = '';
-    is readWithGzip($file1, $got), 0, "readWithGzip returns 0";
+    is readWithGzip($file1, $got), 1, "readWithGzip ok";
     is $got, $content, "got content";
 }
 
index 1b8ab2e..a5a89c5 100644 (file)
@@ -329,8 +329,7 @@ sub zlib_files
 
 
 
-my @GZIP_OS_Names ;
-my %OSnames ;
+use vars qw ( @GZIP_OS_Names  %OSnames) ;
 
 BEGIN
 {
index a84265e..0d6e868 100644 (file)
@@ -1,9 +1,9 @@
 
                              Compress::Raw::Zlib
 
-                             Version 2.000_08
+                             Version 2.000_10
 
-                                27 Feb 2006 
+                                13 Mar 2006 
 
 
        Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
@@ -79,7 +79,6 @@ To install Compress::Raw::Zlib, run the command below:
 
 
 
-
 Controlling the version of zlib used by Compress::Raw::Zlib 
 ----------------------------------------------------------
 
index 3f7f6e6..9fc4e37 100644 (file)
@@ -1862,7 +1862,8 @@ resetLastBlockByte(s, byte)
 #ifndef MAGIC_APPEND
         croak("resetLastBlockByte needs zlib 1.2.1 or better");
 #else
-        *byte = *byte ^ (1 << ((8 - s->window_lastbit) & 7));
+        if (byte != NULL)
+            *byte = *byte ^ (1 << ((8 - s->window_lastbit) & 7));
 #endif
 
 
index 65a9597..d282bad 100644 (file)
@@ -13,7 +13,7 @@ use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -1177,13 +1177,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<Compress::Raw::Zlib> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1192,7 +1188,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 2005-2006 Paul Marquess. All rights reserved.
 
index bb972af..ef4aef5 100644 (file)
@@ -24,13 +24,13 @@ BEGIN
 
     my $count = 0 ;
     if ($] < 5.005) {
-        $count = 188 ;
+        $count = 189 ;
     }
     elsif ($] >= 5.006) {
-        $count = 242 ;
+        $count = 243 ;
     }
     else {
-        $count = 200 ;
+        $count = 201 ;
     }
 
     plan tests => $count + $extra;
@@ -720,6 +720,13 @@ if ($] >= 5.005)
     
 }
 
+{
+    # regression - check that resetLastBlockByte can cope with a NULL
+    # pointer.
+    Compress::Raw::Zlib::InflateScan->new->resetLastBlockByte(undef);
+    ok 1, "resetLastBlockByte(undef) is ok" ;
+}
+
 exit if $] < 5.006 ;
 
 title 'Looping Append test with substr output - substr the end of the string';
index ec29cfe..e63ff55 100644 (file)
@@ -1,11 +1,18 @@
 CHANGES
 -------
 
-  2.000_08 2 March 2006
+  2.000_10 13 March 2006
+
+      * Changed gzread so that its behaviour matches C::Z::gzread 1.x if it
+        is called after eof. In this case it will write an empty string
+        into the output parameter. This change is solely for backward
+        compatability reasons.
 
-      * Moved the IO::* modules out into their own distributions.
+  2.000_09 3 March 2006
 
-  2.000_08 9 January 2006
+      * Posted to CPAN
+
+  2.000_08 2 March 2006
 
       * Breakout zlib specific code into separate modules.
 
index 63c8bce..df93a6c 100755 (executable)
@@ -21,10 +21,14 @@ WriteMakefile(
     (
       $ENV{SKIP_FOR_CORE}
         ? (MAN3PODS    => {})
-           : (PREREQ_PM   => { 'Compress::Raw::Zlib'  => 0,
-                                   'IO::Compress::Base'   => 0,
-                                   'IO::Compress::Zlib'   => 0,
-                                   'Scalar::Util'         => 0,
+           : (PREREQ_PM   => { 'Compress::Raw::Zlib'           => 0,
+                                   'IO::Compress::Base'            => 0,
+                                   'IO::Compress::Base::Common'    => 0,
+                                   'IO::Uncompress::Base'          => 0,
+                                   'IO::Compress::Gzip'            => 0,
+                                   'IO::Compress::Gzip::Constants' => 0,
+                                   'IO::Uncompress::Gunzip'        => 0,
+                                   'Scalar::Util'                  => 0,
                           }
              )
     ),
index 1a1c253..003d535 100644 (file)
@@ -1,9 +1,9 @@
 
                              Compress::Zlib
 
-                             Version 2.000_08
+                             Version 2.000_10
 
-                                27 Feb 2006 
+                                13 Mar 2006 
 
 
        Copyright (c) 1995-2006 Paul Marquess. All rights reserved.
index 3bbd297..5241a5a 100755 (executable)
@@ -15,11 +15,8 @@ my $filename ;
 foreach my $filename (@ARGV) {
     my $buffer ;
 
-    my $file = $filename ;
-    $file = \*STDIN if $file eq '-' ;
-
-    my $gz = gzopen($file, "rb") 
-         or die "Cannot open $file: $gzerrno\n" ;
+    my $gz = gzopen($filename, "rb") 
+         or die "Cannot open $filename: $gzerrno\n" ;
 
     print $buffer while $gz->gzread($buffer) > 0 ;
 
index cb03a2c..faacb0a 100755 (executable)
@@ -7,7 +7,8 @@ use Compress::Zlib ;
 
 binmode STDOUT;        # gzopen only sets it on the fd
 
-my $gz = gzopen(\*STDOUT, "wb")
+#my $gz = gzopen(\*STDOUT, "wb")
+my $gz = gzopen('-', "wb")
          or die "Cannot open stdout: $gzerrno\n" ;
 
 while (<>) {
index 9e65ecd..00f8244 100644 (file)
@@ -18,7 +18,7 @@ use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.000_08';
+$VERSION = '2.000_10';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -158,11 +158,14 @@ sub Compress::Zlib::gzFile::gzread
     return _set_gzerr(Z_STREAM_ERROR())
         if $self->[1] ne 'inflate';
 
-    return 0 if $self->gzeof();
+    if ($self->gzeof()) {
+        # Zap the output buffer to match ver 1 behaviour.
+        $_[0] = "" ;
+        return 0 ;
+    }
 
     my $gz = $self->[0] ;
     my $status = $gz->read($_[0], defined $_[1] ? $_[1] : 4096) ; 
-    $_[0] = "" if ! defined $_[0] ;
     _save_gzerr($gz, 1);
     return $status ;
 }
@@ -1436,13 +1439,9 @@ The primary site for gzip is F<http://www.gzip.org>.
 
 
 
-
-
-
 =head1 AUTHOR
 
-The I<Compress::Zlib> module was written by Paul Marquess,
-F<pmqs@cpan.org>. 
+This module was written by Paul Marquess, F<pmqs@cpan.org>. 
 
 
 
@@ -1451,7 +1450,6 @@ F<pmqs@cpan.org>.
 See the Changes file.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (c) 1995-2006 Paul Marquess. All rights reserved.
 
index 97f0a1c..d4a3a0d 100644 (file)
@@ -20,7 +20,7 @@ BEGIN {
     $extra = 1
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
-    plan tests => 208 + $extra ;
+    plan tests => 210 + $extra ;
 
     use_ok('Compress::Zlib', 2) ;
     use_ok('IO::Compress::Gzip::Constants') ;
@@ -70,9 +70,17 @@ is $fil->gzread($uncomp), $len;
 
 is $fil->gztell(), $len;
 ok   $fil->gzeof() ;
+
+# gzread after eof bahavior
+
+my $xyz = "123" ;
+is $fil->gzread($xyz), 0, "gzread returns 0 on eof" ;
+is $xyz, "", "gzread on eof zaps the output buffer [Match 1,x behavior]" ;
+
 ok ! $fil->gzclose ;
 ok   $fil->gzeof() ;
 
+
 1 while unlink $name ;
 
 ok $hello eq $uncomp ;
index c10b14f..884c416 100644 (file)
@@ -18,7 +18,7 @@ BEGIN
     $extra = 1
         if $st ;
 
-    plan(tests => 597 + $extra) ;
+    plan(tests => 601 + $extra) ;
 }
 
 sub myGZreadFile
@@ -1260,6 +1260,8 @@ EOT
                 is $u->read($buff, 1), 0;
                 ok $u->eof() ;
 
+                # getc returns undef on eof
+                is $u->getc(), undef;
                 $u->close();
 
             }
index 2dd52c6..52f51c7 100644 (file)
@@ -23,16 +23,14 @@ BEGIN
     $BadPerl = ($] >= 5.006 and $] <= 5.008) ;
 
     if ($BadPerl) {
-        $tests = 242 ;
+        $tests = 241 ;
     }
     else {
-        $tests = 250 ;
+        $tests = 249 ;
     }
 
     plan tests => $tests + $extra ;
 
-    use_ok('Compress::Raw::Zlib') ;
-
 }