summaryrefslogtreecommitdiff
path: root/zlibcat
diff options
context:
space:
mode:
Diffstat (limited to 'zlibcat')
-rwxr-xr-xzlibcat24
1 files changed, 24 insertions, 0 deletions
diff --git a/zlibcat b/zlibcat
new file mode 100755
index 0000000..71ebb4a
--- /dev/null
+++ b/zlibcat
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Compress::Zlib;
+
+
+for my $file (@ARGV) {
+ my $x = inflateInit() or die "Cannot create a inflation stream\n" ;
+
+ my $input = '';
+
+ my ($output, $status);
+ open(FH, "<$file") or die ("Cannot open $file: $!\n");
+ while (read(FH, $input, 4096))
+ {
+ ($output, $status) = $x->inflate(\$input);
+
+ print $output if $status == Z_OK or $status == Z_STREAM_END ;
+
+ last if $status != Z_OK ;
+ }
+
+ die "inflation failed\n" unless $status == Z_STREAM_END ;
+};