summaryrefslogtreecommitdiff
path: root/ext/IO_Compress_Zlib
diff options
context:
space:
mode:
authorPaul Marquess <paul.marquess@btinternet.com>2007-06-17 02:43:11 +0100
committerRafael Garcia-Suarez <rgarciasuarez@gmail.com>2007-06-17 12:54:12 +0000
commit3006a4e1991c29fe722177d0ddb5a525c7ce8822 (patch)
tree3346be8887b3ae2a9636b671b6a7eaf825154102 /ext/IO_Compress_Zlib
parent983ffab67b2cbb8cb83f2d98d3ed046c5761e2a4 (diff)
downloadperl-3006a4e1991c29fe722177d0ddb5a525c7ce8822.tar.gz
EBCDIC fixes for gzip
From: "Paul Marquess" <Paul.Marquess@ntlworld.com> Message-ID: <004001c7b078$7cc2e520$6701a8c0@myopwv.com> p4raw-id: //depot/perl@31402
Diffstat (limited to 'ext/IO_Compress_Zlib')
-rw-r--r--ext/IO_Compress_Zlib/lib/IO/Compress/Gzip/Constants.pm15
-rw-r--r--ext/IO_Compress_Zlib/t/004gziphdr.t2
2 files changed, 14 insertions, 3 deletions
diff --git a/ext/IO_Compress_Zlib/lib/IO/Compress/Gzip/Constants.pm b/ext/IO_Compress_Zlib/lib/IO/Compress/Gzip/Constants.pm
index 3ccb04210c..c1e4e5794e 100644
--- a/ext/IO_Compress_Zlib/lib/IO/Compress/Gzip/Constants.pm
+++ b/ext/IO_Compress_Zlib/lib/IO/Compress/Gzip/Constants.pm
@@ -92,8 +92,19 @@ use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE => GZIP_FEXTRA_SUBFIELD_ID_SIZE +
use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE => GZIP_FEXTRA_MAX_SIZE -
GZIP_FEXTRA_SUBFIELD_HEADER_SIZE ;
- $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]';
- $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]';
+
+if (ord('A') == 193)
+{
+ # EBCDIC
+ $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x03\x37\x2d-\x2f\x16\x05\x15\x0b-\x13\x3c\x3d\x32\x26\x18\x19\x3f\x27\x1c-\x1f\x07\x20-\x25\x06\x17\x28-\x2c\x09\x0a\x1b\x30\x31\x1a\x33-\x36\x08\x38-\x3b\x04\x14\x3e\xff]';
+ $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x03\x37\x2d-\x2f\x16\x05\x15\x0b-\x0f\x11-\x13\x3c\x3d\x32\x26\x18\x19\x3f\x27\x1c-\x1f\x07\x20-\x25\x06\x17\x28-\x2c\x09\x0a\x1b\x30\x31\x1a\x33-\x36\x08\x38-\x3b\x04\x14\x3e\xff]';
+
+}
+else
+{
+ $GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]';
+ $GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]';
+}
use constant GZIP_FHCRC_SIZE => 2 ; # aka CONTINUATION in gzip
diff --git a/ext/IO_Compress_Zlib/t/004gziphdr.t b/ext/IO_Compress_Zlib/t/004gziphdr.t
index c09fc32852..4b78b3a5ec 100644
--- a/ext/IO_Compress_Zlib/t/004gziphdr.t
+++ b/ext/IO_Compress_Zlib/t/004gziphdr.t
@@ -165,7 +165,7 @@ for my $value ( "0D", "0A", "0A0D", "0D0A", "0A0A", "0D0D")
{
title "Comment with $value" ;
- my $v = pack "H*", $value;
+ my $v = pack "h*", $value;
my $comment = "my${v}comment$v";
my $hdr = readHeaderInfo $name,
Time => 0,