aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2013-08-06 16:05:08 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2013-08-06 16:05:08 +0300
commitd5a7bec01733d3fa72578a1a01c8e9d62252847b (patch)
tree97cb62d233cc4c9fdb8b2a453352dedf6245ddc1
parent71f215659046de3dfe63c4a84ae92d92d5213044 (diff)
downloadmansrv-d5a7bec01733d3fa72578a1a01c8e9d62252847b.tar.gz
mansrv-d5a7bec01733d3fa72578a1a01c8e9d62252847b.tar.bz2
Select decompressor based on the file suffix.
-rwxr-xr-xmansrv14
1 files changed, 11 insertions, 3 deletions
diff --git a/mansrv b/mansrv
index e42c689..100df80 100755
--- a/mansrv
+++ b/mansrv
@@ -39,4 +39,12 @@ my $tempcachefile;
my $mansep;
+my %decomp = (
+ 'gz' => 'gzip -d -c',
+ 'bz2' => 'bzip2 -d -c',
+ 'z' => 'compress -d -c',
+ 'Z' => 'compress -d -c'
+);
+
+
sub syserror {
my $s = shift;
@@ -246,7 +254,7 @@ unless (-e $cachefile && checkdeps($cachefile)) {
$groffcmd .= join(' ', @grohtml_opts) . " ";
}
-
- if ($file =~ /\.gz$/) {
- $groffcmd = "gzip -d -c $file | $groffcmd -";
+
+ if ($file =~ /.*\.([^.]+)$/ && exists($decomp{$1})) {
+ $groffcmd = "$decomp{$1} $file | $groffcmd -";
} else {
$groffcmd .= $file;

Return to:

Send suggestions and report system problems to the System administrator.