Commit my improvement on Rodney Brown's patch to g(un)zip, decreasing
binary size.
diff --git a/archival/libunarchive/decompress_unzip.c b/archival/libunarchive/decompress_unzip.c
index a747bae..6c3f322 100644
--- a/archival/libunarchive/decompress_unzip.c
+++ b/archival/libunarchive/decompress_unzip.c
@@ -186,6 +186,8 @@
 	return 0;
 }
 
+typedef unsigned char extra_bits_t;
+
 /* Given a list of code lengths and a maximum table size, make a set of
  * tables to decode that set of codes.  Return zero on success, one if
  * the given code set is incomplete (the tables are still built in this
@@ -201,7 +203,7 @@
  * m:	maximum lookup bits, returns actual
  */
 static int huft_build(unsigned int *b, const unsigned int n, const unsigned int s, 
-	const unsigned short *d, const unsigned short *e, huft_t **t, int *m)
+	const unsigned short *d, const extra_bits_t *e, huft_t **t, int *m)
 {
 	unsigned a;		/* counter for codes of length k */
 	unsigned c[BMAX + 1];	/* bit length count table */
@@ -489,6 +491,30 @@
 	return 0;
 }
 
+static const unsigned short cplens[] = {     /* Copy lengths for literal codes 257..285 */
+    3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
+    35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
+};
+/* note: see note #13 above about the 258 in this list. */
+static const extra_bits_t cplext[] = {  /* Extra bits for literal codes 257..285 */
+    0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
+    3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99
+};                 /* 99==invalid */
+static const unsigned short cpdist[] = {     /* Copy offsets for distance codes 0..29 */
+    1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
+    257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
+    8193, 12289, 16385, 24577
+};
+static const extra_bits_t cpdext[] = {  /* Extra bits for distance codes */
+    0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
+    7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
+    12, 12, 13, 13
+};
+/* Tables for deflate from PKZIP's appnote.txt. */
+static const extra_bits_t border[] = {  /* Order of the bit length code lengths */
+    16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
+};
+
 /*
  * decompress an inflated block
  * e: last block flag
@@ -500,25 +526,6 @@
 	unsigned t;			/* block type */
 	register unsigned long b;			/* bit buffer */
 	register unsigned k;		/* number of bits in bit buffer */
-	static unsigned short cplens[] = {		/* Copy lengths for literal codes 257..285 */
-		3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,
-		35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0
-	};
-	/* note: see note #13 above about the 258 in this list. */
-	static unsigned short cplext[] = {		/* Extra bits for literal codes 257..285 */
-		0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2,
-		3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99
-	};				/* 99==invalid */
-	static unsigned short cpdist[] = {		/* Copy offsets for distance codes 0..29 */
-		1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
-		257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
-		8193, 12289, 16385, 24577
-	};
-	static unsigned short cpdext[] = {		/* Extra bits for distance codes */
-		0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6,
-		7, 7, 8, 8, 9, 9, 10, 10, 11, 11,
-		12, 12, 13, 13
-	};
 
 	/* make local bit buffer */
 	b = bb;
@@ -657,12 +664,8 @@
 		}
 	case 2:	/* Inflate dynamic */
 		{
-			/* Tables for deflate from PKZIP's appnote.txt. */
-			static unsigned border[] = {	/* Order of the bit length code lengths */
-				16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15
-			};
-			int dbits = 6;					/* bits in base distance lookup table */
-			int lbits = 9;					/* bits in base literal/length lookup table */
+			const int dbits = 6;					/* bits in base distance lookup table */
+			const int lbits = 9;					/* bits in base literal/length lookup table */
 
 			int i;						/* temporary variables */
 			unsigned j;