RE: [PATCH] compress 2.018
authorH.Merijn Brand <[mailto:h.m.brand@xs4all.nl]>
Sun, 3 May 2009 18:53:16 +0000 (19:53 +0100)
committerH.Merijn Brand <h.m.brand@xs4all.nl>
Sun, 3 May 2009 19:14:42 +0000 (21:14 +0200)
> On Sun, 3 May 2009 17:30:27 +0100, "Paul Marquess"
> <Paul.Marquess@ntlworld.com> wrote:
>
> > A few fixes for the compression modules.
>
> Where?

Enclosed

Paul

From 389fe95522cdfda81bff0fde92dc66ef9c275bd8 Mon Sep 17 00:00:00 2001
From: Paul Marquess <pmqs@cpan.org>
Date: Sun, 3 May 2009 17:13:51 +0100
Subject: [PATCH] compress 2.018

Signed-off-by: H.Merijn Brand <h.m.brand@xs4all.nl>
42 files changed:
MANIFEST
ext/Compress-Raw-Bzip2/Bzip2.xs
ext/Compress-Raw-Bzip2/Changes
ext/Compress-Raw-Bzip2/README
ext/Compress-Raw-Bzip2/lib/Compress/Raw/Bzip2.pm
ext/Compress-Raw-Bzip2/t/000prereq.t
ext/Compress-Raw-Bzip2/t/09limitoutput.t [new file with mode: 0644]
ext/Compress-Raw-Zlib/Changes
ext/Compress-Raw-Zlib/README
ext/Compress-Raw-Zlib/lib/Compress/Raw/Zlib.pm
ext/Compress-Raw-Zlib/t/09limitoutput.t [new file with mode: 0644]
ext/IO-Compress/Changes
ext/IO-Compress/Makefile.PL
ext/IO-Compress/README
ext/IO-Compress/lib/Compress/Zlib.pm
ext/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
ext/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
ext/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
ext/IO-Compress/lib/IO/Compress/Base.pm
ext/IO-Compress/lib/IO/Compress/Base/Common.pm
ext/IO-Compress/lib/IO/Compress/Bzip2.pm
ext/IO-Compress/lib/IO/Compress/Deflate.pm
ext/IO-Compress/lib/IO/Compress/Gzip.pm
ext/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
ext/IO-Compress/lib/IO/Compress/RawDeflate.pm
ext/IO-Compress/lib/IO/Compress/Zip.pm
ext/IO-Compress/lib/IO/Compress/Zip/Constants.pm
ext/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
ext/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
ext/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
ext/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
ext/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
ext/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
ext/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
ext/IO-Compress/lib/IO/Uncompress/Base.pm
ext/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
ext/IO-Compress/lib/IO/Uncompress/Gunzip.pm
ext/IO-Compress/lib/IO/Uncompress/Inflate.pm
ext/IO-Compress/lib/IO/Uncompress/RawInflate.pm
ext/IO-Compress/lib/IO/Uncompress/Unzip.pm
ext/IO-Compress/t/000prereq.t
ext/IO-Compress/t/101truncate-zip.t

index 81796a5..583150c 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -158,6 +158,7 @@ ext/Compress-Raw-Bzip2/private/MakeUtil.pm
 ext/Compress-Raw-Bzip2/README
 ext/Compress-Raw-Bzip2/t/000prereq.t
 ext/Compress-Raw-Bzip2/t/01bzip2.t
+ext/Compress-Raw-Bzip2/t/09limitoutput.t
 ext/Compress-Raw-Bzip2/t/99pod.t
 ext/Compress-Raw-Bzip2/typemap
 ext/Compress-Raw-Zlib/Changes          Compress::Raw::Zlib
@@ -174,6 +175,7 @@ ext/Compress-Raw-Zlib/README                Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/t/01version.t    Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/t/02zlib.t       Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/t/07bufsize.t    Compress::Raw::Zlib
+ext/Compress-Raw-Zlib/t/09limitoutput.t        Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/t/18lvalue.t     Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/typemap          Compress::Raw::Zlib
 ext/Compress-Raw-Zlib/zlib-src/adler32.c       Compress::Raw::Zlib
index ba13ab2..f66e2ef 100644 (file)
@@ -50,6 +50,7 @@ typedef struct di_stream {
     int      flags ;
 #define FLAG_APPEND_OUTPUT      1
 #define FLAG_CONSUME_INPUT      8
+#define FLAG_LIMIT_OUTPUT       16
     bz_stream stream;
     uInt     bufsize; 
     int      last_error ;
@@ -182,7 +183,7 @@ DispStream(s, message)
 
     printf("DispStream 0x%p", s) ;
     if (message)
-        printf("- %s \n", message) ;
+        printf(" - %s \n", message) ;
     printf("\n") ;
 
     if (!s)  {
@@ -191,6 +192,7 @@ DispStream(s, message)
     else     {
         printf("    stream           0x%p\n", &(s->stream));
         printf("           opaque    0x%p\n", s->stream.opaque);
+        printf("           state     0x%p\n", s->stream.state );
         printf("           next_in   0x%p", s->stream.next_in);
         if (s->stream.next_in){
             printf(" =>");
@@ -208,9 +210,14 @@ DispStream(s, message)
         printf("           avail_in  %lu\n",  (unsigned long)s->stream.avail_in);
         printf("           avail_out %lu\n",  (unsigned long)s->stream.avail_out);
         printf("    bufsize          %lu\n",  (unsigned long)s->bufsize);
+        printf("      total_in_lo32  %u\n",  s->stream.total_in_lo32);
+        printf("      total_in_hi32  %u\n",  s->stream.total_in_hi32);
+        printf("      total_out_lo32 %u\n",  s->stream.total_out_lo32);
+        printf("      total_out_hi32 %u\n",  s->stream.total_out_hi32);
         printf("    flags            0x%x\n", s->flags);
         printf("           APPEND    %s\n",   EnDis(FLAG_APPEND_OUTPUT));
         printf("           CONSUME   %s\n",   EnDis(FLAG_CONSUME_INPUT));
+        printf("           LIMIT     %s\n",   EnDis(FLAG_LIMIT_OUTPUT));
 
         printf("\n");
 
@@ -408,12 +415,13 @@ new(className, appendOut=1, blockSize100k=1, workfactor=0, verbosity=0)
 MODULE = Compress::Raw::Bunzip2 PACKAGE = Compress::Raw::Bunzip2
 
 void
-new(className, appendOut=1 , consume=1, small=0, verbosity=0)
+new(className, appendOut=1 , consume=1, small=0, verbosity=0, limitOutput=0)
     const char* className
     int appendOut
     int consume
     int small
     int verbosity
+    int limitOutput
   PPCODE:
   {
     int err = BZ_OK ;
@@ -436,6 +444,8 @@ new(className, appendOut=1 , consume=1, small=0, verbosity=0)
                 flags |= FLAG_APPEND_OUTPUT;
             if (consume)
                 flags |= FLAG_CONSUME_INPUT;
+            if (limitOutput)
+                flags |= (FLAG_LIMIT_OUTPUT|FLAG_CONSUME_INPUT);
            PostInitStream(s, flags) ;
         }
     }
@@ -723,7 +733,7 @@ bzinflate (s, buf, output)
   CODE:
     bufinc = s->bufsize;
     /* If the buffer is a reference, dereference it */
-    buf = deRef(buf, "inflate") ;
+    buf = deRef(buf, "bzinflate") ;
 
     if (s->flags & FLAG_CONSUME_INPUT && SvREADONLY(buf))
         croak(UNCOMPRESS_CLASS "::bzinflate input parameter cannot be read-only when ConsumeInput is specified");
@@ -737,7 +747,7 @@ bzinflate (s, buf, output)
     s->stream.avail_in = SvCUR(buf);
        
     /* and retrieve the output buffer */
-    output = deRef_l(output, "inflate") ;
+    output = deRef_l(output, "bzinflate") ;
 #ifdef UTF8_AVAILABLE    
     if (DO_UTF8(output))
          out_utf8 = TRUE ;
@@ -747,6 +757,34 @@ bzinflate (s, buf, output)
     if((s->flags & FLAG_APPEND_OUTPUT) != FLAG_APPEND_OUTPUT) {
         SvCUR_set(output, 0);
     }
+#if 1
+    /* Assume no output buffer - the code below will update if there is any available */
+    s->stream.avail_out = 0;
+
+    if (SvLEN(output)) {
+        prefix_length = cur_length =  SvCUR(output) ;
+    
+        if (s->flags & FLAG_LIMIT_OUTPUT && SvLEN(output) - cur_length - 1 < bufinc)
+        {
+            Sv_Grow(output, bufinc + cur_length + 1) ;
+        }
+    
+        /* Only setup the stream output pointers if there is spare 
+           capacity in the outout SV
+        */
+        if (SvLEN(output) > cur_length + 1)
+        {
+            s->stream.next_out = (char*) SvPVbyte_nolen(output) + cur_length;
+            increment = SvLEN(output) -  cur_length - 1;
+            s->stream.avail_out = increment;
+        }
+    }
+
+    s->bytesInflated = 0;
+    
+    RETVAL = BZ_OK;
+#else
+
     if (SvLEN(output)) {
         prefix_length = cur_length =  SvCUR(output) ;
         s->stream.next_out = (char*) SvPVbyte_nolen(output) + cur_length;
@@ -757,12 +795,13 @@ bzinflate (s, buf, output)
         s->stream.avail_out = 0;
     }
     s->bytesInflated = 0;
+#endif
     
     while (1) {
 
         if (s->stream.avail_out == 0) {
            /* out of space in the output buffer so make it bigger */
-            Sv_Grow(output, SvLEN(output) + bufinc) ;
+            Sv_Grow(output, SvLEN(output) + bufinc + 1) ;
             cur_length += increment ;
             s->stream.next_out = (char*) SvPVbyte_nolen(output) + cur_length ;
             increment = bufinc ;
@@ -770,9 +809,11 @@ bzinflate (s, buf, output)
             bufinc *= 2 ;
         }
 
+        //DispStream(s, "pre");
         RETVAL = BZ2_bzDecompress (&(s->stream));
 
-        if (RETVAL != BZ_OK) 
+        //DispStream(s, "apres");
+        if (RETVAL != BZ_OK || s->flags & FLAG_LIMIT_OUTPUT) 
             break ;
 
         if (s->stream.avail_out == 0)
index 944eaaa..d9ff756 100644 (file)
@@ -1,7 +1,9 @@
 CHANGES
 -------
 
-  2.018 11 April 2009
+  2.018 3 May 2009
+
+      * added linitOutput option
 
       * Changes to bzip2 source to get the module to build using a C++
         compiler
index 9e70cd7..c80d6da 100644 (file)
@@ -1,9 +1,9 @@
 
-                             Compress-Raw-Bzip2
+                            Compress-Raw-Bzip2
 
-                             Version 2.018
+                               Version 2.018
 
-                            11th April 2009
+                               3rd May 2009
 
        Copyright (c) 2005-2009 Paul Marquess. All rights reserved.
           This program is free software; you can redistribute it
              Full source for the bzip2 library is available at
                            http://www.bzip.org/
 
+    Note that the files bzip2.c, bzip2recover.c, bzlib.c & decompress.c
+      have been modified to allow them to build with a C++ compiler. 
+           The file bzip2-src/bzip2-cpp.patch contains the patch 
+               that was used to modify the original source.
+
 DESCRIPTION
 -----------
 
@@ -159,7 +164,7 @@ To help me help you, I need all of the following information:
         If you haven't installed Compress-Raw-Bzip2 then search Compress::Raw::Bzip2.pm
         for a line like this:
 
-          $VERSION = "2.017" ;
+          $VERSION = "2.018" ;
 
      c. The version of bzip2 you have used.
         If you have successfully installed Compress-Raw-Bzip2, this one-liner
index fabaa2a..e0eda15 100644 (file)
@@ -220,7 +220,7 @@ Returns C<BZ_STREAM_END> on success and a C<bzip2> error code on failure.
 
 =head1 Uncompression
 
-=head2 ($z, $status) = new Compress::Raw::Bunzip2 $appendOutput, $consumeInput, $small;
+=head2 ($z, $status) = new Compress::Raw::Bunzip2 $appendOutput, $consumeInput, $small, $limitOutput;
 
 If successful, it will return the initialised uncompression object, C<$z>
 and a C<$status> of C<BZ_OK> in a list context. In scalar context it
@@ -253,6 +253,26 @@ To quote the bzip2 documentation
 
 Defaults to 0.
 
+=item B<$limitOutput>
+
+The C<LimitOutput> option changes the behavior of the C<< $i->bzinflate >>
+method so that the amount of memory used by the output buffer can be
+limited. 
+
+When C<LimitOutput> is used the size of the output buffer used will either
+be the 16k or the amount of memory already allocated to C<$output>,
+whichever is larger. Predicting the output size available is tricky, so
+don't rely on getting an exact output buffer size.
+
+When C<LimitOutout> is not specified C<< $i->bzinflate >> will use as much
+memory as it takes to write all the uncompressed data it creates by
+uncompressing the input buffer.
+
+If C<LimitOutput> is enabled, the C<ConsumeInput> option will also be
+enabled.
+
+This option defaults to false.
+
 =back
 
 =head2 $status = $z->bzinflate($input, $output);
index b8dddca..0bbf312 100644 (file)
@@ -19,7 +19,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.017';
+    my $VERSION = '2.018';
     my @NAMES = qw(
                        
                        );
diff --git a/ext/Compress-Raw-Bzip2/t/09limitoutput.t b/ext/Compress-Raw-Bzip2/t/09limitoutput.t
new file mode 100644 (file)
index 0000000..78e121a
--- /dev/null
@@ -0,0 +1,139 @@
+BEGIN {
+    if ($ENV{PERL_CORE}) {
+       chdir 't' if -d 't';
+       @INC = ("../lib", "lib/compress");
+    }
+}
+
+use lib qw(t t/compress);
+use strict;
+use warnings;
+use bytes;
+
+use Test::More ;
+use CompTestUtils;
+
+BEGIN 
+{ 
+    # use Test::NoWarnings, if available
+    my $extra = 0 ;
+    $extra = 1
+        if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
+
+    plan tests => 88 + $extra ;
+
+    use_ok('Compress::Raw::Bzip2') ; 
+}
+
+
+
+my $hello = "I am a HAL 9000 computer" x 2001;
+my $tmp = $hello ;
+
+my ($err, $x, $X, $status); 
+
+ok( ($x, $err) = new Compress::Raw::Bzip2 (1));
+ok $x ;
+cmp_ok $err, '==', BZ_OK, "  status is BZ_OK" ;
+
+my $out ;
+$status = $x->bzdeflate($tmp, $out) ;
+cmp_ok $status, '==', BZ_RUN_OK, "  status is BZ_RUN_OK" ;
+
+cmp_ok $x->bzclose($out), '==', BZ_STREAM_END, "  bzflush returned BZ_STREAM_END" ;
+
+{
+    my $t = $out;
+    my $b = new Compress::Raw::Bunzip2(0,0);
+
+    my $GOT;
+    my $status = $b->bzinflate($t, $GOT) ;
+    cmp_ok $status, "==", BZ_STREAM_END;
+    ok $GOT eq $hello;
+
+}
+     
+sub getOut { my $x = ''; return \$x }
+
+for my $bufsize (1, 2, 3, 13, 4096, 1024*10)
+{
+    print "#\n#Bufsize $bufsize\n#\n";
+    $tmp = $out;
+
+    my $k;
+    ok(($k, $err) = new Compress::Raw::Bunzip2( 1,1,0,0,1
+                                                      #AppendOutput => 1,
+                                                      #LimitOutput => 1,
+                                                      #Bufsize => $bufsize
+                                                    ));
+    ok $k ;
+    cmp_ok $err, '==', BZ_OK, "  status is BZ_OK" ;
+    is $k->total_in_lo32(), 0, "  total_in_lo32 == 0" ;
+    is $k->total_out_lo32(), 0, "  total_out_lo32 == 0" ;
+    my $GOT = getOut();
+    my $prev;
+    my $deltaOK = 1;
+    my $looped = 0;
+    while (length $tmp)
+    {
+        ++ $looped;
+        my $prev = length $GOT;
+        $status = $k->bzinflate($tmp, $GOT) ;
+        last if $status != BZ_OK;
+        $deltaOK = 0 if length($GOT) - $prev > $bufsize;
+    }
+     
+    ok $deltaOK, "  Output Delta never > $bufsize";
+    cmp_ok $looped, '>=', 1, "  looped $looped";
+    is length($tmp), 0, "  length of input buffer is zero";
+
+    cmp_ok $status, "==", BZ_STREAM_END, "  status is BZ_STREAM_END" ;
+    ok $$GOT eq $hello, "  got expected output" ;
+    is $k->total_in_lo32(), length $out, "  length total_in_lo32 ok" ;
+    is $k->total_out_lo32(), length $hello, "  length total_out_lo32 ok " .  $k->total_out_lo32() ;
+}
+
+sub getit
+{
+    my $obj = shift ;
+    my $input = shift;
+    
+    my $data ;
+    1 while $obj->bzinflate($input, $data) != BZ_STREAM_END ;
+    return \$data ;
+}
+
+{
+    title "regression test";
+    
+    my ($err, $x, $X, $status); 
+    
+    ok( ($x, $err) = new Compress::Raw::Bzip2 (1));
+    ok $x ;
+    cmp_ok $err, '==', BZ_OK, "  status is BZ_OK" ;
+
+    my $line1 = ("abcdefghijklmnopq" x 1000) . "\n" ;
+    my $line2 = "second line\n" ;
+    my $text = $line1 . $line2 ;
+    my $tmp = $text;
+   
+    my $out ;
+    $status = $x->bzdeflate($tmp, $out) ;
+    cmp_ok $status, '==', BZ_RUN_OK, "  status is BZ_RUN_OK" ;
+    
+    cmp_ok $x->bzclose($out), '==', BZ_STREAM_END, "  bzclose returned BZ_STREAM_END" ;
+
+    my $k;
+    ok(($k, $err) = new Compress::Raw::Bunzip2( 1,1,0,0,1
+            #AppendOutput => 1,
+            #LimitOutput => 1
+                                                    ));
+
+                                                        
+    my $c = getit($k, $out);
+    is $$c, $text;
+    
+                                              
+}
+
index e8e989d..9d6a3ef 100644 (file)
@@ -1,6 +1,10 @@
 CHANGES
 -------
 
+  2.018 3 May 2009
+
+      * No Changes
+
   2.017 28 March 2009
 
       * Added 'LimitOutput' option
index 99ae85a..cf1eb1f 100644 (file)
@@ -1,9 +1,9 @@
 
                              Compress-Raw-Zlib
 
-                             Version 2.017
+                             Version 2.018
 
-                            28th March 2009
+                               3rd May 2009
 
        Copyright (c) 2005-2009 Paul Marquess. All rights reserved.
           This program is free software; you can redistribute it
@@ -355,7 +355,7 @@ To help me help you, I need all of the following information:
         If you haven't installed Compress-Raw-Zlib then search Compress::Raw::Zlib.pm
         for a line like this:
 
-          $VERSION = "2.017" ;
+          $VERSION = "2.018" ;
 
      c. The version of zlib you have used.
         If you have successfully installed Compress-Raw-Zlib, this one-liner
index 308a878..423837c 100644 (file)
@@ -13,7 +13,7 @@ use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
diff --git a/ext/Compress-Raw-Zlib/t/09limitoutput.t b/ext/Compress-Raw-Zlib/t/09limitoutput.t
new file mode 100644 (file)
index 0000000..a98b18f
--- /dev/null
@@ -0,0 +1,129 @@
+BEGIN {
+    if ($ENV{PERL_CORE}) {
+       chdir 't' if -d 't';
+       @INC = ("../lib", "lib/compress");
+    }
+}
+
+use lib qw(t t/compress);
+use strict;
+use warnings;
+use bytes;
+
+use Test::More ;
+use CompTestUtils;
+
+BEGIN 
+{ 
+    # use Test::NoWarnings, if available
+    my $extra = 0 ;
+    $extra = 1
+        if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
+
+    plan tests => 98 + $extra ;
+
+    use_ok('Compress::Raw::Zlib', 2) ; 
+}
+
+
+
+my $hello = "I am a HAL 9000 computer" x 2001;
+my $tmp = $hello ;
+
+my ($err, $x, $X, $status); 
+
+ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (-AppendOutput => 1));
+ok $x ;
+cmp_ok $err, '==', Z_OK, "  status is Z_OK" ;
+
+my $out ;
+$status = $x->deflate($tmp, $out) ;
+cmp_ok $status, '==', Z_OK, "  status is Z_OK" ;
+
+cmp_ok $x->flush($out), '==', Z_OK, "  flush returned Z_OK" ;
+     
+     
+sub getOut { my $x = ''; return \$x }
+
+for my $bufsize (1, 2, 3, 13, 4096, 1024*10)
+{
+    print "#\n#Bufsize $bufsize\n#\n";
+    $tmp = $out;
+
+    my $k;
+    ok(($k, $err) = new Compress::Raw::Zlib::Inflate( AppendOutput => 1,
+                                                      LimitOutput => 1,
+                                                      Bufsize => $bufsize
+                                                    ));
+    ok $k ;
+    cmp_ok $err, '==', Z_OK, "  status is Z_OK" ;
+    ok ! defined $k->msg(), "  no msg" ;
+    is $k->total_in(), 0, "  total_in == 0" ;
+    is $k->total_out(), 0, "  total_out == 0" ;
+    my $GOT = getOut();
+    my $prev;
+    my $deltaOK = 1;
+    my $looped = 0;
+    while (length $tmp)
+    {
+        ++ $looped;
+        my $prev = length $GOT;
+        $status = $k->inflate($tmp, $GOT) ;
+        last if $status == Z_STREAM_END || $status == Z_DATA_ERROR || $status == Z_STREAM_ERROR ;
+        $deltaOK = 0 if length($GOT) - $prev > $bufsize;
+    }
+     
+    ok $deltaOK, "  Output Delta never > $bufsize";
+    cmp_ok $looped, '>=', 1, "  looped $looped";
+    is length($tmp), 0, "  length of input buffer is zero";
+
+    cmp_ok $status, '==', Z_STREAM_END, "  status is Z_STREAM_END" ;
+    is $$GOT, $hello, "  got expected output" ;
+    ok ! defined $k->msg(), "  no msg" ;
+    is $k->total_in(), length $out, "  length total_in ok" ;
+    is $k->total_out(), length $hello, "  length total_out ok " .  $k->total_out() ;
+}
+
+sub getit
+{
+    my $obj = shift ;
+    my $input = shift;
+    
+    my $data ;
+    1 while $obj->inflate($input, $data) != Z_STREAM_END ;
+    return \$data ;
+}
+
+{
+    title "regression test";
+    
+    my ($err, $x, $X, $status); 
+    
+    ok( ($x, $err) = new Compress::Raw::Zlib::Deflate (-AppendOutput => 1));
+    ok $x ;
+    cmp_ok $err, '==', Z_OK, "  status is Z_OK" ;
+
+    my $line1 = ("abcdefghijklmnopq" x 1000) . "\n" ;
+    my $line2 = "second line\n" ;
+    my $text = $line1 . $line2 ;
+    my $tmp = $text;
+   
+    my $out ;
+    $status = $x->deflate($tmp, $out) ;
+    cmp_ok $status, '==', Z_OK, "  status is Z_OK" ;
+    
+    cmp_ok $x->flush($out), '==', Z_OK, "  flush returned Z_OK" ;
+
+    my $k;
+    ok(($k, $err) = new Compress::Raw::Zlib::Inflate( AppendOutput => 1,
+                                                      LimitOutput => 1
+                                                    ));
+
+                                                        
+    my $c = getit($k, $out);
+    is $$c, $text;
+    
+                                              
+}
+
index 8faec2a..5793994 100644 (file)
@@ -1,6 +1,19 @@
 CHANGES
 -------
 
+  2.018 3 May 2009
+
+      * IO::Unompress::Bunzip2
+        - The interface to Compress-Raw-Bzip2 now uses the new LimitOutput
+          feature. This will make all of the bzip2-related IO-Compress modules
+          less greedy in their memory consumption. 
+
+      * IO::Compress::Zip
+        - Fixed exTime & exUnix2
+
+        - Fixed 'Use of uninitialized value in pack' warning when using
+          ZIP_CM_STORE.
+
   2.017 30 March 2009
 
       * Merged IO-Compress-Base, IO-Compress-Bzip2, IO-Compress-Zlib &
index e11cf8f..d8f691c 100644 (file)
@@ -3,7 +3,7 @@
 use strict ;
 require 5.004 ;
 
-$::VERSION = '2.017' ;
+$::VERSION = '2.018' ;
 
 use private::MakeUtil;
 use ExtUtils::MakeMaker 5.16 ;
index 6f283b3..1de4424 100644 (file)
@@ -1,9 +1,9 @@
 
-                             IO-Compress
+                                IO-Compress
 
-                             Version 2.017
+                               Version 2.018
 
-                            28th March 2009
+                               3rd May 2009
 
        Copyright (c) 1995-2009 Paul Marquess. All rights reserved.
           This program is free software; you can redistribute it
@@ -89,7 +89,7 @@ To help me help you, I need all of the following information:
         If you haven't installed IO-Compress then search IO::Compress::Gzip.pm
         for a line like this:
 
-          $VERSION = "2.017" ;
+          $VERSION = "2.018" ;
 
  2. If you are having problems building IO-Compress, send me a
     complete log of what happened. Start by unpacking the IO-Compress
index a957752..6d002c5 100644 (file)
@@ -8,17 +8,17 @@ use Carp ;
 use IO::Handle ;
 use Scalar::Util qw(dualvar);
 
-use IO::Compress::Base::Common 2.017 ;
-use Compress::Raw::Zlib 2.017 ;
-use IO::Compress::Gzip 2.017 ;
-use IO::Uncompress::Gunzip 2.017 ;
+use IO::Compress::Base::Common 2.018 ;
+use Compress::Raw::Zlib 2.018 ;
+use IO::Compress::Gzip 2.018 ;
+use IO::Uncompress::Gunzip 2.018 ;
 
 use strict ;
 use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, $AUTOLOAD);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -452,7 +452,7 @@ sub inflate
 
 package Compress::Zlib ;
 
-use IO::Compress::Gzip::Constants 2.017 ;
+use IO::Compress::Gzip::Constants 2.018 ;
 
 sub memGzip($)
 {
index ca650c6..1a6fef6 100644 (file)
@@ -4,13 +4,13 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status);
+use IO::Compress::Base::Common  2.018 qw(:Status);
 
 #use Compress::Bzip2 ;
-use Compress::Raw::Bzip2  2.017 ;
+use Compress::Raw::Bzip2  2.018 ;
 
 our ($VERSION);
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 sub mkCompObject
 {
index bbd0ed5..cb852bb 100644 (file)
@@ -4,12 +4,12 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status);
+use IO::Compress::Base::Common  2.018 qw(:Status);
 
-use Compress::Raw::Zlib  2.017 qw(Z_OK Z_FINISH MAX_WBITS) ;
+use Compress::Raw::Zlib  2.018 qw(Z_OK Z_FINISH MAX_WBITS) ;
 our ($VERSION);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 sub mkCompObject
 {
index e6f33a3..f3a34fc 100644 (file)
@@ -4,10 +4,10 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status);
+use IO::Compress::Base::Common  2.018 qw(:Status);
 our ($VERSION);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 sub mkCompObject
 {
index 7d00bec..77af43a 100644 (file)
@@ -6,7 +6,7 @@ require 5.004 ;
 use strict ;
 use warnings;
 
-use IO::Compress::Base::Common 2.017 ;
+use IO::Compress::Base::Common 2.018 ;
 
 use IO::File ;
 use Scalar::Util qw(blessed readonly);
@@ -20,7 +20,7 @@ use bytes;
 our (@ISA, $VERSION);
 @ISA    = qw(Exporter IO::File);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 #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.
 
index 756cf4b..2c19ce5 100644 (file)
@@ -11,7 +11,7 @@ use File::GlobMapper;
 require Exporter;
 our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
 @ISA = qw(Exporter);
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 @EXPORT = qw( isaFilehandle isaFilename whatIsInput whatIsOutput 
               isaFileGlobString cleanFileGlobString oneTarget
index 144b978..9dfed05 100644 (file)
@@ -5,16 +5,16 @@ use warnings;
 use bytes;
 require Exporter ;
 
-use IO::Compress::Base 2.017 ;
+use IO::Compress::Base 2.018 ;
 
-use IO::Compress::Base::Common  2.017 qw(createSelfTiedObject);
-use IO::Compress::Adapter::Bzip2 2.017 ;
+use IO::Compress::Base::Common  2.018 qw(createSelfTiedObject);
+use IO::Compress::Adapter::Bzip2 2.018 ;
 
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $Bzip2Error = '';
 
 @ISA    = qw(Exporter IO::Compress::Base);
@@ -51,7 +51,7 @@ sub getExtraParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
     
     return (
             'BlockSize100K' => [0, 1, Parse_unsigned,  1],
index 05466f3..60a79d9 100644 (file)
@@ -6,16 +6,16 @@ use bytes;
 
 require Exporter ;
 
-use IO::Compress::RawDeflate 2.017 ;
+use IO::Compress::RawDeflate 2.018 ;
 
-use Compress::Raw::Zlib  2.017 ;
-use IO::Compress::Zlib::Constants 2.017 ;
-use IO::Compress::Base::Common  2.017 qw(createSelfTiedObject);
+use Compress::Raw::Zlib  2.018 ;
+use IO::Compress::Zlib::Constants 2.018 ;
+use IO::Compress::Base::Common  2.018 qw(createSelfTiedObject);
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $DeflateError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $DeflateError = '';
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
index cbdc985..45e0100 100644 (file)
@@ -8,12 +8,12 @@ use warnings;
 use bytes;
 
 
-use IO::Compress::RawDeflate 2.017 ;
+use IO::Compress::RawDeflate 2.018 ;
 
-use Compress::Raw::Zlib  2.017 ;
-use IO::Compress::Base::Common  2.017 qw(:Status :Parse createSelfTiedObject);
-use IO::Compress::Gzip::Constants 2.017 ;
-use IO::Compress::Zlib::Extra 2.017 ;
+use Compress::Raw::Zlib  2.018 ;
+use IO::Compress::Base::Common  2.018 qw(:Status :Parse createSelfTiedObject);
+use IO::Compress::Gzip::Constants 2.018 ;
+use IO::Compress::Zlib::Extra 2.018 ;
 
 BEGIN
 {
@@ -27,7 +27,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $GzipError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $GzipError = '' ;
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
index 9353fd9..5db5323 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.017';
+$VERSION = '2.018';
 
 @ISA = qw(Exporter);
 
index 6daed65..450e96d 100644 (file)
@@ -7,16 +7,16 @@ use warnings;
 use bytes;
 
 
-use IO::Compress::Base 2.017 ;
-use IO::Compress::Base::Common  2.017 qw(:Status createSelfTiedObject);
-use IO::Compress::Adapter::Deflate  2.017 ;
+use IO::Compress::Base 2.018 ;
+use IO::Compress::Base::Common  2.018 qw(:Status createSelfTiedObject);
+use IO::Compress::Adapter::Deflate  2.018 ;
 
 require Exporter ;
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $RawDeflateError = '';
 
 @ISA = qw(Exporter IO::Compress::Base);
@@ -142,8 +142,8 @@ sub getZlibParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
-    use Compress::Raw::Zlib  2.017 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
+    use Compress::Raw::Zlib  2.018 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
 
     
     return (
index 35a968f..552b26f 100644 (file)
@@ -4,26 +4,26 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status createSelfTiedObject);
-use IO::Compress::RawDeflate 2.017 ;
-use IO::Compress::Adapter::Deflate 2.017 ;
-use IO::Compress::Adapter::Identity 2.017 ;
-use IO::Compress::Zlib::Extra 2.017 ;
-use IO::Compress::Zip::Constants 2.017 ;
+use IO::Compress::Base::Common  2.018 qw(:Status createSelfTiedObject);
+use IO::Compress::RawDeflate 2.018 ;
+use IO::Compress::Adapter::Deflate 2.018 ;
+use IO::Compress::Adapter::Identity 2.018 ;
+use IO::Compress::Zlib::Extra 2.018 ;
+use IO::Compress::Zip::Constants 2.018 ;
 
 
-use Compress::Raw::Zlib  2.017 qw(crc32) ;
+use Compress::Raw::Zlib  2.018 qw(crc32) ;
 BEGIN
 {
     eval { require IO::Compress::Adapter::Bzip2 ; 
-           import  IO::Compress::Adapter::Bzip2 2.017 ; 
+           import  IO::Compress::Adapter::Bzip2 2.018 ; 
            require IO::Compress::Bzip2 ; 
-           import  IO::Compress::Bzip2 2.017 ; 
+           import  IO::Compress::Bzip2 2.018 ; 
          } ;
 #    eval { require IO::Compress::Adapter::Lzma ; 
-#           import  IO::Compress::Adapter::Lzma 2.017 ; 
+#           import  IO::Compress::Adapter::Lzma 2.018 ; 
 #           require IO::Compress::Lzma ; 
-#           import  IO::Compress::Lzma 2.017 ; 
+#           import  IO::Compress::Lzma 2.018 ; 
 #         } ;
 }
 
@@ -32,7 +32,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $ZipError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $ZipError = '';
 
 @ISA = qw(Exporter IO::Compress::RawDeflate);
@@ -71,6 +71,7 @@ sub mkComp
                                                  $got->value('Level'),
                                                  $got->value('Strategy')
                                                  );
+        *$self->{ZipData}{CRC32} = crc32(undef);
     }
     elsif (*$self->{ZipData}{Method} == ZIP_CM_DEFLATE) {
         ($obj, $errstr, $errno) = IO::Compress::Adapter::Deflate::mkCompObject(
@@ -390,7 +391,7 @@ sub ckParams
         $got->value('Time' => time) ;
     }
 
-    if ($got->parsed('exTime') ) {
+    if ($got->parsed('exTime') ) {
         my $timeRef = $got->value('exTime');
         if ( defined $timeRef) {
             return $self->saveErrorString(undef, "exTime not a 3-element array ref")   
@@ -403,7 +404,7 @@ sub ckParams
     }
     
     # Unix2 Extended Attribute
-    if ($got->parsed('exUnix2') ) {
+    if ($got->parsed('exUnix2') ) {
         my $timeRef = $got->value('exUnix2');
         if ( defined $timeRef) {
             return $self->saveErrorString(undef, "exUnix2 not a 2-element array ref")   
@@ -466,8 +467,8 @@ sub getExtraParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
-    use Compress::Raw::Zlib  2.017 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
+    use Compress::Raw::Zlib  2.018 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
 
     my @Bzip2 = ();
     
@@ -528,6 +529,7 @@ sub getFileInfo
         $params->value('MTime' => $mtime) ;
         $params->value('ATime' => $atime) ;
         $params->value('CTime' => undef) ; # No Creation time
+        $params->value("exTime", [$mtime, $atime, undef]);
     }
 
     # NOTE - Unix specific code alert
index 201c6ac..2581a66 100644 (file)
@@ -7,7 +7,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 @ISA = qw(Exporter);
 
@@ -38,6 +38,8 @@ $VERSION = '2.017';
     ZIP_EXTRA_ID_ZIP64
     ZIP_EXTRA_ID_EXT_TIMESTAMP
     ZIP_EXTRA_ID_INFO_ZIP_UNIX2
+    ZIP_EXTRA_ID_INFO_ZIP_UNIXn
+    ZIP_EXTRA_ID_JAVA_EXE
 
     ZIP_OS_CODE_UNIX
     ZIP_OS_CODE_DEFAULT
index fcf2470..41902f5 100644 (file)
@@ -9,7 +9,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 @ISA = qw(Exporter);
 
index 7dd4f02..2772176 100644 (file)
@@ -8,9 +8,9 @@ use bytes;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
-use IO::Compress::Gzip::Constants 2.017 ;
+use IO::Compress::Gzip::Constants 2.018 ;
 
 sub ExtraFieldError
 {
index 802afce..e01c9af 100644 (file)
@@ -4,13 +4,13 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.017 qw(:Status);
+use IO::Compress::Base::Common 2.018 qw(:Status);
 
 #use Compress::Bzip2 ;
-use Compress::Raw::Bzip2 2.017 ;
+use Compress::Raw::Bzip2 2.018 ;
 
 our ($VERSION, @ISA);
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 #@ISA = qw( Compress::Raw::Bunzip2 );
 
@@ -22,7 +22,7 @@ sub mkUncompObject
 
     #my ($inflate, $status) = bzinflateInit;
                                 #Small        => $params->value('Small');
-    my ($inflate, $status) = new Compress::Raw::Bunzip2(1, 1, $small, $verbosity);
+    my ($inflate, $status) = new Compress::Raw::Bunzip2(1, 1, $small, $verbosity, 1);
 
     return (undef, "Could not create Inflation object: $status", $status)
         if $status != BZ_OK ;
index 887f7d2..2d979ff 100755 (executable)
@@ -4,13 +4,13 @@ use warnings;
 use strict;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status);
+use IO::Compress::Base::Common  2.018 qw(:Status);
 
 our ($VERSION);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
-use Compress::Raw::Zlib  2.017 ();
+use Compress::Raw::Zlib  2.018 ();
 
 sub mkUncompObject
 {
index 3758b58..5ffeab3 100644 (file)
@@ -4,11 +4,11 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status);
-use Compress::Raw::Zlib  2.017 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common  2.018 qw(:Status);
+use Compress::Raw::Zlib  2.018 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
 
 our ($VERSION);
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 
 
index 577a5de..c00f508 100644 (file)
@@ -6,22 +6,22 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(createSelfTiedObject);
+use IO::Compress::Base::Common  2.018 qw(createSelfTiedObject);
 
-use IO::Uncompress::Adapter::Inflate  2.017 ();
+use IO::Uncompress::Adapter::Inflate  2.018 ();
 
 
-use IO::Uncompress::Base  2.017 ;
-use IO::Uncompress::Gunzip  2.017 ;
-use IO::Uncompress::Inflate  2.017 ;
-use IO::Uncompress::RawInflate  2.017 ;
-use IO::Uncompress::Unzip  2.017 ;
+use IO::Uncompress::Base  2.018 ;
+use IO::Uncompress::Gunzip  2.018 ;
+use IO::Uncompress::Inflate  2.018 ;
+use IO::Uncompress::RawInflate  2.018 ;
+use IO::Uncompress::Unzip  2.018 ;
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $AnyInflateError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -48,7 +48,7 @@ sub anyinflate
 
 sub getExtraParams
 {
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
     return ( 'RawInflate' => [1, 1, Parse_boolean,  0] ) ;
 }
 
index 088fd9d..85fffea 100644 (file)
@@ -4,16 +4,16 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.017 qw(createSelfTiedObject);
+use IO::Compress::Base::Common 2.018 qw(createSelfTiedObject);
 
-use IO::Uncompress::Base 2.017 ;
+use IO::Uncompress::Base 2.018 ;
 
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $AnyUncompressError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -27,20 +27,20 @@ Exporter::export_ok_tags('all');
 
 BEGIN
 {
-   eval ' use IO::Uncompress::Adapter::Inflate 2.017 ;';
-   eval ' use IO::Uncompress::Adapter::Bunzip2 2.017 ;';
-   eval ' use IO::Uncompress::Adapter::LZO 2.017 ;';
-   eval ' use IO::Uncompress::Adapter::Lzf 2.017 ;';
-   #eval ' use IO::Uncompress::Adapter::UnLzma 2.017 ;';
-
-   eval ' use IO::Uncompress::Bunzip2 2.017 ;';
-   eval ' use IO::Uncompress::UnLzop 2.017 ;';
-   eval ' use IO::Uncompress::Gunzip 2.017 ;';
-   eval ' use IO::Uncompress::Inflate 2.017 ;';
-   eval ' use IO::Uncompress::RawInflate 2.017 ;';
-   eval ' use IO::Uncompress::Unzip 2.017 ;';
-   eval ' use IO::Uncompress::UnLzf 2.017 ;';
-   #eval ' use IO::Uncompress::UnLzma 2.017 ;';
+   eval ' use IO::Uncompress::Adapter::Inflate 2.018 ;';
+   eval ' use IO::Uncompress::Adapter::Bunzip2 2.018 ;';
+   eval ' use IO::Uncompress::Adapter::LZO 2.018 ;';
+   eval ' use IO::Uncompress::Adapter::Lzf 2.018 ;';
+   #eval ' use IO::Uncompress::Adapter::UnLzma 2.018 ;';
+
+   eval ' use IO::Uncompress::Bunzip2 2.018 ;';
+   eval ' use IO::Uncompress::UnLzop 2.018 ;';
+   eval ' use IO::Uncompress::Gunzip 2.018 ;';
+   eval ' use IO::Uncompress::Inflate 2.018 ;';
+   eval ' use IO::Uncompress::RawInflate 2.018 ;';
+   eval ' use IO::Uncompress::Unzip 2.018 ;';
+   eval ' use IO::Uncompress::UnLzf 2.018 ;';
+   #eval ' use IO::Uncompress::UnLzma 2.018 ;';
 }
 
 sub new
@@ -58,7 +58,7 @@ sub anyuncompress
 
 sub getExtraParams
 {
-    use IO::Compress::Base::Common 2.017 qw(:Parse);
+    use IO::Compress::Base::Common 2.018 qw(:Parse);
     return ( 'RawInflate' => [1, 1, Parse_boolean,  0] ) ;
 }
 
index 09e440e..2cef240 100644 (file)
@@ -9,12 +9,12 @@ our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
 @ISA    = qw(Exporter IO::File);
 
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 use constant G_EOF => 0 ;
 use constant G_ERR => -1 ;
 
-use IO::Compress::Base::Common 2.017 ;
+use IO::Compress::Base::Common 2.018 ;
 #use Parse::Parameters ;
 
 use IO::File ;
index 0162ad6..81c2319 100644 (file)
@@ -4,15 +4,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.017 qw(:Status createSelfTiedObject);
+use IO::Compress::Base::Common 2.018 qw(:Status createSelfTiedObject);
 
-use IO::Uncompress::Base 2.017 ;
-use IO::Uncompress::Adapter::Bunzip2 2.017 ;
+use IO::Uncompress::Base 2.018 ;
+use IO::Uncompress::Adapter::Bunzip2 2.018 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $Bunzip2Error = '';
 
 @ISA    = qw( Exporter IO::Uncompress::Base );
@@ -40,7 +40,7 @@ sub getExtraParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common 2.017 qw(:Parse);
+    use IO::Compress::Base::Common 2.018 qw(:Parse);
     
     return (
             'Verbosity'     => [1, 1, Parse_boolean,   0],
index 6f738cf..d98a216 100644 (file)
@@ -9,12 +9,12 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Uncompress::RawInflate 2.017 ;
+use IO::Uncompress::RawInflate 2.018 ;
 
-use Compress::Raw::Zlib 2.017 qw( crc32 ) ;
-use IO::Compress::Base::Common 2.017 qw(:Status createSelfTiedObject);
-use IO::Compress::Gzip::Constants 2.017 ;
-use IO::Compress::Zlib::Extra 2.017 ;
+use Compress::Raw::Zlib 2.018 qw( crc32 ) ;
+use IO::Compress::Base::Common 2.018 qw(:Status createSelfTiedObject);
+use IO::Compress::Gzip::Constants 2.018 ;
+use IO::Compress::Zlib::Extra 2.018 ;
 
 require Exporter ;
 
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
 
 $GunzipError = '';
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 
 sub new
 {
@@ -47,7 +47,7 @@ sub gunzip
 
 sub getExtraParams
 {
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
     return ( 'ParseExtra' => [1, 1, Parse_boolean,  0] ) ;
 }
 
index 21e9ec4..65842f9 100644 (file)
@@ -5,15 +5,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.017 qw(:Status createSelfTiedObject);
-use IO::Compress::Zlib::Constants 2.017 ;
+use IO::Compress::Base::Common  2.018 qw(:Status createSelfTiedObject);
+use IO::Compress::Zlib::Constants 2.018 ;
 
-use IO::Uncompress::RawInflate  2.017 ;
+use IO::Uncompress::RawInflate  2.018 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $InflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::RawInflate );
index 2c9f9b7..1115724 100755 (executable)
@@ -5,16 +5,16 @@ use strict ;
 use warnings;
 use bytes;
 
-use Compress::Raw::Zlib  2.017 ;
-use IO::Compress::Base::Common  2.017 qw(:Status createSelfTiedObject);
+use Compress::Raw::Zlib  2.018 ;
+use IO::Compress::Base::Common  2.018 qw(:Status createSelfTiedObject);
 
-use IO::Uncompress::Base  2.017 ;
-use IO::Uncompress::Adapter::Inflate  2.017 ;
+use IO::Uncompress::Base  2.018 ;
+use IO::Uncompress::Adapter::Inflate  2.018 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $RawInflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::Base );
index 45ef3b5..b74a32a 100644 (file)
@@ -8,14 +8,14 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Uncompress::RawInflate  2.017 ;
-use IO::Compress::Base::Common  2.017 qw(:Status createSelfTiedObject);
-use IO::Uncompress::Adapter::Inflate  2.017 ;
-use IO::Uncompress::Adapter::Identity 2.017 ;
-use IO::Compress::Zlib::Extra 2.017 ;
-use IO::Compress::Zip::Constants 2.017 ;
+use IO::Uncompress::RawInflate  2.018 ;
+use IO::Compress::Base::Common  2.018 qw(:Status createSelfTiedObject);
+use IO::Uncompress::Adapter::Inflate  2.018 ;
+use IO::Uncompress::Adapter::Identity 2.018 ;
+use IO::Compress::Zlib::Extra 2.018 ;
+use IO::Compress::Zip::Constants 2.018 ;
 
-use Compress::Raw::Zlib  2.017 qw(crc32) ;
+use Compress::Raw::Zlib  2.018 qw(crc32) ;
 
 BEGIN
 {
@@ -30,7 +30,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
 
-$VERSION = '2.017';
+$VERSION = '2.018';
 $UnzipError = '';
 
 @ISA    = qw(Exporter IO::Uncompress::RawInflate);
@@ -63,7 +63,7 @@ sub unzip
 
 sub getExtraParams
 {
-    use IO::Compress::Base::Common  2.017 qw(:Parse);
+    use IO::Compress::Base::Common  2.018 qw(:Parse);
 
     
     return (
index c56e7bd..e5ec181 100644 (file)
@@ -19,7 +19,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.017';
+    my $VERSION = '2.018';
     my @NAMES = qw(
                        Compress::Raw::Bzip2
                        Compress::Raw::Zlib
index 719da36..0bc2c10 100644 (file)
@@ -18,7 +18,7 @@ BEGIN {
     $extra = 1
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
-    plan tests => 2316 + $extra;
+    plan tests => 2404 + $extra;
 
 };