changeset 1191:9ae892f7bb08 draft

More gzip whitespace tweaks, and the occasional curly bracket. No actual code changes.
author Rob Landley <rob@landley.net>
date Sat, 01 Feb 2014 15:03:49 -0600
parents 1568ba420f32
children 3df4da929f8a
files toys/pending/gzip.c
diffstat 1 files changed, 290 insertions(+), 337 deletions(-) [+]
line wrap: on
line diff
--- a/toys/pending/gzip.c	Fri Jan 31 06:22:32 2014 -0600
+++ b/toys/pending/gzip.c	Sat Feb 01 15:03:49 2014 -0600
@@ -58,7 +58,8 @@
 
 uint crctab[256];
 
-void crc32init(void) {
+void crc32init(void)
+{
   static const uint poly = 0xedb88320;
   int i,j;
 
@@ -66,21 +67,20 @@
     uint crc = i;
 
     for (j = 0; j < 8; j++) {
-      if (crc & 1)
-        crc = (crc >> 1) ^ poly;
-      else
-        crc >>= 1;
+      if (crc & 1) crc = (crc >> 1) ^ poly;
+      else crc >>= 1;
     }
     crctab[i] = crc;
   }
 }
 
-uint crc32(uchar *p, int n, uint crc) {
+uint crc32(uchar *p, int n, uint crc)
+{
   uchar *ep = p + n;
 
   crc ^= 0xffffffff;
-  while (p < ep)
-    crc = crctab[(crc & 0xff) ^ *p++] ^ (crc >> 8);
+  while (p < ep) crc = crctab[(crc & 0xff) ^ *p++] ^ (crc >> 8);
+
   return crc ^ 0xffffffff;
 }
 
@@ -89,7 +89,8 @@
   AdlerN    = 5552   /* max iters before 32bit overflow */
 };
 
-uint adler32(uchar *p, int n, uint adler) {
+uint adler32(uchar *p, int n, uint adler)
+{
   uint s1 = adler & 0xffff;
   uint s2 = (adler >> 16) & 0xffff;
   uchar *ep;
@@ -262,18 +263,18 @@
 static uint revinc(uint n, uint len) {
   uint i = 1 << (len - 1);
 
-  while (n & i)
-    i >>= 1;
+  while (n & i) i >>= 1;
   if (i) {
     n &= i - 1;
     n |= i;
-  } else
-    n = 0;
+  } else n = 0;
+
   return n;
 }
 
 /* build huffman code tree from code lengths (each should be < CodeBits) */
-static int build_huff(Huff *huff, uchar *lens, uint n, uint nbits) {
+static int build_huff(Huff *huff, uchar *lens, uint n, uint nbits)
+{
   int offs[CodeBits];
   int left;
   uint i, c, sum, code, len, min, max;
@@ -283,10 +284,8 @@
   Entry entry;
 
   /* count code lengths */
-  for (i = 0; i < CodeBits; i++)
-    count[i] = 0;
-  for (i = 0; i < n; i++)
-    count[lens[i]]++;
+  for (i = 0; i < CodeBits; i++) count[i] = 0;
+  for (i = 0; i < n; i++) count[lens[i]]++;
   if (count[0] == n) {
     huff->nbits = table[0].len = 0;
     return 0;
@@ -294,18 +293,12 @@
   count[0] = 0;
 
   /* bound code lengths, force nbits to be within the bounds */
-  for (max = CodeBits - 1; max > 0; max--)
-    if (count[max] != 0)
-      break;
-  if (nbits > max)
-    nbits = max;
-  for (min = 1; min < CodeBits; min++)
-    if (count[min] != 0)
-      break;
+  for (max = CodeBits - 1; max > 0; max--) if (count[max] != 0) break;
+  if (nbits > max) nbits = max;
+  for (min = 1; min < CodeBits; min++) if (count[min] != 0) break;
   if (nbits < min) {
     nbits = min;
-    if (nbits > TableBits)
-      return -1;
+    if (nbits > TableBits) return -1;
   }
   huff->nbits = nbits;
 
@@ -313,8 +306,7 @@
   for (left = 1 << min, i = min; i <= max; left <<= 1, i++) {
     left -= count[i];
     /* left < 0: over-subscribed, left > 0: incomplete */
-    if (left < 0)
-      return -1;
+    if (left < 0) return -1;
   }
 
   for (sum = 0, i = 0; i <= max; i++) {
@@ -322,25 +314,20 @@
     sum += count[i];
   }
   /* needed for decoding codes longer than nbits */
-  if (nbits < max)
-    huff->sum = offs[nbits + 1];
+  if (nbits < max) huff->sum = offs[nbits + 1];
 
   /* sort symbols by code length (lexicographic order) */
-  for (i = 0; i < n; i++)
-    if (lens[i])
-      symbol[offs[lens[i]]++] = i;
+  for (i = 0; i < n; i++) if (lens[i]) symbol[offs[lens[i]]++] = i;
 
   /* lookup table for decoding nbits from input.. */
-  for (i = 0; i < 1 << nbits; i++)
-    table[i].len = table[i].sym = 0;
+  for (i = 0; i < 1 << nbits; i++) table[i].len = table[i].sym = 0;
   code = 0;
   /* ..if code is at most nbits (bits are in reverse order, sigh..) */
   for (len = min; len <= nbits; len++)
     for (c = count[len]; c > 0; c--) {
       entry.len = len;
       entry.sym = *symbol;
-      for (i = code; i < 1 << nbits; i += 1 << len)
-        table[i] = entry;
+      for (i = code; i < 1 << nbits; i += 1 << len) table[i] = entry;
       /* next code */
       symbol++;
       code = revinc(code, len);
@@ -351,60 +338,65 @@
     table[code].sym = i << 1;
     code = revinc(code, nbits);
   }
+
   return 0;
 }
 
 /* fixed huffman code trees (should be done at compile time..) */
-static void init_fixed_huffs(void) {
+static void init_fixed_huffs(void)
+{
   int i;
   uchar lens[Nlitlen];
 
-  for (i = 0; i < 144; i++)
-    lens[i] = 8;
-  for (; i < 256; i++)
-    lens[i] = 9;
-  for (; i < 280; i++)
-    lens[i] = 7;
-  for (; i < Nlitlen; i++)
-    lens[i] = 8;
+  for (i = 0; i < 144; i++) lens[i] = 8;
+  for (; i < 256; i++) lens[i] = 9;
+  for (; i < 280; i++) lens[i] = 7;
+  for (; i < Nlitlen; i++) lens[i] = 8;
   build_huff(&lhuff, lens, Nlitlen, 8);
 
-  for (i = 0; i < Ndist; i++)
-    lens[i] = 5;
+  for (i = 0; i < Ndist; i++) lens[i] = 5;
   build_huff(&dhuff, lens, Ndist, 5);
 }
 
 /* fill *bits with n bits from *src */
-static int fillbits_fast(uchar **src, uchar *srcend, uint *bits, uint *nbits, uint n) {
+static int fillbits_fast(uchar **src, uchar *srcend, uint *bits, uint *nbits,
+  uint n)
+{
   while (*nbits < n) {
-    if (*src == srcend)
-      return 0;
+    if (*src == srcend) return 0;
     *bits |= *(*src)++ << *nbits;
     *nbits += 8;
   }
+
   return 1;
 }
 
 /* get n bits from *bits */
-static uint getbits_fast(uint *bits, uint *nbits, int n) {
+static uint getbits_fast(uint *bits, uint *nbits, int n)
+{
   uint k;
 
   k = *bits & ((1 << n) - 1);
   *bits >>= n;
   *nbits -= n;
+
   return k;
 }
 
-static int fillbits(DecodeState *s, uint n) {
+static int fillbits(DecodeState *s, uint n)
+{
   return fillbits_fast(&s->src, s->srcend, &s->bits, &s->nbits, n);
 }
 
-static uint getbits(DecodeState *s, uint n) {
+static uint getbits(DecodeState *s, uint n)
+{
   return getbits_fast(&s->bits, &s->nbits, n);
 }
 
 /* decode symbol bitwise if code is longer than huffbits */
-static uint decode_symbol_long(DecodeState *s, Huff *huff, uint bits, uint nbits, int cur) {
+static uint decode_symbol_long(DecodeState *s, Huff *huff, uint bits,
+  uint nbits, int cur)
+{
   int sum = huff->sum;
   uint huffbits = huff->nbits;
   ushort *count = huff->count + huffbits + 1;
@@ -422,8 +414,7 @@
   nbits -= huffbits;
   for (;;) {
     if (!nbits--) {
-      if (s->src == s->srcend)
-        return FlateIn;
+      if (s->src == s->srcend) return FlateIn;
       bits = *s->src++;
       nbits = 7;
     }
@@ -431,8 +422,7 @@
     bits >>= 1;
     sum += *count;
     cur -= *count;
-    if (cur < 0)
-      break;
+    if (cur < 0) break;
     cur <<= 1;
     count++;
     if (count == huff->count + CodeBits)
@@ -440,11 +430,13 @@
   }
   s->bits = bits;
   s->nbits = nbits;
+
   return huff->symbol[sum + cur];
 }
 
 /* decode a symbol from stream with huff code */
-static uint decode_symbol(DecodeState *s, Huff *huff) {
+static uint decode_symbol(DecodeState *s, Huff *huff)
+{
   uint huffbits = huff->nbits;
   uint nbits = s->nbits;
   uint bits = s->bits;
@@ -493,7 +485,8 @@
 }
 
 /* decode a block of data from stream with trees */
-static int decode_block(DecodeState *s, Huff *lhuff, Huff *dhuff) {
+static int decode_block(DecodeState *s, Huff *lhuff, Huff *dhuff)
+{
   uchar *win = s->win;
   uint pos = s->pos;
   uint sym = s->nclen;
@@ -516,12 +509,12 @@
       if (sym >= Nlen) {
         s->pos = pos;
         s->state = DecodeBlock;
-        if (sym + 257 == (uint)FlateIn)
-          return FlateIn;
+        if (sym + 257 == (uint)FlateIn) return FlateIn;
         return FlateErr;
       }
   case DecodeBlockLenBits:
-      if (!fillbits_fast(&s->src, s->srcend, &s->bits, &s->nbits, lenbits[sym])) {
+      if (!fillbits_fast(&s->src, s->srcend, &s->bits, &s->nbits, lenbits[sym]))
+      {
         s->nclen = sym; /* using nclen to store sym */
         s->pos = pos;
         s->state = DecodeBlockLenBits;
@@ -536,8 +529,7 @@
         s->state = DecodeBlockDist;
         return FlateIn;
       }
-      if (sym >= Ndist)
-        return FlateErr;
+      if (sym >= Ndist) return FlateErr;
   case DecodeBlockDistBits:
       if (!fillbits_fast(&s->src, s->srcend, &s->bits, &s->nbits, distbits[sym])) {
         s->nclen = sym; /* using nclen to store sym */
@@ -591,39 +583,31 @@
 }
 
 /* inflate state machine (decodes s->src into s->win) */
-static int inflate_state(DecodeState *s) {
+static int inflate_state(DecodeState *s)
+{
   int n;
 
-  if (s->posout)
-    return FlateOut;
+  if (s->posout) return FlateOut;
   for (;;) {
     switch (s->state) {
     case BlockHead:
       if (s->final) {
-        if (s->pos)
-          return FlateOut;
-        else
-          return FlateOk;
+        if (s->pos) return FlateOut;
+        else return FlateOk;
       }
-      if (!fillbits(s, 3))
-        return FlateIn;
+      if (!fillbits(s, 3)) return FlateIn;
       s->final = getbits(s, 1);
       n = getbits(s, 2);
-      if (n == 0)
-        s->state = UncompressedBlock;
-      else if (n == 1)
-        s->state = FixedHuff;
-      else if (n == 2)
-        s->state = DynamicHuff;
-      else
-        return s->err = "corrupt block header.", FlateErr;
+      if (n == 0) s->state = UncompressedBlock;
+      else if (n == 1) s->state = FixedHuff;
+      else if (n == 2) s->state = DynamicHuff;
+      else return s->err = "corrupt block header.", FlateErr;
       break;
     case UncompressedBlock:
       /* start block on a byte boundary */
       s->bits >>= s->nbits & 7;
       s->nbits &= ~7;
-      if (!fillbits(s, 32))
-        return FlateIn;
+      if (!fillbits(s, 32)) return FlateIn;
       s->lenpos = getbits(s, 16);
       n = getbits(s, 16);
       if (s->lenpos != (~n & 0xffff))
@@ -633,12 +617,10 @@
       /* TODO: untested, slow, memcpy etc */
       /* s->nbits should be 0 here */
       while (s->lenpos) {
-        if (s->src == s->srcend)
-          return FlateIn;
+        if (s->src == s->srcend) return FlateIn;
         s->lenpos--;
         s->win[s->pos++] = *s->src++;
-        if (s->pos == WinSize)
-          return FlateOut;
+        if (s->pos == WinSize) return FlateOut;
       }
       s->state = BlockHead;
       break;
@@ -648,24 +630,21 @@
       break;
     case DynamicHuff:
       /* decode dynamic huffman code trees */
-      if (!fillbits(s, 14))
-        return FlateIn;
+      if (!fillbits(s, 14)) return FlateIn;
       s->nlit = 257 + getbits(s, 5);
       s->ndist = 1 + getbits(s, 5);
       s->nclen = 4 + getbits(s, 4);
       if (s->nlit > Nlitlen || s->ndist > Ndist)
         return s->err = "corrupt code tree.", FlateErr;
       /* build code length tree */
-      for (n = 0; n < Nclen; n++)
-        s->lens[n] = 0;
+      for (n = 0; n < Nclen; n++) s->lens[n] = 0;
       s->fixed = 0;
       s->state = DynamicHuffClen;
       s->lenpos = 0;
     case DynamicHuffClen:
       for (n = s->lenpos; n < s->nclen; n++)
-        if (fillbits(s, 3)) {
-          s->lens[clenorder[n]] = getbits(s, 3);
-        } else {
+        if (fillbits(s, 3)) s->lens[clenorder[n]] = getbits(s, 3);
+        else {
           s->lenpos = n;
           return FlateIn;
         }
@@ -709,14 +688,11 @@
             s->lens[n++] = c;
         } else if (sym == 17) {
           /* repeat 0 for 3-10 times */
-          for (len = 3 + getbits(s, 3); len; len--)
-            s->lens[n++] = 0;
+          for (len = 3 + getbits(s, 3); len; len--) s->lens[n++] = 0;
         } else if (sym == 18) {
           /* repeat 0 for 11-138 times */
-          for (len = 11 + getbits(s, 7); len; len--)
-            s->lens[n++] = 0;
-        } else
-          return s->err = "corrupt code tree.", FlateErr;
+          for (len = 11 + getbits(s, 7); len; len--) s->lens[n++] = 0;
+        } else return s->err = "corrupt code tree.", FlateErr;
       }
       /* build dynamic huffman code trees */
       if (build_huff(&s->lhuff, s->lens, s->nlit, LitlenTableBits) < 0)
@@ -740,7 +716,8 @@
   }
 }
 
-static DecodeState *alloc_decode_state(void) {
+static DecodeState *alloc_decode_state(void)
+{
   DecodeState *s = malloc(sizeof(DecodeState));
 
   if (s) {
@@ -749,8 +726,7 @@
     s->src = s->srcend = 0;
     s->err = 0;
     /* TODO: globals.. */
-    if (lhuff.nbits == 0)
-      init_fixed_huffs();
+    if (lhuff.nbits == 0) init_fixed_huffs();
   }
   return s;
 }
@@ -758,7 +734,8 @@
 
 /* extern */
 
-int inflate(FlateStream *stream) {
+int inflate(FlateStream *stream)
+{
   DecodeState *s = stream->state;
   int n;
 
@@ -771,8 +748,7 @@
   }
   if (!s) {
     s = stream->state = alloc_decode_state();
-    if (!s)
-      return stream->err = "no mem.", FlateErr;
+    if (!s) return stream->err = "no mem.", FlateErr;
   }
   if (stream->nin) {
     s->src = stream->in;
@@ -781,14 +757,11 @@
   }
   n = inflate_state(s);
   if (n == FlateOut) {
-    if (s->pos < stream->nout)
-      stream->nout = s->pos;
+    if (s->pos < stream->nout) stream->nout = s->pos;
     memcpy(stream->out, s->win + s->posout, stream->nout);
     s->pos -= stream->nout;
-    if (s->pos)
-      s->posout += stream->nout;
-    else
-      s->posout = 0;
+    if (s->pos) s->posout += stream->nout;
+    else s->posout = 0;
   }
   if (n == FlateOk || n == FlateErr) {
     if (s->nbits || s->src < s->srcend) {
@@ -843,7 +816,8 @@
 static uchar fixdlen[Ndist];   /* fixed distance huffman code tree */
 static ushort fixdcode[Ndist];
 
-static uint revcode(uint c, int n) {
+static uint revcode(uint c, int n)
+{
   int i;
   uint r = 0;
 
@@ -855,37 +829,34 @@
 }
 
 /* build huffman code tree from code lengths */
-static void huffcodes(ushort *codes, const uchar *lens, int n) {
+static void huffcodes(ushort *codes, const uchar *lens, int n)
+{
   int c[CodeBits];
   int i, code, count;
 
   /* count code lengths and calc first code for each length */
-  for (i = 0; i < CodeBits; i++)
-    c[i] = 0;
-  for (i = 0; i < n; i++)
-    c[lens[i]]++;
+  for (i = 0; i < CodeBits; i++) c[i] = 0;
+  for (i = 0; i < n; i++) c[lens[i]]++;
   for (code = 0, i = 1; i < CodeBits; i++) {
     count = c[i];
     c[i] = code;
     code += count;
-    if (code > (1 << i))
-      abort(); /* over-subscribed */
+    if (code > (1 << i)) abort(); /* over-subscribed */
     code <<= 1;
   }
   if (code < (1 << i))
     /* incomplete */;
 
   for (i = 0; i < n; i++)
-    if (lens[i])
-      codes[i] = revcode(c[lens[i]]++, lens[i]);
-    else
-      codes[i] = 0;
+    if (lens[i]) codes[i] = revcode(c[lens[i]]++, lens[i]);
+    else codes[i] = 0;
 }
 
 static int heapparent(int n) {return (n - 2)/4 * 2;}
 static int heapchild(int n)  {return 2 * n + 2;}
 
-static int heappush(int *heap, int len, int w, int n) {
+static int heappush(int *heap, int len, int w, int n)
+{
   int p, c, tmp;
 
   c = len;
@@ -897,13 +868,13 @@
       tmp = heap[c]; heap[c] = heap[p]; heap[p] = tmp;
       tmp = heap[c+1]; heap[c+1] = heap[p+1]; heap[p+1] = tmp;
       c = p;
-    } else
-      break;
+    } else break;
   }
   return len;
 }
 
-static int heappop(int *heap, int len, int *w, int *n) {
+static int heappop(int *heap, int len, int *w, int *n)
+{
   int p, c, tmp;
 
   *n = heap[0];
@@ -913,22 +884,20 @@
   p = 0;
   for (;;) {
     c = heapchild(p);
-    if (c >= len)
-      break;
-    if (c+2 < len && heap[c+3] < heap[c+1])
-      c += 2;
+    if (c >= len) break;
+    if (c+2 < len && heap[c+3] < heap[c+1]) c += 2;
     if (heap[p+1] > heap[c+1]) {
       tmp = heap[p]; heap[p] = heap[c]; heap[c] = tmp;
       tmp = heap[p+1]; heap[p+1] = heap[c+1]; heap[c+1] = tmp;
-    } else
-      break;
+    } else break;
     p = c;
   }
   return len;
 }
 
 /* symbol frequencies -> code lengths (limited to 255) */
-static void hufflens(uchar *lens, ushort *freqs, int nsym, int limit) {
+static void hufflens(uchar *lens, ushort *freqs, int nsym, int limit)
+{
   /* 2 <= nsym <= Nlitlen, log(nsym) <= limit <= CodeBits-1 */
   int parent[2*Nlitlen-1];
   int count[CodeBits];
@@ -937,17 +906,13 @@
   int i, j;
   int wi, wj;
 
-  for (n = 0; n < limit+1; n++)
-    count[n] = 0;
+  for (n = 0; n < limit+1; n++) count[n] = 0;
   for (len = n = 0; n < nsym; n++)
-    if (freqs[n] > 0)
-      len = heappush(heap, len, freqs[n], n);
-    else
-      lens[n] = 0;
+    if (freqs[n] > 0) len = heappush(heap, len, freqs[n], n);
+    else lens[n] = 0;
   /* deflate: fewer than two symbols: add new */
   for (n = 0; len < 4; n++)
-    if (freqs[n] == 0)
-      len = heappush(heap, len, ++freqs[n], n);
+    if (freqs[n] == 0) len = heappush(heap, len, ++freqs[n], n);
   /* build code tree */
   top = len;
   for (n = nsym; len > 2; n++) {
@@ -968,8 +933,7 @@
     if (n >= nsym) {
       /* overwrite parent index with length */
       parent[n] = parent[parent[n]] + 1;
-      if (parent[n] > limit)
-        overflow++;
+      if (parent[n] > limit) overflow++;
     } else {
       lens[n] = parent[parent[n]] + 1;
       if (lens[n] > limit) {
@@ -979,8 +943,7 @@
       count[lens[n]]++;
     }
   }
-  if (overflow == 0)
-    return;
+  if (overflow == 0) return;
   /* modify code tree to fix overflow (from zlib) */
   while (overflow > 0) {
     for (n = limit-1; count[n] == 0; n--);
@@ -1000,7 +963,8 @@
 }
 
 /* output n (<= 16) bits */
-static void putbits(State *s, uint bits, int n) {
+static void putbits(State *s, uint bits, int n)
+{
   s->bits |= bits << s->nbits;
   s->nbits += n;
   while (s->nbits >= 8) {
@@ -1011,14 +975,14 @@
 }
 
 /* run length encode literal and dist code lengths into codes and extra */
-static int clencodes(uchar *codes, uchar *extra, uchar *llen, int nlit, uchar *dlen, int ndist) {
+static int clencodes(uchar *codes, uchar *extra, uchar *llen, int nlit,
+  uchar *dlen, int ndist)
+{
   int i, c, r, rr;
   int n = 0;
 
-  for (i = 0; i < nlit; i++)
-    codes[i] = llen[i];
-  for (i = 0; i < ndist; i++)
-    codes[nlit + i] = dlen[i];
+  for (i = 0; i < nlit; i++) codes[i] = llen[i];
+  for (i = 0; i < ndist; i++) codes[nlit + i] = dlen[i];
   for (i = 0; i < nlit + ndist;) {
     c = codes[i];
     for (r = 1; i + r < nlit + ndist && codes[i + r] == c; r++);
@@ -1050,16 +1014,17 @@
 }
 
 /* compress block data into s->dstbuf using given codes */
-static void putblock(State *s, ushort *lcode, uchar *llen, ushort *dcode, uchar *dlen) {
+static void putblock(State *s, ushort *lcode, uchar *llen, ushort *dcode,
+  uchar *dlen)
+{
   int n;
   LzCode *lz;
   uchar *p;
 
-  for (lz = s->lzbuf, p = s->src + s->startpos; lz != s->lz; lz++)
-    if (lz->bits & LzLitFlag)
-      for (n = lz->n; n > 0; n--, p++)
-        putbits(s, lcode[*p], llen[*p]);
-    else {
+  for (lz = s->lzbuf, p = s->src + s->startpos; lz != s->lz; lz++) {
+    if (lz->bits & LzLitFlag) {
+      for (n = lz->n; n > 0; n--, p++) putbits(s, lcode[*p], llen[*p]);
+    } else {
       p += lenbase[lz->n] + lz->bits;
       putbits(s, lcode[Nlit + lz->n + 1], llen[Nlit + lz->n + 1]);
       putbits(s, lz->bits, lenbits[lz->n]);
@@ -1067,11 +1032,13 @@
       putbits(s, dcode[lz->n], dlen[lz->n]);
       putbits(s, lz->bits, distbits[lz->n]);
     }
+  }
   putbits(s, lcode[EOB], llen[EOB]);
 }
 
 /* build code trees and select dynamic/fixed/uncompressed block compression */
-static void deflate_block(State *s) {
+static void deflate_block(State *s)
+{
   uchar codes[Nlitlen + Ndist], extra[Nlitlen + Ndist];
   uchar llen[Nlitlen], dlen[Ndist], clen[Nclen];
   ushort cfreq[Nclen];
@@ -1094,8 +1061,7 @@
   for (ndist = Ndist; ndist > 1 && dlen[ndist-1] == 0; ndist--);
   ncodes = clencodes(codes, extra, llen, nlit, dlen, ndist);
   memset(cfreq, 0, sizeof(cfreq));
-  for (i = 0; i < ncodes; i++)
-    cfreq[codes[i]]++;
+  for (i = 0; i < ncodes; i++) cfreq[codes[i]]++;
   hufflens(clen, cfreq, Nclen, 7);
   huffcodes(ccode, clen, Nclen);
   for (nclen = Nclen; nclen > 4 && clen[clenorder[nclen-1]] == 0; nclen--);
@@ -1107,21 +1073,18 @@
   for (i = 0; i < ncodes; i++) {
     c = codes[i];
     dynsize += clen[c];
-    if (c == 16)
-      dynsize += 2;
-    if (c == 17)
-      dynsize += 3;
-    if (c == 18)
-      dynsize += 7;
+    if (c == 16) dynsize += 2;
+    if (c == 17) dynsize += 3;
+    if (c == 18) dynsize += 7;
   }
 /* dyntree = dynsize - 3; */
-  for (lz = s->lzbuf, p = s->src + s->startpos; lz != s->lz; lz++)
-    if (lz->bits & LzLitFlag)
+  for (lz = s->lzbuf, p = s->src + s->startpos; lz != s->lz; lz++) {
+    if (lz->bits & LzLitFlag) {
       for (n = lz->n; n > 0; n--, p++) {
         fixsize += fixllen[*p];
         dynsize += llen[*p];
       }
-    else {
+    } else {
       p += lenbase[lz->n] + lz->bits;
       fixsize += fixllen[Nlit + lz->n + 1];
       dynsize += llen[Nlit + lz->n + 1];
@@ -1133,6 +1096,7 @@
       fixsize += distbits[lz->n];
       dynsize += distbits[lz->n];
     }
+  }
   fixsize += fixllen[EOB];
   dynsize += llen[EOB];
 
@@ -1144,17 +1108,13 @@
     putbits(s, nlit - 257, 5);
     putbits(s, ndist - 1, 5);
     putbits(s, nclen - 4, 4);
-    for (i = 0; i < nclen; i++)
-      putbits(s, clen[clenorder[i]], 3);
+    for (i = 0; i < nclen; i++) putbits(s, clen[clenorder[i]], 3);
     for (i = 0; i < ncodes; i++) {
       c = codes[i];
       putbits(s, ccode[c], clen[c]);
-      if (c == 16)
-        putbits(s, extra[i], 2);
-      if (c == 17)
-        putbits(s, extra[i], 3);
-      if (c == 18)
-        putbits(s, extra[i], 7);
+      if (c == 16) putbits(s, extra[i], 2);
+      if (c == 17) putbits(s, extra[i], 3);
+      if (c == 18) putbits(s, extra[i], 7);
     }
     putblock(s, lcode, llen, dcode, dlen);
   } else if (fixsize < uncsize) {
@@ -1179,23 +1139,23 @@
 }
 
 /* find n in base */
-static int bisect(ushort *base, int len, int n) {
+static int bisect(ushort *base, int len, int n)
+{
   int lo = 0;
   int hi = len;
   int k;
 
   while (lo < hi) {
     k = (lo + hi) / 2;
-    if (n < base[k])
-      hi = k;
-    else
-      lo = k + 1;
+    if (n < base[k]) hi = k;
+    else lo = k + 1;
   }
   return lo - 1;
 }
 
 /* add literal run length to lzbuf */
-static void flushlit(State *s) {
+static void flushlit(State *s)
+{
   if (s->nlit) {
     s->lz->bits = LzLitFlag;
     s->lz->n = s->nlit;
@@ -1205,7 +1165,8 @@
 }
 
 /* add match to lzbuf and update freq counts */
-static void recordmatch(State *s, Match m) {
+static void recordmatch(State *s, Match m)
+{
   int n;
 
 /*fprintf(stderr, "m %d %d\n", m.len, m.dist);*/
@@ -1223,37 +1184,41 @@
 }
 
 /* update literal run length */
-static void recordlit(State *s, int c) {
+static void recordlit(State *s, int c)
+{
 /*fprintf(stderr, "l %c\n", c);*/
   s->nlit++;
   s->lfreq[c]++;
 }
 
 /* multiplicative hash (using a prime close to golden ratio * 2^32) */
-static int gethash(uchar *p) {
-  return (0x9e3779b1 * ((p[0]<<16) + (p[1]<<8) + p[2]) >> (32 - HashBits)) % HashSize;
+static int gethash(uchar *p)
+{
+  return (0x9e3779b1 * ((p[0]<<16) + (p[1]<<8) + p[2]) >> (32 - HashBits))
+         % HashSize;
 }
 
 /* update hash chain at the current position */
-static int updatechain(State *s) {
+static int updatechain(State *s)
+{
   int hash, next = 0, p = s->pos, i;
 
-  if (s->endpos - p < MinMatch)
-    p = s->endpos - MinMatch;
+  if (s->endpos - p < MinMatch) p = s->endpos - MinMatch;
   for (i = s->pos - s->skip; i <= p; i++) {
     hash = gethash(s->src + i);
     next = s->head[hash];
     s->head[hash] = i;
-    if (next >= i || i - next >= MaxDist)
-      next = 0;
+    if (next >= i || i - next >= MaxDist) next = 0;
     s->chain[i % WinSize] = next;
   }
   s->skip = 0;
+
   return next;
 }
 
 /* find longest match, next position in the hash chain is given */
-static Match getmatch(State *s, int next) {
+static Match getmatch(State *s, int next)
+{
   Match m = {0, MinMatch-1};
   int len;
   int limit = s->pos - MaxDist;
@@ -1279,16 +1244,16 @@
         m.len = s->endpos - s->pos;
         return m;
       }
-      if (len == MaxMatch)
-        return m;
+      if (len == MaxMatch) return m;
     }
   } while ((next = s->chain[next % WinSize]) > limit && --chainlen);
-  if (m.len < MinMatch || (m.len == MinMatch && m.dist > BigDist))
-    m.len = 0;
+  if (m.len < MinMatch || (m.len == MinMatch && m.dist > BigDist)) m.len = 0;
+
   return m;
 }
 
-static void startblock(State *s) {
+static void startblock(State *s)
+{
   s->startpos = s->pos;
   s->dst = s->dstbegin = s->dstbuf;
   s->lz = s->lzbuf;
@@ -1298,11 +1263,11 @@
   s->lfreq[EOB]++;
 }
 
-static int shiftwin(State *s) {
+static int shiftwin(State *s)
+{
   int n;
 
-  if (s->startpos < WinSize)
-    return 0;
+  if (s->startpos < WinSize) return 0;
   memmove(s->src, s->src + WinSize, SrcSize - WinSize);
   for (n = 0; n < HashSize; n++)
     s->head[n] = s->head[n] > WinSize ? s->head[n] - WinSize : 0;
@@ -1311,37 +1276,40 @@
   s->pos -= WinSize;
   s->startpos -= WinSize;
   s->endpos -= WinSize;
+
   return 1;
 }
 
-static int endblock(State *s) {
-  if ((s->pos >= 2*WinSize && !shiftwin(s)) || s->pos - s->startpos >= BlockSize ||
-    s->lz - s->lzbuf >= LzGuard || (s->eof && s->pos == s->endpos)) {
+static int endblock(State *s)
+{
+  if ((s->pos >= 2*WinSize && !shiftwin(s))
+      || s->pos - s->startpos >= BlockSize || s->lz - s->lzbuf >= LzGuard
+      || (s->eof && s->pos == s->endpos))
+  {
     /* deflate block */
     flushlit(s);
-    if (s->prevm.len)
-      s->pos--;
+    if (s->prevm.len) s->pos--;
     deflate_block(s);
-    if (s->eof && s->pos == s->endpos)
-      putbits(s, 0, 7);
+    if (s->eof && s->pos == s->endpos) putbits(s, 0, 7);
+
     return 1;
   }
+
   return 0;
 }
 
-static int fillsrc(State *s) {
+static int fillsrc(State *s)
+{
   int n, k;
 
   if (s->endpos < SrcSize && !s->eof) {
     n = SrcSize - s->endpos;
     k = s->inend - s->in;
-    if (n > k)
-      n = k;
+    if (n > k) n = k;
     memcpy(s->src + s->endpos, s->in, n);
     s->in += n;
     s->endpos += n;
-    if (s->endpos < SrcSize)
-      return 0;
+    if (s->endpos < SrcSize) return 0;
   }
   return 1;
 }
@@ -1354,74 +1322,61 @@
 }
 
 /* deflate compress from s->src into s->dstbuf */
-static int deflate_state(State *s) {
+static int deflate_state(State *s)
+{
   Match m;
   int next;
   int guard;
 
-  if (s->state == FlateIn)
-    s->eof = s->in == s->inend;
+  if (s->state == FlateIn) s->eof = s->in == s->inend;
   else if (s->state == FlateOut) {
-    if (s->dstbegin < s->dst)
-      return (s->state = FlateOut);
-    if (s->eof && s->pos == s->endpos)
-      return (s->state = FlateOk);
+    if (s->dstbegin < s->dst) return (s->state = FlateOut);
+    if (s->eof && s->pos == s->endpos) return (s->state = FlateOk);
     startblock(s);
-    if (s->prevm.len)
-      s->pos++;
-  } else
-    return s->state;
+    if (s->prevm.len) s->pos++;
+  } else return s->state;
 
   guard = calcguard(s);
   for (;;) {
     if (s->pos >= guard || s->lz - s->lzbuf >= LzGuard) {
 /*fprintf(stderr,"guard:%d pos:%d len:%d lzlen:%d end:%d start:%d nin:%d eof:%d\n", guard, s->pos, s->pos - s->startpos, s->lz - s->lzbuf, s->endpos, s->startpos, s->inend - s->in, s->eof);*/
-      if (endblock(s))
-        return (s->state = FlateOut);
-      if (!fillsrc(s))
-        return (s->state = FlateIn);
+      if (endblock(s)) return (s->state = FlateOut);
+      if (!fillsrc(s)) return (s->state = FlateIn);
       guard = calcguard(s);
     }
     next = updatechain(s);
-    if (next)
-      m = getmatch(s, next);
+    if (next) m = getmatch(s, next);
     if (next && m.len > s->prevm.len) {
-      if (s->prevm.len)
-        recordlit(s, s->src[s->pos-1]);
+      if (s->prevm.len) recordlit(s, s->src[s->pos-1]);
       s->prevm = m;
     } else if (s->prevm.len) {
       recordmatch(s, s->prevm);
       s->skip = s->prevm.len - 2;
       s->prevm.len = 0;
       s->pos += s->skip;
-    } else
-      recordlit(s, s->src[s->pos]);
+    } else recordlit(s, s->src[s->pos]);
     s->pos++;
   }
 }
 
 /* alloc and init state */
-static State *alloc_state(void) {
+static State *alloc_state(void)
+{
   State *s = malloc(sizeof(State));
   int i;
 
-  if (!s)
-    return s;
+  if (!s) return s;
+
   memset(s->chain, 0, sizeof(s->chain));
   memset(s->head, 0, sizeof(s->head));
   s->bits = s->nbits = 0;
   /* TODO: globals */
   if (fixllen[0] == 0) {
-    for (i = 0; i < 144; i++)
-      fixllen[i] = 8;
-    for (; i < 256; i++)
-      fixllen[i] = 9;
-    for (; i < 280; i++)
-      fixllen[i] = 7;
-    for (; i < Nlitlen; i++)
-      fixllen[i] = 8;
-    for (i = 0; i < Ndist; i++)
-      fixdlen[i] = 5;
+    for (i = 0; i < 144; i++) fixllen[i] = 8;
+    for (; i < 256; i++) fixllen[i] = 9;
+    for (; i < 280; i++) fixllen[i] = 7;
+    for (; i < Nlitlen; i++) fixllen[i] = 8;
+    for (i = 0; i < Ndist; i++) fixdlen[i] = 5;
     huffcodes(fixlcode, fixllen, Nlitlen);
     huffcodes(fixdcode, fixdlen, Ndist);
   }
@@ -1438,7 +1393,8 @@
 
 /* extern */
 
-int deflate(FlateStream *stream) {
+int deflate(FlateStream *stream)
+{
   State *s = stream->state;
   int n, k;
 
@@ -1449,48 +1405,54 @@
   }
   if (!s) {
     s = stream->state = alloc_state();
-    if (!s)
-      return stream->err = "no mem.", FlateErr;
+    if (!s) return stream->err = "no mem.", FlateErr;
   }
+
   if (stream->nin) {
     s->in = stream->in;
     s->inend = s->in + stream->nin;
     stream->nin = 0;
   }
   n = deflate_state(s);
+
   if (n == FlateOut) {
     k = s->dst - s->dstbegin;
-    if (k < stream->nout)
-      stream->nout = k;
+    if (k < stream->nout) stream->nout = k;
     memcpy(stream->out, s->dstbegin, stream->nout);
     s->dstbegin += stream->nout;
   }
+
   if (n == FlateOk || n == FlateErr) {
     free(s);
     stream->state = 0;
   }
+
   return n;
 }
 
-static void set32(uchar *p, uint n) {
+static void set32(uchar *p, uint n)
+{
   p[0] = n >> 24;
   p[1] = n >> 16;
   p[2] = n >> 8;
   p[3] = n;
 }
 
-static void set32le(uchar *p, uint n) {
+static void set32le(uchar *p, uint n)
+{
   p[0] = n;
   p[1] = n >> 8;
   p[2] = n >> 16;
   p[3] = n >> 24;
 }
 
-static int check32(uchar *p, uint n) {
+static int check32(uchar *p, uint n)
+{
   return n == ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]);
 }
 
-static int check32le(uchar *p, uint n) {
+static int check32le(uchar *p, uint n)
+{
   return n == (p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24));
 }
 
@@ -1502,34 +1464,35 @@
   ZlibFCHK  = 31 - (((ZlibCM | ZlibCINFO) << 8) | ZlibFLEV) % 31
 };
 
-int deflate_zlib_header(uchar *p, int n) {
-  if (n < 2)
-    return FlateErr;
+int deflate_zlib_header(uchar *p, int n)
+{
+  if (n < 2) return FlateErr;
   p[0] = ZlibCM | ZlibCINFO;  /* deflate method, 32K window size */
   p[1] = ZlibFLEV | ZlibFCHK; /* highest compression */
+
   return 2;
 }
 
-int deflate_zlib_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
-  if (n < 4)
-    return FlateErr;
+int deflate_zlib_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
+  if (n < 4) return FlateErr;
   set32(p, sum);
+
   return 4;
 }
 
-int inflate_zlib_header(uchar *p, int n) {
-  if (n < 2)
-    return FlateErr;
-  if (((p[0] << 8) | p[1]) % 31)
-    return FlateErr;
-  if ((p[0] & 0xf0) != ZlibCM || (p[0] & 0x0f) > ZlibCINFO)
-    return FlateErr;
-  if (p[1] & ZlibFDICT)
-    return FlateErr;
+int inflate_zlib_header(uchar *p, int n)
+{
+  if (n < 2) return FlateErr;
+  if (((p[0] << 8) | p[1]) % 31) return FlateErr;
+  if ((p[0] & 0xf0) != ZlibCM || (p[0] & 0x0f) > ZlibCINFO) return FlateErr;
+  if (p[1] & ZlibFDICT) return FlateErr;
+
   return 2;
 }
 
-int inflate_zlib_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
+int inflate_zlib_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
   if (n < 4 || !check32(p, sum))
     return FlateErr;
   return 4;
@@ -1548,7 +1511,8 @@
   GZipOS     = 255
 };
 
-int deflate_gzip_header(uchar *p, int n) {
+int deflate_gzip_header(uchar *p, int n)
+{
   if (n < 10)
     return FlateErr;
   memset(p, 0, 10);
@@ -1560,7 +1524,8 @@
   return 10;
 }
 
-int deflate_gzip_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
+int deflate_gzip_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
   if (n < 8)
     return FlateErr;
   set32le(p, sum);
@@ -1568,45 +1533,38 @@
   return 8;
 }
 
-int inflate_gzip_header(uchar *p, int n) {
+int inflate_gzip_header(uchar *p, int n)
+{
   int k = 10;
 
-  if (k > n)
-    return FlateErr;
-  if (p[0] != GZipID1 || p[1] != GZipID2 || p[2] != GZipCM)
-    return FlateErr;
+  if (k > n) return FlateErr;
+  if (p[0] != GZipID1 || p[1] != GZipID2 || p[2] != GZipCM) return FlateErr;
   if (p[3] & GZipFEXTRA) {
     k += 2 + ((p[k] << 8) | p[k+1]);
-    if (k > n)
-      return FlateErr;
+    if (k > n) return FlateErr;
   }
   if (p[3] & GZipFNAME) {
-    for (; k < n; k++)
-      if (p[k] == 0)
-        break;
+    for (; k < n; k++) if (p[k] == 0) break;
     k++;
-    if (k > n)
-      return FlateErr;
+    if (k > n) return FlateErr;
   }
   if (p[3] & GZipFCOMM) {
-    for (; k < n; k++)
-      if (p[k] == 0)
-        break;
+    for (; k < n; k++) if (p[k] == 0) break;
     k++;
-    if (k > n)
-      return FlateErr;
+    if (k > n) return FlateErr;
   }
   if (p[3] & GZipFHCRC) {
     k += 2;
-    if (k > n)
-      return FlateErr;
+    if (k > n) return FlateErr;
   }
+
   return k;
 }
 
-int inflate_gzip_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
-  if (n < 8 || !check32le(p, sum) || !check32le(p+4, len))
-    return FlateErr;
+int inflate_gzip_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
+  if (n < 8 || !check32le(p, sum) || !check32le(p+4, len)) return FlateErr;
+
   return 8;
 }
 
@@ -1627,9 +1585,9 @@
   PKNameLen  = sizeof(pkname) - 1
 };
 
-int deflate_pkzip_header(uchar *p, int n) {
-  if (n < PKHeadSize + PKNameLen)
-    return FlateErr;
+int deflate_pkzip_header(uchar *p, int n)
+{
+  if (n < PKHeadSize + PKNameLen) return FlateErr;
   memset(p, 0, PKHeadSize);
   set32le(p, PKHeadID);
   set32le(p+4, PKVersion);
@@ -1641,13 +1599,12 @@
   return PKHeadSize + PKNameLen;
 }
 
-int deflate_pkzip_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
-  if (n < PKDirSize + PKNameLen + 22)
-    return FlateErr;
+int deflate_pkzip_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
+  if (n < PKDirSize + PKNameLen + 22) return FlateErr;
   /* unzip bug */
 /*
-  if (n < 16 + PKDirSize + PKNameLen + 22)
-    return FlateErr;
+  if (n < 16 + PKDirSize + PKNameLen + 22) return FlateErr;
   set32le(p, PKDataID);
   set32le(p+4, sum);
   set32le(p+8, zlen);
@@ -1679,43 +1636,36 @@
 */
 }
 
-int inflate_pkzip_header(uchar *p, int n) {
+int inflate_pkzip_header(uchar *p, int n)
+{
   int k = 30;
 
-  if (k > n)
-    return FlateErr;
-  if (!check32le(p, PKHeadID))
-    return FlateErr;
-  if ((p[4] | (p[5] << 8)) > PKVersion)
-    return FlateErr;
-  if ((p[8] | (p[9] << 8)) != PKMethod)
-    return FlateErr;
+  if (k > n) return FlateErr;
+  if (!check32le(p, PKHeadID)) return FlateErr;
+  if ((p[4] | (p[5] << 8)) > PKVersion) return FlateErr;
+  if ((p[8] | (p[9] << 8)) != PKMethod) return FlateErr;
   k += p[26] | (p[27] << 8);
   k += p[28] | (p[29] << 8);
-  if (k > n)
-    return FlateErr;
+  if (k > n) return FlateErr;
+
   return k;
 }
 
-int inflate_pkzip_footer(uchar *p, int n, uint sum, uint len, uint zlen) {
+int inflate_pkzip_footer(uchar *p, int n, uint sum, uint len, uint zlen)
+{
   int k = PKDirSize + 22;
 
-  if (k > n)
-    return FlateErr;
+  if (k > n) return FlateErr;
   if (check32le(p, PKDataID)) {
     p += 16;
     k += 16;
-    if (k > n)
-      return FlateErr;
+    if (k > n) return FlateErr;
   }
-  if (!check32le(p, PKDirID))
-    return FlateErr;
-  if (!check32le(p+16, sum))
-    return FlateErr;
-  if (!check32le(p+20, zlen))
-    return FlateErr;
-  if (!check32le(p+24, len))
-    return FlateErr;
+  if (!check32le(p, PKDirID)) return FlateErr;
+  if (!check32le(p+16, sum)) return FlateErr;
+  if (!check32le(p+20, zlen)) return FlateErr;
+  if (!check32le(p+24, len)) return FlateErr;
+
   return k;
 }
 
@@ -1744,7 +1694,8 @@
 }
 
 /* compress, using FlateStream interface */
-int compress_stream(FILE *in, FILE *out) {
+int compress_stream(FILE *in, FILE *out)
+{
   FlateStream s;
   int k, n;
   enum {Nin = 1<<15, Nout = 1<<15};
@@ -1799,7 +1750,8 @@
 }
 
 /* decompress, using FlateStream interface */
-int decompress_stream(FILE *in, FILE *out) {
+int decompress_stream(FILE *in, FILE *out)
+{
   FlateStream s;
   uchar *begin;
   int k, n;
@@ -1859,7 +1811,8 @@
     }
 }
 
-static int old_main(int argc, char *argv[]) {
+static int old_main(int argc, char *argv[])
+{
   char comp = 'c';
   char fmt = 'r';
   char verbose = 'q';