From d56f7e4ca45caec42b6ed197d4843e3e4a665e1f Mon Sep 17 00:00:00 2001 From: Paul Marquess Date: Sat, 1 Sep 2007 21:41:57 +0100 Subject: Compress* 2.006 From: "Paul Marquess" Message-ID: <00f501c7ecd0$29b32ef0$6601a8c0@myopwv.com> p4raw-id: //depot/perl@31782 --- ext/Compress/Zlib/Changes | 14 +++++++++++ ext/Compress/Zlib/Makefile.PL | 4 ++- ext/Compress/Zlib/README | 6 ++--- ext/Compress/Zlib/lib/Compress/Zlib.pm | 45 +++++++++++++++++++++------------- ext/Compress/Zlib/t/03zlib-v1.t | 11 +++++++-- ext/Compress/Zlib/t/14gzopen.t | 26 +++++++++++++++++++- 6 files changed, 82 insertions(+), 24 deletions(-) (limited to 'ext/Compress/Zlib') diff --git a/ext/Compress/Zlib/Changes b/ext/Compress/Zlib/Changes index eff627b37d..bcc74fbe06 100644 --- a/ext/Compress/Zlib/Changes +++ b/ext/Compress/Zlib/Changes @@ -1,6 +1,20 @@ CHANGES ------- + 2.006 1 September 20007 + + * Makefile.PL + Added INSTALLDIRS directive to install as a core module when built + on a perl >= 5.9. + + * t/03zlib-v1.t + Fixed crc32 and adler32 tests in to remove ascii assumption. + + * lib/Compress/Zlib.pm + Make gzreadline not support $/, just like in Compress::Zlib 1.x + Folk who want $/ with readline support can get it in + IO::Uncompress::Gunzip. + [rt.cpan.org #28663] and Debian bug #435656 http://bugs.debian.org/435656 2.005 18 June 2007 * Added info about removing Compress::Zlib version 1, before diff --git a/ext/Compress/Zlib/Makefile.PL b/ext/Compress/Zlib/Makefile.PL index f09008e663..5c7e838e00 100755 --- a/ext/Compress/Zlib/Makefile.PL +++ b/ext/Compress/Zlib/Makefile.PL @@ -3,7 +3,7 @@ use strict ; require 5.004 ; -$::VERSION = '2.005' ; +$::VERSION = '2.006' ; use private::MakeUtil; use ExtUtils::MakeMaker 5.16 ; @@ -43,6 +43,8 @@ WriteMakefile( : () ), + INSTALLDIRS => ($] >= 5.009 ? 'perl' : 'site'), + ((ExtUtils::MakeMaker->VERSION() gt '6.30') ? ('LICENSE' => 'perl') : ()), diff --git a/ext/Compress/Zlib/README b/ext/Compress/Zlib/README index 8a36799cee..24a8317b49 100644 --- a/ext/Compress/Zlib/README +++ b/ext/Compress/Zlib/README @@ -1,9 +1,9 @@ Compress::Zlib - Version 2.005 + Version 2.006 - 18th June 2007 + 1st September 2007 Copyright (c) 1995-2007 Paul Marquess. All rights reserved. @@ -32,7 +32,7 @@ installed on your system: * Perl 5.004 or better. * Compress::Raw::Zlib - * IO::Compress::Gzip + * IO::Compress::Zlib diff --git a/ext/Compress/Zlib/lib/Compress/Zlib.pm b/ext/Compress/Zlib/lib/Compress/Zlib.pm index e10763232e..b4b04cd6ba 100644 --- a/ext/Compress/Zlib/lib/Compress/Zlib.pm +++ b/ext/Compress/Zlib/lib/Compress/Zlib.pm @@ -8,17 +8,17 @@ use Carp ; use IO::Handle ; use Scalar::Util qw(dualvar); -use IO::Compress::Base::Common 2.005 ; -use Compress::Raw::Zlib 2.005 ; -use IO::Compress::Gzip 2.005 ; -use IO::Uncompress::Gunzip 2.005 ; +use IO::Compress::Base::Common 2.006 ; +use Compress::Raw::Zlib 2.006 ; +use IO::Compress::Gzip 2.006 ; +use IO::Uncompress::Gunzip 2.006 ; use strict ; use warnings ; use bytes ; our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD); -$VERSION = '2.005'; +$VERSION = '2.006'; $XS_VERSION = $VERSION; $VERSION = eval $VERSION; @@ -180,7 +180,12 @@ sub Compress::Zlib::gzFile::gzreadline my $self = shift ; my $gz = $self->[0] ; - $_[0] = $gz->getline() ; + { + # Maintain backward compatibility with 1.x behaviour + # It didn't support $/, so this can't either. + local $/ = "\n" ; + $_[0] = $gz->getline() ; + } _save_gzerr($gz, 1); return defined $_[0] ? length $_[0] : 0 ; } @@ -447,7 +452,7 @@ sub inflate package Compress::Zlib ; -use IO::Compress::Gzip::Constants 2.005 ; +use IO::Compress::Gzip::Constants 2.006 ; sub memGzip($) { @@ -652,12 +657,17 @@ C and C modules for reading/writing gzip files, and the C module for some low-level zlib access. -The interface provided by version 2 should be 100% backward compatible with -version 1. If you find a difference in the expected behaviour please -contact the author (See L). See L +The interface provided by version 2 of this module should be 100% backward +compatible with version 1. If you find a difference in the expected +behaviour please contact the author (See L). See L -If you are writing new code, your first port of call should be to use one -these new modules. +With the creation of the C and C modules no +new features are planned for C - the new modules do +everything that C does and then some. Development on +C will be limited to bug fixes only. + +If you are writing new code, your first port of call should be one of the +new C or C modules. =head1 GZIP INTERFACE @@ -770,11 +780,13 @@ the case of an error, -1. It is legal to intermix calls to C and C. -In addition, C fully supports the use of of the variable C<$/> -(C<$INPUT_RECORD_SEPARATOR> or C<$RS> when C is in use) to -determine what constitutes an end of line. Both paragraph mode and file -slurp mode are supported. +To maintain backward compatibility with version 1.x of this module +C ignores the C<$/> variable - it I uses the string +C<"\n"> as the line delimiter. +If you want to read a gzip file a line at a time and have it respect the +C<$/> variable (or C<$INPUT_RECORD_SEPARATOR>, or C<$RS> when C is +in use) see L. =item B<$byteswritten = $gz-Egzwrite($buffer) ;> @@ -1458,4 +1470,3 @@ modify it under the same terms as Perl itself. - diff --git a/ext/Compress/Zlib/t/03zlib-v1.t b/ext/Compress/Zlib/t/03zlib-v1.t index d46c224db7..99a80f9ff4 100644 --- a/ext/Compress/Zlib/t/03zlib-v1.t +++ b/ext/Compress/Zlib/t/03zlib-v1.t @@ -868,8 +868,11 @@ if ($] >= 5.005) { title 'CRC32' ; - my $data = 'ZgRNtjgSUW'; # CRC32 of this data should have the high bit set + # CRC32 of this data should have the high bit set + # value in ascii is ZgRNtjgSUW + my $data = "\x5a\x67\x52\x4e\x74\x6a\x67\x53\x55\x57"; my $expected_crc = 0xCF707A2B ; # 3480255019 + my $crc = crc32($data) ; is $crc, $expected_crc; } @@ -877,7 +880,11 @@ if ($] >= 5.005) { title 'Adler32' ; - my $data = 'lpscOVsAJiUfNComkOfWYBcPhHZ[bT'; # adler of this data should have the high bit set + # adler of this data should have the high bit set + # value in ascii is lpscOVsAJiUfNComkOfWYBcPhHZ[bT + my $data = "\x6c\x70\x73\x63\x4f\x56\x73\x41\x4a\x69\x55\x66" . + "\x4e\x43\x6f\x6d\x6b\x4f\x66\x57\x59\x42\x63\x50" . + "\x68\x48\x5a\x5b\x62\x54"; my $expected_crc = 0xAAD60AC7 ; # 2866154183 my $crc = adler32($data) ; is $crc, $expected_crc; diff --git a/ext/Compress/Zlib/t/14gzopen.t b/ext/Compress/Zlib/t/14gzopen.t index f8011e59ff..805bb0ddb4 100644 --- a/ext/Compress/Zlib/t/14gzopen.t +++ b/ext/Compress/Zlib/t/14gzopen.t @@ -20,7 +20,7 @@ BEGIN { $extra = 1 if eval { require Test::NoWarnings ; import Test::NoWarnings; 1 }; - plan tests => 217 + $extra ; + plan tests => 250 + $extra ; use_ok('Compress::Zlib', 2) ; use_ok('IO::Compress::Gzip::Constants') ; @@ -601,3 +601,27 @@ foreach my $stdio ( ['-', '-'], [*STDIN, *STDOUT]) ok defined $buf2, " output buffer defined"; is $buf2, "", " output buffer empty string"; } + +{ + title 'gzreadline does not support $/'; + + my $lex = new LexFile my $name ; + + my $a = gzopen($name, "w"); + my $text = "fred\n"; + my $len = length $text; + $a->gzwrite($text); + $a->gzwrite("\n\n"); + $a->gzclose ; + + for my $delim ( undef, "", 0, 1, "abc", $text, "\n\n", "\n" ) + { + local $/ = $delim; + my $u = gzopen($name, "r"); + my $line; + is $u->gzreadline($line), length $text, " read $len bytes"; + is $line, $text, " got expected line"; + ok ! $u->gzclose, " closed" ; + is $/, $delim, ' $/ unchanged by gzreadline'; + } +} -- cgit v1.2.1