diff options
author | Jay Berkenbilt <ejb@ql.org> | 2019-08-24 01:54:08 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2019-08-24 02:34:21 +0200 |
commit | dac0598b94c877bec92a1edd78ae00021cfa1638 (patch) | |
tree | 70988ddf9cc7c4e9c2e7b867bb135c331e061217 /zlib-flate | |
parent | bda5d26894c857a05f811a6ebd3595d26424d2ea (diff) | |
download | qpdf-dac0598b94c877bec92a1edd78ae00021cfa1638.tar.zst |
Add ability to set zlib compression level globally
Diffstat (limited to 'zlib-flate')
-rw-r--r-- | zlib-flate/qtest/1.compressed-1 | bin | 0 -> 193 bytes | |||
-rw-r--r-- | zlib-flate/qtest/1.compressed-9 | bin | 0 -> 193 bytes | |||
-rw-r--r-- | zlib-flate/qtest/zf.test | 24 | ||||
-rw-r--r-- | zlib-flate/zlib-flate.cc | 17 |
4 files changed, 30 insertions, 11 deletions
diff --git a/zlib-flate/qtest/1.compressed-1 b/zlib-flate/qtest/1.compressed-1 Binary files differnew file mode 100644 index 00000000..11150cf3 --- /dev/null +++ b/zlib-flate/qtest/1.compressed-1 diff --git a/zlib-flate/qtest/1.compressed-9 b/zlib-flate/qtest/1.compressed-9 Binary files differnew file mode 100644 index 00000000..25f4647b --- /dev/null +++ b/zlib-flate/qtest/1.compressed-9 diff --git a/zlib-flate/qtest/zf.test b/zlib-flate/qtest/zf.test index 39271e16..2b188eb2 100644 --- a/zlib-flate/qtest/zf.test +++ b/zlib-flate/qtest/zf.test @@ -7,15 +7,21 @@ require TestDriver; my $td = new TestDriver('zlib-flate'); -$td->runtest("compress", - {$td->COMMAND => "zlib-flate -compress < 1.uncompressed"}, - {$td->FILE => "1.compressed", - $td->EXIT_STATUS => 0}); +foreach my $level ('', '=1', '=9') +{ + my $f = $level; + $f =~ s/=/-/; + $td->runtest("compress", + {$td->COMMAND => + "zlib-flate -compress$level < 1.uncompressed"}, + {$td->FILE => "1.compressed$f", + $td->EXIT_STATUS => 0}); -$td->runtest("uncompress", - {$td->COMMAND => "zlib-flate -uncompress < 1.compressed"}, - {$td->FILE => "1.uncompressed", - $td->EXIT_STATUS => 0}); + $td->runtest("uncompress", + {$td->COMMAND => "zlib-flate -uncompress < 1.compressed"}, + {$td->FILE => "1.uncompressed", + $td->EXIT_STATUS => 0}); +} $td->runtest("error", {$td->COMMAND => "zlib-flate -uncompress < 1.uncompressed"}, @@ -23,4 +29,4 @@ $td->runtest("error", $td->EXIT_STATUS => 2}, $td->NORMALIZE_NEWLINES); -$td->report(3); +$td->report(7); diff --git a/zlib-flate/zlib-flate.cc b/zlib-flate/zlib-flate.cc index d1c74d4d..c2613202 100644 --- a/zlib-flate/zlib-flate.cc +++ b/zlib-flate/zlib-flate.cc @@ -12,8 +12,14 @@ static char const* whoami = 0; void usage() { - std::cerr << "Usage: " << whoami << " { -uncompress | -compress }" - << std::endl; + std::cerr << "Usage: " << whoami << " { -uncompress | -compress[=n] }" + << std::endl + << "If n is specified with -compress, it is a" + << " zlib compression level from" << std::endl + << "1 to 9 where lower numbers are faster and" + << " less compressed and higher" << std::endl + << "numbers are slower and more compresed" + << std::endl; exit(2); } @@ -43,6 +49,7 @@ int main(int argc, char* argv[]) { usage(); } + // QXXXQ level Pl_Flate::action_e action = Pl_Flate::a_inflate; @@ -54,6 +61,12 @@ int main(int argc, char* argv[]) { action = Pl_Flate::a_deflate; } + else if ((strncmp(argv[1], "-compress=", 10) == 0)) + { + action = Pl_Flate::a_deflate; + int level = QUtil::string_to_int(argv[1] + 10); + Pl_Flate::setCompressionLevel(level); + } else { usage(); |