diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-08-06 16:05:08 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2013-08-06 16:05:08 +0300 |
commit | d5a7bec01733d3fa72578a1a01c8e9d62252847b (patch) | |
tree | 97cb62d233cc4c9fdb8b2a453352dedf6245ddc1 | |
parent | 71f215659046de3dfe63c4a84ae92d92d5213044 (diff) | |
download | mansrv-d5a7bec01733d3fa72578a1a01c8e9d62252847b.tar.gz mansrv-d5a7bec01733d3fa72578a1a01c8e9d62252847b.tar.bz2 |
Select decompressor based on the file suffix.
-rwxr-xr-x | mansrv | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -38,6 +38,14 @@ my @grohtml_opts; 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; syslog("LOG_ERR", "$s"); @@ -246,8 +254,8 @@ 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; } |