aboutsummaryrefslogtreecommitdiffstats
path: root/zlib-flate
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-08-24 01:54:08 +0200
committerJay Berkenbilt <ejb@ql.org>2019-08-24 02:34:21 +0200
commitdac0598b94c877bec92a1edd78ae00021cfa1638 (patch)
tree70988ddf9cc7c4e9c2e7b867bb135c331e061217 /zlib-flate
parentbda5d26894c857a05f811a6ebd3595d26424d2ea (diff)
downloadqpdf-dac0598b94c877bec92a1edd78ae00021cfa1638.tar.zst
Add ability to set zlib compression level globally
Diffstat (limited to 'zlib-flate')
-rw-r--r--zlib-flate/qtest/1.compressed-1bin0 -> 193 bytes
-rw-r--r--zlib-flate/qtest/1.compressed-9bin0 -> 193 bytes
-rw-r--r--zlib-flate/qtest/zf.test24
-rw-r--r--zlib-flate/zlib-flate.cc17
4 files changed, 30 insertions, 11 deletions
diff --git a/zlib-flate/qtest/1.compressed-1 b/zlib-flate/qtest/1.compressed-1
new file mode 100644
index 00000000..11150cf3
--- /dev/null
+++ b/zlib-flate/qtest/1.compressed-1
Binary files differ
diff --git a/zlib-flate/qtest/1.compressed-9 b/zlib-flate/qtest/1.compressed-9
new file mode 100644
index 00000000..25f4647b
--- /dev/null
+++ b/zlib-flate/qtest/1.compressed-9
Binary files differ
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();