code: plan9front

Download patch

ref: d168b89ab110a2d1fcaf72ad085a789092b82b00
parent: 33682347b9b3f8403d9db23b8ca7483ffe9f7767
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun May 23 11:06:14 EDT 2021

mkpaqfs(8): allow setting compression level

--- a/sys/man/8/mkpaqfs
+++ b/sys/man/8/mkpaqfs
@@ -6,6 +6,8 @@
 [
 .B -u
 ] [
+.B -1-9
+] [
 .B -b
 .I blocksize
 ] [
@@ -42,6 +44,12 @@
 Otherwise each block is compressed using the
 .IR flate (2)
 compression algorithm.
+The compression level can be set using the flags
+.B -1
+to
+.B -9
+(defaults to 
+.BR -6 ).
 The
 .B -l
 option embeds a label of up to 32 bytes within the file header and may be
--- a/sys/src/cmd/paqfs/mkpaqfs.c
+++ b/sys/src/cmd/paqfs/mkpaqfs.c
@@ -33,6 +33,7 @@
 
 int uflag=0;			/* uncompressed */
 long blocksize = 4*1024;
+int level = 6;
 
 Biobuf *out;
 DigestState *outdg;
@@ -57,6 +58,10 @@
 		if(label == nil)
 			usage();
 		break;
+	case '1': case '2': case '3': case '4':
+	case '5': case '6': case '7': case '8': case '9':
+		level = ARGC() - '0';
+		break;
 	case 'b':
 		s = ARGF();
 		if(s) {
@@ -105,7 +110,7 @@
 void
 usage(void)
 {
-	fprint(2, "usage: %s [-u] [-b blocksize] -o output [root]\n", argv0);
+	fprint(2, "usage: %s [-u] [-1-9] [-b blocksize] -o output [root]\n", argv0);
 	exits("usage");
 }
 
@@ -370,7 +375,7 @@
 
 	if(!uflag) {
 		cb = emallocz(blocksize);
-		n = deflateblock(cb, blocksize, b, blocksize, 6, 0);
+		n = deflateblock(cb, blocksize, b, blocksize, level, 0);
 		if(n > 0 && n < blocksize) {
 			bh.encoding = DeflateEnc;
 			bh.size = n;