Update IO-Compress to CPAN version 2.059
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 15 Dec 2012 19:50:36 +0000 (19:50 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Sat, 15 Dec 2012 19:50:36 +0000 (19:50 +0000)
  [DELTA]

  2.059 10 December 2012

      * IO::Compress::Base
        Added "Encode" option.

34 files changed:
Porting/Maintainers.pl
cpan/IO-Compress/Changes
cpan/IO-Compress/Makefile.PL
cpan/IO-Compress/README
cpan/IO-Compress/lib/Compress/Zlib.pm
cpan/IO-Compress/lib/IO/Compress/Adapter/Bzip2.pm
cpan/IO-Compress/lib/IO/Compress/Adapter/Deflate.pm
cpan/IO-Compress/lib/IO/Compress/Adapter/Identity.pm
cpan/IO-Compress/lib/IO/Compress/Base.pm
cpan/IO-Compress/lib/IO/Compress/Base/Common.pm
cpan/IO-Compress/lib/IO/Compress/Bzip2.pm
cpan/IO-Compress/lib/IO/Compress/Deflate.pm
cpan/IO-Compress/lib/IO/Compress/Gzip.pm
cpan/IO-Compress/lib/IO/Compress/Gzip/Constants.pm
cpan/IO-Compress/lib/IO/Compress/RawDeflate.pm
cpan/IO-Compress/lib/IO/Compress/Zip.pm
cpan/IO-Compress/lib/IO/Compress/Zip/Constants.pm
cpan/IO-Compress/lib/IO/Compress/Zlib/Constants.pm
cpan/IO-Compress/lib/IO/Compress/Zlib/Extra.pm
cpan/IO-Compress/lib/IO/Uncompress/Adapter/Bunzip2.pm
cpan/IO-Compress/lib/IO/Uncompress/Adapter/Identity.pm
cpan/IO-Compress/lib/IO/Uncompress/Adapter/Inflate.pm
cpan/IO-Compress/lib/IO/Uncompress/AnyInflate.pm
cpan/IO-Compress/lib/IO/Uncompress/AnyUncompress.pm
cpan/IO-Compress/lib/IO/Uncompress/Base.pm
cpan/IO-Compress/lib/IO/Uncompress/Bunzip2.pm
cpan/IO-Compress/lib/IO/Uncompress/Gunzip.pm
cpan/IO-Compress/lib/IO/Uncompress/Inflate.pm
cpan/IO-Compress/lib/IO/Uncompress/RawInflate.pm
cpan/IO-Compress/lib/IO/Uncompress/Unzip.pm
cpan/IO-Compress/t/000prereq.t
cpan/IO-Compress/t/01misc.t
cpan/IO-Compress/t/compress/encode.pl
cpan/IO-Compress/t/cz-14gzopen.t

index 15720d9..4f1fb55 100755 (executable)
@@ -1025,7 +1025,7 @@ use File::Glob qw(:case);
 
     'IO-Compress' => {
         'MAINTAINER'   => 'pmqs',
-        'DISTRIBUTION' => 'PMQS/IO-Compress-2.058.tar.gz',
+        'DISTRIBUTION' => 'PMQS/IO-Compress-2.059.tar.gz',
         'FILES'        => q[cpan/IO-Compress],
         'EXCLUDED'     => [qr{t/Test/}],
         'UPSTREAM'     => 'cpan',
index aa79eeb..06b6b2f 100644 (file)
@@ -1,6 +1,11 @@
 CHANGES
 -------
 
+  2.059 10 December 2012
+
+      * IO::Compress::Base
+        Added "Encode" option.
+
   2.058 12 November 2012
 
       * RT# 81119: Latest IO::Compress 2.057 fails tests on 5.8.x
index 3648efa..125353c 100644 (file)
@@ -3,7 +3,7 @@
 use strict ;
 require 5.006 ;
 
-$::VERSION = '2.058' ;
+$::VERSION = '2.059' ;
 
 use private::MakeUtil;
 use ExtUtils::MakeMaker 5.16 ;
index c92bccd..3a87500 100644 (file)
@@ -1,9 +1,9 @@
 
                             IO-Compress
 
-                         Version 2.058
+                         Version 2.059
 
-                            12th November 2012
+                            10th December 2012
 
        Copyright (c) 1995-2012 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.058" ;
+          $VERSION = "2.059" ;
 
  2. If you are having problems building IO-Compress, send me a
     complete log of what happened. Start by unpacking the IO-Compress
index 56cd13c..9d917b4 100644 (file)
@@ -7,17 +7,17 @@ use Carp ;
 use IO::Handle ;
 use Scalar::Util qw(dualvar);
 
-use IO::Compress::Base::Common 2.058 ;
-use Compress::Raw::Zlib 2.058 ;
-use IO::Compress::Gzip 2.058 ;
-use IO::Uncompress::Gunzip 2.058 ;
+use IO::Compress::Base::Common 2.059 ;
+use Compress::Raw::Zlib 2.059 ;
+use IO::Compress::Gzip 2.059 ;
+use IO::Uncompress::Gunzip 2.059 ;
 
 use strict ;
 use warnings ;
 use bytes ;
 our ($VERSION, $XS_VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $XS_VERSION = $VERSION; 
 $VERSION = eval $VERSION;
 
@@ -461,7 +461,7 @@ sub inflate
 
 package Compress::Zlib ;
 
-use IO::Compress::Gzip::Constants 2.058 ;
+use IO::Compress::Gzip::Constants 2.059 ;
 
 sub memGzip($)
 {
index 4c97f78..5a856d7 100644 (file)
@@ -4,12 +4,12 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status);
+use IO::Compress::Base::Common  2.059 qw(:Status);
 
-use Compress::Raw::Bzip2  2.058 ;
+use Compress::Raw::Bzip2  2.059 ;
 
 our ($VERSION);
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 sub mkCompObject
 {
index b3e0718..5260ab6 100644 (file)
@@ -4,13 +4,13 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.058 qw(:Status);
-use Compress::Raw::Zlib  2.058 qw( !crc32 !adler32 ) ;
+use IO::Compress::Base::Common 2.059 qw(:Status);
+use Compress::Raw::Zlib  2.059 qw( !crc32 !adler32 ) ;
                                   
 require Exporter;                                     
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, @EXPORT, %DEFLATE_CONSTANTS);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 @ISA = qw(Exporter);
 @EXPORT_OK = @Compress::Raw::Zlib::DEFLATE_CONSTANTS;
 %EXPORT_TAGS = %Compress::Raw::Zlib::DEFLATE_CONSTANTS;
index f8e2ef8..b5ef63b 100644 (file)
@@ -4,10 +4,10 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status);
+use IO::Compress::Base::Common  2.059 qw(:Status);
 our ($VERSION);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 sub mkCompObject
 {
index 7bfbef9..0af6dd4 100644 (file)
@@ -6,7 +6,7 @@ require 5.006 ;
 use strict ;
 use warnings;
 
-use IO::Compress::Base::Common 2.058 ;
+use IO::Compress::Base::Common 2.059 ;
 
 use IO::File (); ;
 use Scalar::Util ();
@@ -15,12 +15,12 @@ use Scalar::Util ();
 #require Exporter ;
 use Carp() ;
 use Symbol();
-use bytes;
+#use bytes;
 
 our (@ISA, $VERSION);
 @ISA    = qw(Exporter IO::File);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 #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.
 
@@ -150,7 +150,7 @@ sub getOneShotParams
 our %PARAMS = (
             # Generic Parameters
             'autoclose' => [IO::Compress::Base::Common::Parse_boolean,   0],
-           #'encode'    => [IO::Compress::Base::Common::Parse_any,       undef],
+            'encode'    => [IO::Compress::Base::Common::Parse_any,       undef],
             'strict'    => [IO::Compress::Base::Common::Parse_boolean,   1],
             'append'    => [IO::Compress::Base::Common::Parse_boolean,   0],
             'binmodein' => [IO::Compress::Base::Common::Parse_boolean,   0],
@@ -234,15 +234,18 @@ sub _create
     #if ($outType eq 'filename' && -e $outValue && ! -w _)
     #  { return $obj->saveErrorString(undef, "Output file '$outValue' is not writable" ) }
 
-    if ($got->getValue('encode')) { 
-        my $want_encoding = $got->getValue('encode');
-        *$obj->{Encoding} = getEncoding($obj, $class, $want_encoding);
-    }
-
     $obj->ckParams($got)
         or $obj->croakError("${class}: " . $obj->error());
 
-
+    if ($got->getValue('encode')) { 
+        my $want_encoding = $got->getValue('encode');
+        *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding);
+        my $x = *$obj->{Encoding}; 
+    }
+    else {
+        *$obj->{Encoding} = undef; 
+    }
+    
     $obj->saveStatus(STATUS_OK) ;
 
     my $status ;
@@ -592,10 +595,6 @@ sub syswrite
         $buffer = \$_[0] ;
     }
 
-    $] >= 5.008 and ( utf8::downgrade($$buffer, 1) 
-        or Carp::croak "Wide character in " .  *$self->{ClassName} . "::write:");
-
-
     if (@_ > 1) {
         my $slen = defined $$buffer ? length($$buffer) : 0;
         my $len = $slen;
@@ -617,11 +616,23 @@ sub syswrite
         $buffer = \substr($$buffer, $offset, $len) ;
     }
 
-    return 0 if ! defined $$buffer || length $$buffer == 0 ;
-
-    if (*$self->{Encoding}) {
+    return 0 if (! defined $$buffer || length $$buffer == 0) && ! *$self->{FlushPending};
+    
+#    *$self->{Pending} .= $$buffer ;
+#    
+#    return length $$buffer
+#        if (length *$self->{Pending} < 1024 * 16 && ! *$self->{FlushPending}) ;
+#
+#    $$buffer = *$self->{Pending} ; 
+#    *$self->{Pending} = '';
+    
+    if (*$self->{Encoding}) {      
         $$buffer = *$self->{Encoding}->encode($$buffer);
     }
+    else {
+        $] >= 5.008 and ( utf8::downgrade($$buffer, 1) 
+            or Carp::croak "Wide character in " .  *$self->{ClassName} . "::write:");
+    }
 
     $self->filterUncompressed($buffer);
 
@@ -711,12 +722,22 @@ sub _newStream
     my $self = shift ;
     my $got  = shift;
 
+    my $class = ref $self;
+
     $self->_writeTrailer()
         or return 0 ;
 
     $self->ckParams($got)
         or $self->croakError("newStream: $self->{Error}");
 
+    if ($got->getValue('encode')) { 
+        my $want_encoding = $got->getValue('encode');
+        *$self->{Encoding} = IO::Compress::Base::Common::getEncoding($self, $class, $want_encoding);
+    }
+    else {
+        *$self->{Encoding} = undef;
+    }
+    
     *$self->{Compress} = $self->mkComp($got)
         or return 0;
 
@@ -797,6 +818,7 @@ sub close
     untie *$self 
         if $] >= 5.008 ;
 
+    *$self->{FlushPending} = 1 ;
     $self->_writeTrailer()
         or return 0 ;
 
index 11ca947..b1fefed 100644 (file)
@@ -11,7 +11,7 @@ use File::GlobMapper;
 require Exporter;
 our ($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $HAS_ENCODE);
 @ISA = qw(Exporter);
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 @EXPORT = qw( isaFilehandle isaFilename isaScalar
               whatIsInput whatIsOutput 
@@ -19,8 +19,7 @@ $VERSION = '2.058';
               setBinModeInput setBinModeOutput
               ckInOutParams 
               createSelfTiedObject
-              getEncoding
-
+              
               isGeMax32
 
               MAX32
index 45fe83c..d922052 100644 (file)
@@ -5,16 +5,16 @@ use warnings;
 use bytes;
 require Exporter ;
 
-use IO::Compress::Base 2.058 ;
+use IO::Compress::Base 2.059 ;
 
-use IO::Compress::Base::Common  2.058 qw();
-use IO::Compress::Adapter::Bzip2 2.058 ;
+use IO::Compress::Base::Common  2.059 qw();
+use IO::Compress::Adapter::Bzip2 2.059 ;
 
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bzip2Error);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $Bzip2Error = '';
 
 @ISA    = qw(Exporter IO::Compress::Base);
@@ -51,7 +51,7 @@ sub getExtraParams
 {
     my $self = shift ;
 
-    use IO::Compress::Base::Common  2.058 qw(:Parse);
+    use IO::Compress::Base::Common  2.059 qw(:Parse);
     
     return (  
             'blocksize100k' => [IO::Compress::Base::Common::Parse_unsigned,  1],
index d6368fa..c8285a1 100644 (file)
@@ -8,16 +8,16 @@ use bytes;
 
 require Exporter ;
 
-use IO::Compress::RawDeflate 2.058 ();
-use IO::Compress::Adapter::Deflate 2.058 ;
+use IO::Compress::RawDeflate 2.059 ();
+use IO::Compress::Adapter::Deflate 2.059 ;
 
-use IO::Compress::Zlib::Constants 2.058 ;
-use IO::Compress::Base::Common  2.058 qw();
+use IO::Compress::Zlib::Constants 2.059 ;
+use IO::Compress::Base::Common  2.059 qw();
 
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $DeflateError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $DeflateError = '';
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
index 77b66e8..44c4ba5 100644 (file)
@@ -8,12 +8,12 @@ use bytes;
 
 require Exporter ;
 
-use IO::Compress::RawDeflate 2.058 () ; 
-use IO::Compress::Adapter::Deflate 2.058 ;
+use IO::Compress::RawDeflate 2.059 () ; 
+use IO::Compress::Adapter::Deflate 2.059 ;
 
-use IO::Compress::Base::Common  2.058 qw(:Status );
-use IO::Compress::Gzip::Constants 2.058 ;
-use IO::Compress::Zlib::Extra 2.058 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
+use IO::Compress::Gzip::Constants 2.059 ;
+use IO::Compress::Zlib::Extra 2.059 ;
 
 BEGIN
 {
@@ -25,7 +25,7 @@ BEGIN
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $GzipError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $GzipError = '' ;
 
 @ISA    = qw(Exporter IO::Compress::RawDeflate);
index 17940a4..da49b0b 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.058';
+$VERSION = '2.059';
 
 @ISA = qw(Exporter);
 
index 8bf3358..23d45da 100644 (file)
@@ -6,15 +6,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base 2.058 ;
-use IO::Compress::Base::Common  2.058 qw(:Status );
-use IO::Compress::Adapter::Deflate 2.058 ;
+use IO::Compress::Base 2.059 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
+use IO::Compress::Adapter::Deflate 2.059 ;
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %DEFLATE_CONSTANTS, %EXPORT_TAGS, $RawDeflateError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $RawDeflateError = '';
 
 @ISA = qw(Exporter IO::Compress::Base);
@@ -116,8 +116,8 @@ sub getExtraParams
     return getZlibParams();
 }
 
-use IO::Compress::Base::Common  2.058 qw(:Parse);
-use Compress::Raw::Zlib  2.058 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
+use IO::Compress::Base::Common  2.059 qw(:Parse);
+use Compress::Raw::Zlib  2.059 qw(Z_DEFLATED Z_DEFAULT_COMPRESSION Z_DEFAULT_STRATEGY);
 our %PARAMS = (
             #'method'   => [IO::Compress::Base::Common::Parse_unsigned,  Z_DEFLATED],
             'level'     => [IO::Compress::Base::Common::Parse_signed,    Z_DEFAULT_COMPRESSION],
index 3a88226..9693ee1 100644 (file)
@@ -4,30 +4,30 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status );
-use IO::Compress::RawDeflate 2.058 ();
-use IO::Compress::Adapter::Deflate 2.058 ;
-use IO::Compress::Adapter::Identity 2.058 ;
-use IO::Compress::Zlib::Extra 2.058 ;
-use IO::Compress::Zip::Constants 2.058 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
+use IO::Compress::RawDeflate 2.059 ();
+use IO::Compress::Adapter::Deflate 2.059 ;
+use IO::Compress::Adapter::Identity 2.059 ;
+use IO::Compress::Zlib::Extra 2.059 ;
+use IO::Compress::Zip::Constants 2.059 ;
 
 use File::Spec();
 use Config;
 
-use Compress::Raw::Zlib  2.058 (); 
+use Compress::Raw::Zlib  2.059 (); 
 
 BEGIN
 {
     eval { require IO::Compress::Adapter::Bzip2 ; 
-           import  IO::Compress::Adapter::Bzip2 2.058 ; 
+           import  IO::Compress::Adapter::Bzip2 2.059 ; 
            require IO::Compress::Bzip2 ; 
-           import  IO::Compress::Bzip2 2.058 ; 
+           import  IO::Compress::Bzip2 2.059 ; 
          } ;
          
     eval { require IO::Compress::Adapter::Lzma ; 
-           import  IO::Compress::Adapter::Lzma 2.058 ; 
+           import  IO::Compress::Adapter::Lzma 2.059 ; 
            require IO::Compress::Lzma ; 
-           import  IO::Compress::Lzma 2.058 ; 
+           import  IO::Compress::Lzma 2.059 ; 
          } ;
 }
 
@@ -36,7 +36,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $ZipError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $ZipError = '';
 
 @ISA = qw(Exporter IO::Compress::RawDeflate);
@@ -250,7 +250,7 @@ sub mkHeader
 #        require Encode ;
 #        $filename = Encode::encode_utf8($filename)
 #            if length $filename ;
-#        $comment = Encode::encode_utf8($filename)
+#        $comment = Encode::encode_utf8($comment)
 #            if length $comment ;
 #    }
 
@@ -322,8 +322,8 @@ sub mkHeader
     $gpFlag |= ZIP_GP_FLAG_LZMA_EOS_PRESENT
         if $method == ZIP_CM_LZMA ;
 
-    #$gpFlag |= ZIP_GP_FLAG_LANGUAGE_ENCODING
-        #if  $param->getValue('utf8') && length($filename) + length($comment);
+#    $gpFlag |= ZIP_GP_FLAG_LANGUAGE_ENCODING
+#        if  $param->getValue('utf8') && (length($filename) || length($comment));
 
     my $version = $ZIP_CM_MIN_VERSIONS{$method};
     $version = ZIP64_MIN_VERSION
@@ -677,7 +677,7 @@ our %PARAMS = (
             'name'      => [IO::Compress::Base::Common::Parse_any,       ''],
             'filtername'=> [IO::Compress::Base::Common::Parse_code,      undef],
             'canonicalname'=> [IO::Compress::Base::Common::Parse_boolean,   0],
-            #'utf8'      => [IO::Compress::Base::Common::Parse_boolean,   0],
+#            'utf8'      => [IO::Compress::Base::Common::Parse_boolean,   0],
             'time'      => [IO::Compress::Base::Common::Parse_any,       undef],
             'extime'    => [IO::Compress::Base::Common::Parse_any,       undef],
             'exunix2'   => [IO::Compress::Base::Common::Parse_any,       undef], 
@@ -1488,6 +1488,7 @@ the file contains text.
 The default is 0. 
 
 =item C<< ExtraFieldLocal => $data >>
+
 =item C<< ExtraFieldCentral => $data >>
 
 The C<ExtraFieldLocal> option is used to store additional metadata in the
index 92f172e..06233fc 100644 (file)
@@ -7,7 +7,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT, %ZIP_CM_MIN_VERSIONS);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 @ISA = qw(Exporter);
 
index f671c19..5cb0948 100644 (file)
@@ -9,7 +9,7 @@ require Exporter;
 
 our ($VERSION, @ISA, @EXPORT);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 @ISA = qw(Exporter);
 
index 61f1e67..013cb77 100644 (file)
@@ -8,9 +8,9 @@ use bytes;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
-use IO::Compress::Gzip::Constants 2.058 ;
+use IO::Compress::Gzip::Constants 2.059 ;
 
 sub ExtraFieldError
 {
index 0acbe4d..9605f15 100644 (file)
@@ -4,12 +4,12 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.058 qw(:Status);
+use IO::Compress::Base::Common 2.059 qw(:Status);
 
-use Compress::Raw::Bzip2 2.058 ;
+use Compress::Raw::Bzip2 2.059 ;
 
 our ($VERSION, @ISA);
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 sub mkUncompObject
 {
index c2fba6f..2e9b6a2 100644 (file)
@@ -4,14 +4,14 @@ use warnings;
 use strict;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status);
+use IO::Compress::Base::Common  2.059 qw(:Status);
 use IO::Compress::Zip::Constants ;
 
 our ($VERSION);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
-use Compress::Raw::Zlib  2.058 ();
+use Compress::Raw::Zlib  2.059 ();
 
 sub mkUncompObject
 {
index 6dd499d..80eee71 100644 (file)
@@ -2,13 +2,13 @@ package IO::Uncompress::Adapter::Inflate;
 
 use strict;
 use warnings;
-use bytes;
+#use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status);
-use Compress::Raw::Zlib  2.058 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
+use IO::Compress::Base::Common  2.059 qw(:Status);
+use Compress::Raw::Zlib  2.059 qw(Z_OK Z_BUF_ERROR Z_STREAM_END Z_FINISH MAX_WBITS);
 
 our ($VERSION);
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 
 
index a51141d..15f1235 100644 (file)
@@ -6,22 +6,22 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 ();
+use IO::Compress::Base::Common  2.059 ();
 
-use IO::Uncompress::Adapter::Inflate  2.058 ();
+use IO::Uncompress::Adapter::Inflate  2.059 ();
 
 
-use IO::Uncompress::Base  2.058 ;
-use IO::Uncompress::Gunzip  2.058 ;
-use IO::Uncompress::Inflate  2.058 ;
-use IO::Uncompress::RawInflate  2.058 ;
-use IO::Uncompress::Unzip  2.058 ;
+use IO::Uncompress::Base  2.059 ;
+use IO::Uncompress::Gunzip  2.059 ;
+use IO::Uncompress::Inflate  2.059 ;
+use IO::Uncompress::RawInflate  2.059 ;
+use IO::Uncompress::Unzip  2.059 ;
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyInflateError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $AnyInflateError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -48,7 +48,7 @@ sub anyinflate
 
 sub getExtraParams
 {
-    use IO::Compress::Base::Common  2.058 qw(:Parse);
+    use IO::Compress::Base::Common  2.059 qw(:Parse);
     return ( 'rawinflate' => [Parse_boolean,  0] ) ;
 }
 
index 7592dd6..169e16f 100644 (file)
@@ -4,16 +4,16 @@ use strict;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.058 ();
+use IO::Compress::Base::Common 2.059 ();
 
-use IO::Uncompress::Base 2.058 ;
+use IO::Uncompress::Base 2.059 ;
 
 
 require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $AnyUncompressError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $AnyUncompressError = '';
 
 @ISA = qw( Exporter IO::Uncompress::Base );
@@ -27,22 +27,22 @@ Exporter::export_ok_tags('all');
 
 BEGIN
 {
-   eval ' use IO::Uncompress::Adapter::Inflate 2.058 ;';
-   eval ' use IO::Uncompress::Adapter::Bunzip2 2.058 ;';
-   eval ' use IO::Uncompress::Adapter::LZO 2.058 ;';
-   eval ' use IO::Uncompress::Adapter::Lzf 2.058 ;';
-   eval ' use IO::Uncompress::Adapter::UnLzma 2.058 ;';
-   eval ' use IO::Uncompress::Adapter::UnXz 2.058 ;';
-
-   eval ' use IO::Uncompress::Bunzip2 2.058 ;';
-   eval ' use IO::Uncompress::UnLzop 2.058 ;';
-   eval ' use IO::Uncompress::Gunzip 2.058 ;';
-   eval ' use IO::Uncompress::Inflate 2.058 ;';
-   eval ' use IO::Uncompress::RawInflate 2.058 ;';
-   eval ' use IO::Uncompress::Unzip 2.058 ;';
-   eval ' use IO::Uncompress::UnLzf 2.058 ;';
-   eval ' use IO::Uncompress::UnLzma 2.058 ;';
-   eval ' use IO::Uncompress::UnXz 2.058 ;';
+   eval ' use IO::Uncompress::Adapter::Inflate 2.059 ;';
+   eval ' use IO::Uncompress::Adapter::Bunzip2 2.059 ;';
+   eval ' use IO::Uncompress::Adapter::LZO 2.059 ;';
+   eval ' use IO::Uncompress::Adapter::Lzf 2.059 ;';
+   eval ' use IO::Uncompress::Adapter::UnLzma 2.059 ;';
+   eval ' use IO::Uncompress::Adapter::UnXz 2.059 ;';
+
+   eval ' use IO::Uncompress::Bunzip2 2.059 ;';
+   eval ' use IO::Uncompress::UnLzop 2.059 ;';
+   eval ' use IO::Uncompress::Gunzip 2.059 ;';
+   eval ' use IO::Uncompress::Inflate 2.059 ;';
+   eval ' use IO::Uncompress::RawInflate 2.059 ;';
+   eval ' use IO::Uncompress::Unzip 2.059 ;';
+   eval ' use IO::Uncompress::UnLzf 2.059 ;';
+   eval ' use IO::Uncompress::UnLzma 2.059 ;';
+   eval ' use IO::Uncompress::UnXz 2.059 ;';
 }
 
 sub new
index 68d530e..00f0c61 100644 (file)
@@ -3,18 +3,18 @@ package IO::Uncompress::Base ;
 
 use strict ;
 use warnings;
-use bytes;
+#use bytes;
 
 our (@ISA, $VERSION, @EXPORT_OK, %EXPORT_TAGS);
 @ISA    = qw(Exporter IO::File);
 
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 use constant G_EOF => 0 ;
 use constant G_ERR => -1 ;
 
-use IO::Compress::Base::Common 2.058 ;
+use IO::Compress::Base::Common 2.059 ;
 
 use IO::File ;
 use Symbol;
@@ -358,7 +358,7 @@ sub checkParams
                     'scan'          => [IO::Compress::Base::Common::Parse_boolean,  0],
                     'inputlength'   => [IO::Compress::Base::Common::Parse_unsigned, undef],
                     'binmodeout'    => [IO::Compress::Base::Common::Parse_boolean,  0],
-                    #'encode'        => [IO::Compress::Base::Common::Parse_any,       undef],
+                   #'decode'        => [IO::Compress::Base::Common::Parse_any,      undef],
 
                    #'consumeinput'  => [IO::Compress::Base::Common::Parse_boolean,  0],
                    
@@ -440,11 +440,13 @@ sub _create
         *$obj->{Buffer} = \$buff ;
     }
 
-    if ($got->parsed('encode')) { 
-        my $want_encoding = $got->getValue('encode');
-        *$obj->{Encoding} = getEncoding($obj, $class, $want_encoding);
-    }
-
+#    if ($got->getValue('decode')) { 
+#        my $want_encoding = $got->getValue('decode');
+#        *$obj->{Encoding} = IO::Compress::Base::Common::getEncoding($obj, $class, $want_encoding);
+#    }
+#    else {
+#        *$obj->{Encoding} = undef;
+#    }
 
     *$obj->{InputLength}       = $got->parsed('inputlength') 
                                     ? $got->getValue('inputlength')
@@ -928,9 +930,12 @@ sub _raw_read
 
         $self->filterUncompressed($buffer, $before_len);
 
-        if (*$self->{Encoding}) {
-            $$buffer = *$self->{Encoding}->decode($$buffer);
-        }
+#        if (*$self->{Encoding}) {
+#            use Encode ;
+#            *$self->{PendingDecode} .= substr($$buffer, $before_len) ;
+#            my $got = *$self->{Encoding}->decode(*$self->{PendingDecode}, Encode::FB_QUIET) ;
+#            substr($$buffer, $before_len) = $got;
+#        }
     }
 
     if ($status == STATUS_ENDSTREAM) {
index edba4f4..03d4eeb 100644 (file)
@@ -4,15 +4,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common 2.058 qw(:Status );
+use IO::Compress::Base::Common 2.059 qw(:Status );
 
-use IO::Uncompress::Base 2.058 ;
-use IO::Uncompress::Adapter::Bunzip2 2.058 ;
+use IO::Uncompress::Base 2.059 ;
+use IO::Uncompress::Adapter::Bunzip2 2.059 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $Bunzip2Error);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $Bunzip2Error = '';
 
 @ISA    = qw( Exporter IO::Uncompress::Base );
index 5475c61..faa130d 100644 (file)
@@ -9,12 +9,12 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Uncompress::RawInflate 2.058 ;
+use IO::Uncompress::RawInflate 2.059 ;
 
-use Compress::Raw::Zlib 2.058 () ;
-use IO::Compress::Base::Common 2.058 qw(:Status );
-use IO::Compress::Gzip::Constants 2.058 ;
-use IO::Compress::Zlib::Extra 2.058 ;
+use Compress::Raw::Zlib 2.059 () ;
+use IO::Compress::Base::Common 2.059 qw(:Status );
+use IO::Compress::Gzip::Constants 2.059 ;
+use IO::Compress::Zlib::Extra 2.059 ;
 
 require Exporter ;
 
@@ -28,7 +28,7 @@ Exporter::export_ok_tags('all');
 
 $GunzipError = '';
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 
 sub new
 {
index 45f1336..a28d016 100644 (file)
@@ -5,15 +5,15 @@ use strict ;
 use warnings;
 use bytes;
 
-use IO::Compress::Base::Common  2.058 qw(:Status );
-use IO::Compress::Zlib::Constants 2.058 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
+use IO::Compress::Zlib::Constants 2.059 ;
 
-use IO::Uncompress::RawInflate  2.058 ;
+use IO::Uncompress::RawInflate  2.059 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $InflateError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $InflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::RawInflate );
index 88bb9f7..cce4920 100644 (file)
@@ -3,18 +3,18 @@ package IO::Uncompress::RawInflate ;
 
 use strict ;
 use warnings;
-use bytes;
+#use bytes;
 
-use Compress::Raw::Zlib  2.058 ;
-use IO::Compress::Base::Common  2.058 qw(:Status );
+use Compress::Raw::Zlib  2.059 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
 
-use IO::Uncompress::Base  2.058 ;
-use IO::Uncompress::Adapter::Inflate  2.058 ;
+use IO::Uncompress::Base  2.059 ;
+use IO::Uncompress::Adapter::Inflate  2.059 ;
 
 require Exporter ;
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, %DEFLATE_CONSTANTS, $RawInflateError);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $RawInflateError = '';
 
 @ISA    = qw( Exporter IO::Uncompress::Base );
index c1bac41..1e14956 100644 (file)
@@ -6,17 +6,17 @@ require 5.006 ;
 
 use strict ;
 use warnings;
-use bytes;
+#use bytes;
 
 use IO::File;
-use IO::Uncompress::RawInflate  2.058 ;
-use IO::Compress::Base::Common  2.058 qw(:Status );
-use IO::Uncompress::Adapter::Inflate  2.058 ;
-use IO::Uncompress::Adapter::Identity 2.058 ;
-use IO::Compress::Zlib::Extra 2.058 ;
-use IO::Compress::Zip::Constants 2.058 ;
+use IO::Uncompress::RawInflate  2.059 ;
+use IO::Compress::Base::Common  2.059 qw(:Status );
+use IO::Uncompress::Adapter::Inflate  2.059 ;
+use IO::Uncompress::Adapter::Identity 2.059 ;
+use IO::Compress::Zlib::Extra 2.059 ;
+use IO::Compress::Zip::Constants 2.059 ;
 
-use Compress::Raw::Zlib  2.058 () ;
+use Compress::Raw::Zlib  2.059 () ;
 
 BEGIN
 {
@@ -31,7 +31,7 @@ require Exporter ;
 
 our ($VERSION, @ISA, @EXPORT_OK, %EXPORT_TAGS, $UnzipError, %headerLookup);
 
-$VERSION = '2.058';
+$VERSION = '2.059';
 $UnzipError = '';
 
 @ISA    = qw(Exporter IO::Uncompress::RawInflate);
index 3903e37..98ca688 100644 (file)
@@ -25,7 +25,7 @@ BEGIN
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
 
-    my $VERSION = '2.058';
+    my $VERSION = '2.059';
     my @NAMES = qw(
                        Compress::Raw::Bzip2
                        Compress::Raw::Zlib
index 352fbcd..150fb69 100644 (file)
@@ -19,7 +19,7 @@ BEGIN {
     $extra = 1
         if eval { require Test::NoWarnings ;  import Test::NoWarnings; 1 };
 
-    plan tests => 150 + $extra ;
+    plan tests => 163 + $extra ;
 
     use_ok('Scalar::Util');
     use_ok('IO::Compress::Base::Common');
@@ -153,6 +153,39 @@ sub My::testParseParameters()
         is $got1->getValue('fred'), 0;
     }    
 
+    {
+        # setValue/getValue
+        my $value = 0;
+        my $got1 ;
+        eval { $got1 = ParseParameters(1, {'fred' => [Parse_any, 1]}, fred => $value) } ;
+    
+        ok ! $@;
+        ok $got1->parsed('fred'), "parsed ok" ;
+        is $got1->getValue('fred'), 0;
+        $got1->setValue('fred' => undef);
+        is $got1->getValue('fred'), undef;        
+    }  
+    
+    {
+        # twice
+        my $value = 0;
+        
+        my $got = IO::Compress::Base::Parameters::new();
+
+       
+        ok $got->parse({'fred' => [Parse_any, 1]}, fred => $value) ;
+
+        ok $got->parsed('fred'), "parsed ok" ;
+        is $got->getValue('fred'), 0;
+        
+        ok $got->parse({'fred' => [Parse_any, 1]}, fred => undef) ;  
+        ok $got->parsed('fred'), "parsed ok" ;
+        is $got->getValue('fred'), undef;   
+        
+        ok $got->parse({'fred' => [Parse_any, 1]}, fred => 7) ;  
+        ok $got->parsed('fred'), "parsed ok" ;
+        is $got->getValue('fred'), 7;   
+    }      
 }
 
 
index 142bd08..875f0ce 100644 (file)
@@ -1,7 +1,7 @@
 
 use strict;
 use warnings;
-use bytes;
+#use bytes;
 
 use Test::More ;
 use CompTestUtils;
@@ -23,7 +23,7 @@ BEGIN
     $extra = 1
         if $st ;
 
-    plan(tests => 7 + $extra) ;
+    plan(tests => 29 + $extra) ;
 }
 
 sub run
@@ -34,7 +34,7 @@ sub run
     my $UnError         = getErrorRef($UncompressClass);
 
 
-    my $string = "\x{df}\x{100}"; 
+    my $string = "\x{df}\x{100}\x80"; 
     my $encString = Encode::encode_utf8($string);
     my $buffer = $encString;
 
@@ -92,10 +92,13 @@ sub run
             my $ucs = new $UncompressClass($input, Append => 1);
             my $got;
             1 while $ucs->read($got) > 0 ;
+            
+            is  $got, $encString, "  Expected output";
+            
             my $decode = Encode::decode_utf8($got);
 
 
-            is $string, $decode, "  Expected output";
+            is $decode, $string, "  Expected output";
 
 
         }
@@ -110,9 +113,81 @@ sub run
         eval { $cs->syswrite($a) };
         like($@, qr/Wide character in ${CompressClass}::write/, 
                  "  wide characters in ${CompressClass}::write");
-        eval { syswrite($cs, $a) };
-        like($@, qr/Wide character in ${CompressClass}::write/, 
-                 "  wide characters in ${CompressClass}::write");
+
+    }
+    
+    {
+        title "Unknown encoding";
+        my $output;
+        eval { my $cs = new $CompressClass(\$output, Encode => 'fred'); } ;
+        like($@, qr/${CompressClass}: Encoding 'fred' is not available/, 
+                 "  Encoding 'fred' is not available");
+    }
+    
+    {
+        title "Encode option";
+        
+        for my $to ( qw(filehandle filename buffer))
+        {
+            title "Encode: To $to, Encode option";
+
+            my $lex2 = new LexFile my $name2 ;
+            my $output;
+            my $buffer;
+
+            if ($to eq 'buffer')
+            { 
+                $output = \$buffer 
+            }
+            elsif ($to eq 'filename')
+            {
+                $output = $name2 ;
+            }
+            elsif ($to eq 'filehandle')
+            {
+                $output = new IO::File ">$name2" ;
+            }
+
+            my $out ;
+            my $cs = new $CompressClass($output, AutoClose =>1, Encode => 'utf8');
+            ok $cs->print($string);
+            ok $cs->close();
+
+            my $input;
+            if ($to eq 'buffer')
+            { 
+                $input = \$buffer 
+            }
+            elsif ($to eq 'filename')
+            {
+                $input = $name2 ;
+            }
+            else
+            {
+                $input = new IO::File "<$name2" ;
+            }
+            
+            {
+                my $ucs = new $UncompressClass($input, AutoClose =>1, Append => 1);
+                my $got;
+                1 while $ucs->read($got) > 0 ;
+                ok length($got) > 0;
+                is  $got, $encString, "  Expected output";
+                
+                my $decode = Encode::decode_utf8($got);
+    
+                is  $decode, $string, "  Expected output";
+            }
+            
+     
+#            {
+#                my $ucs = new $UncompressClass($input, Append => 1, Decode => 'utf8');
+#                my $got;
+#                1 while $ucs->read($got) > 0 ;
+#                ok length($got) > 0;    
+#                is  $got, $string, "  Expected output";
+#            }            
+        }        
     }
 
 }
index d5f0ea0..01d2d65 100644 (file)
@@ -489,6 +489,9 @@ foreach my $stdio ( ['-', '-'], [*STDIN, *STDOUT])
 
     SKIP:
     {
+        skip "Cannot create non-writable file", 3 
+            if $^O eq 'cygwin';
+
         my $lex = new LexFile my $name ;
         writeFile($name, "abc");
         chmod 0444, $name