OSDN Git Service

global variable bitbuf, subbitbuf and bitcount was removed
[lha/olha.git] / huf.c
diff --git a/huf.c b/huf.c
index 9126e06..b51b368 100644 (file)
--- a/huf.c
+++ b/huf.c
@@ -244,7 +244,7 @@ output(struct lzh_ostream *wp, uint c, uint p)
 }
 
 void
-huf_encode_start(struct lha_method *m)
+huf_encode_start(struct lzh_ostream *wp, struct lha_method *m)
 {
     int i;
 
@@ -264,7 +264,7 @@ huf_encode_start(struct lha_method *m)
     for (i = 0; i < np; i++)
         p_freq[i] = 0;
     output_pos = output_mask = 0;
-    init_putbits();
+    init_putbits(wp);
 }
 
 void
@@ -295,10 +295,10 @@ read_pt_len(struct lzh_istream *rp, int nn, int nbit, int i_special)
     else {
         i = 0;
         while (i < n) {
-            c = bitbuf >> (BITBUFSIZ - 3);
+            c = rp->bitbuf >> (BITBUFSIZ - 3);
             if (c == 7) {
                 mask = 1U << (BITBUFSIZ - 1 - 3);
-                while (mask & bitbuf) {
+                while (mask & rp->bitbuf) {
                     mask >>= 1;
                     c++;
                 }
@@ -334,11 +334,11 @@ read_c_len(struct lzh_istream *rp)
     else {
         i = 0;
         while (i < n) {
-            c = pt_table[bitbuf >> (BITBUFSIZ - 8)];
+            c = pt_table[rp->bitbuf >> (BITBUFSIZ - 8)];
             if (c >= NT) {
                 mask = 1U << (BITBUFSIZ - 1 - 8);
                 do {
-                    if (bitbuf & mask)
+                    if (rp->bitbuf & mask)
                         c = right[c];
                     else
                         c = left[c];
@@ -377,11 +377,11 @@ decode_c(struct lzh_istream *rp)
         read_pt_len(rp, np, pbit, -1);
     }
     blocksize--;
-    j = c_table[bitbuf >> (BITBUFSIZ - 12)];
+    j = c_table[rp->bitbuf >> (BITBUFSIZ - 12)];
     if (j >= NC) {
         mask = 1U << (BITBUFSIZ - 1 - 12);
         do {
-            if (bitbuf & mask)
+            if (rp->bitbuf & mask)
                 j = right[j];
             else
                 j = left[j];
@@ -397,11 +397,11 @@ decode_p(struct lzh_istream *rp)
 {
     uint j, mask;
 
-    j = pt_table[bitbuf >> (BITBUFSIZ - 8)];
+    j = pt_table[rp->bitbuf >> (BITBUFSIZ - 8)];
     if (j >= np) {
         mask = 1U << (BITBUFSIZ - 1 - 8);
         do {
-            if (bitbuf & mask)
+            if (rp->bitbuf & mask)
                 j = right[j];
             else
                 j = left[j];