summaryrefslogtreecommitdiff
path: root/ext/Compress
diff options
context:
space:
mode:
authorPaul Marquess <paul.marquess@btinternet.com>2007-09-01 21:41:57 +0100
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-09-02 08:06:33 +0000
commitd56f7e4ca45caec42b6ed197d4843e3e4a665e1f (patch)
treee595c1c9e03e388df9007e265d573cd48284754c /ext/Compress
parent07aa3531b6aaee06066f04e382127ab87e9c8c07 (diff)
downloadperl-d56f7e4ca45caec42b6ed197d4843e3e4a665e1f.tar.gz
Compress* 2.006
From: "Paul Marquess" <Paul.Marquess@ntlworld.com> Message-ID: <00f501c7ecd0$29b32ef0$6601a8c0@myopwv.com> p4raw-id: //depot/perl@31782
Diffstat (limited to 'ext/Compress')
-rw-r--r--ext/Compress/Raw/Zlib/Changes6
-rw-r--r--ext/Compress/Raw/Zlib/Makefile.PL2
-rw-r--r--ext/Compress/Raw/Zlib/README4
-rw-r--r--ext/Compress/Raw/Zlib/Zlib.xs27
-rw-r--r--ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm2
-rw-r--r--ext/Compress/Zlib/Changes14
-rwxr-xr-xext/Compress/Zlib/Makefile.PL4
-rw-r--r--ext/Compress/Zlib/README6
-rw-r--r--ext/Compress/Zlib/lib/Compress/Zlib.pm45
-rw-r--r--ext/Compress/Zlib/t/03zlib-v1.t11
-rw-r--r--ext/Compress/Zlib/t/14gzopen.t26
11 files changed, 110 insertions, 37 deletions
diff --git a/ext/Compress/Raw/Zlib/Changes b/ext/Compress/Raw/Zlib/Changes
index ffd51a30b2..6efaaf65e1 100644
--- a/ext/Compress/Raw/Zlib/Changes
+++ b/ext/Compress/Raw/Zlib/Changes
@@ -1,6 +1,12 @@
CHANGES
-------
+ 2.006 1 September 2007
+
+ * Makefile.PL
+ Added INSTALLDIRS directive to install as a core module when built
+ on a perl >= 5.9.
+
2.005 18 June 2007
* Only include ppport.h when not being built with perl.
diff --git a/ext/Compress/Raw/Zlib/Makefile.PL b/ext/Compress/Raw/Zlib/Makefile.PL
index 3eb400624c..72a7b89a5a 100644
--- a/ext/Compress/Raw/Zlib/Makefile.PL
+++ b/ext/Compress/Raw/Zlib/Makefile.PL
@@ -95,6 +95,8 @@ WriteMakefile(
: ()
),
+ INSTALLDIRS => ($] >= 5.009 ? 'perl' : 'site'),
+
((ExtUtils::MakeMaker->VERSION() gt '6.30') ?
('LICENSE' => 'perl') : ()),
diff --git a/ext/Compress/Raw/Zlib/README b/ext/Compress/Raw/Zlib/README
index 523f3b312e..58ef3262aa 100644
--- a/ext/Compress/Raw/Zlib/README
+++ b/ext/Compress/Raw/Zlib/README
@@ -1,9 +1,9 @@
Compress::Raw::Zlib
- Version 2.005
+ Version 2.006
- 18th June 2007
+ 1st September 2007
Copyright (c) 2005-2007 Paul Marquess. All rights reserved.
diff --git a/ext/Compress/Raw/Zlib/Zlib.xs b/ext/Compress/Raw/Zlib/Zlib.xs
index 31b7efd3aa..b100f4cf3b 100644
--- a/ext/Compress/Raw/Zlib/Zlib.xs
+++ b/ext/Compress/Raw/Zlib/Zlib.xs
@@ -228,7 +228,6 @@ typedef di_stream * Compress__Raw__Zlib__inflateScanStream ;
#define adlerInitial adler32(0L, Z_NULL, 0)
#define crcInitial crc32(0L, Z_NULL, 0)
-
static const char * const my_z_errmsg[] = {
"need dictionary", /* Z_NEED_DICT 2 */
"stream end", /* Z_STREAM_END 1 */
@@ -607,8 +606,8 @@ BOOT:
}
-#define Zip_zlib_version() (char*)zlib_version
-char*
+#define Zip_zlib_version() (const char*)zlib_version
+const char*
Zip_zlib_version()
unsigned
@@ -650,6 +649,8 @@ Zip_adler32(buf, adler=adlerInitial)
adler = SvUV(ST(1)) ;
else
adler = adlerInitial;
+ OUTPUT:
+ RETVAL
#define Zip_crc32(buf, crc) crc32(crc, buf, (uInt)len)
@@ -724,9 +725,9 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
int err ;
deflateStream s ;
- if (trace)
- warn("in _deflateInit(level=%d, method=%d, windowBits=%d, memLevel=%d, strategy=%d, bufsize=%ld\n",
- level, method, windowBits, memLevel, strategy, bufsize) ;
+ if (trace)
+ warn("in _deflateInit(level=%d, method=%d, windowBits=%d, memLevel=%d, strategy=%d, bufsize=%ld dictionary=%p)\n",
+ level, method, windowBits, memLevel, strategy, bufsize, dictionary) ;
if ((s = InitStream() )) {
s->Level = level;
@@ -761,8 +762,11 @@ _deflateInit(flags,level, method, windowBits, memLevel, strategy, bufsize, dicti
else
err = Z_MEM_ERROR ;
- XPUSHs(sv_setref_pv(sv_newmortal(),
- "Compress::Raw::Zlib::deflateStream", (void*)s));
+ {
+ SV* obj = sv_setref_pv(sv_newmortal(),
+ "Compress::Raw::Zlib::deflateStream", (void*)s);
+ XPUSHs(obj);
+ }
if (GIMME == G_ARRAY) {
SV * sv = sv_2mortal(newSViv(err)) ;
setDUALstatus(sv, err);
@@ -814,11 +818,14 @@ _inflateInit(flags, windowBits, bufsize, dictionary)
else
err = Z_MEM_ERROR ;
- XPUSHs(sv_setref_pv(sv_newmortal(),
+ {
+ SV* obj = sv_setref_pv(sv_newmortal(),
ix == 1
? "Compress::Raw::Zlib::inflateScanStream"
: "Compress::Raw::Zlib::inflateStream",
- (void*)s));
+ (void*)s);
+ XPUSHs(obj);
+ }
if (GIMME == G_ARRAY) {
SV * sv = sv_2mortal(newSViv(err)) ;
setDUALstatus(sv, err);
diff --git a/ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm b/ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm
index 5a0098b5c6..4839ca2414 100644
--- a/ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm
+++ b/ext/Compress/Raw/Zlib/lib/Compress/Raw/Zlib.pm
@@ -13,7 +13,7 @@ use warnings ;
use bytes ;
our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
-$VERSION = '2.005';
+$VERSION = '2.006';
$XS_VERSION = $VERSION;
$VERSION = eval $VERSION;
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<IO::Compress::Gzip> and C<IO::Uncompress::Gunzip> modules for
reading/writing gzip files, and the C<Compress::Raw::Zlib> 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</AUTHOR>). See L<GZIP INTERFACE>
+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</AUTHOR>). See L<GZIP INTERFACE>
-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<IO::Compress> and C<IO::Uncompress> modules no
+new features are planned for C<Compress::Zlib> - the new modules do
+everything that C<Compress::Zlib> does and then some. Development on
+C<Compress::Zlib> 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<IO::Compress> or C<IO::Uncompress> modules.
=head1 GZIP INTERFACE
@@ -770,11 +780,13 @@ the case of an error, -1.
It is legal to intermix calls to C<gzread> and C<gzreadline>.
-In addition, C<gzreadline> fully supports the use of of the variable C<$/>
-(C<$INPUT_RECORD_SEPARATOR> or C<$RS> when C<English> 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<gzreadline> ignores the C<$/> variable - it I<always> 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<English> is
+in use) see L<IO::Uncompress::Gunzip|IO::Uncompress::Gunzip>.
=item B<$byteswritten = $gz-E<gt>gzwrite($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';
+ }
+}