about summary refs log tree commit diff
path: root/src/engine/e_huffman.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-14 17:19:13 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-14 17:19:13 +0000
commit817f431377c7f1545621ff597c018b133651e991 (patch)
tree03fe513c4cc7d34ce9537f81375251ba86b33950 /src/engine/e_huffman.c
parent0fceb1cf1ab9887040f08f0abf646ef318a65ae3 (diff)
downloadzcatch-817f431377c7f1545621ff597c018b133651e991.tar.gz
zcatch-817f431377c7f1545621ff597c018b133651e991.zip
moved out e_system, e_detect, vmath and math to a little base library
Diffstat (limited to 'src/engine/e_huffman.c')
-rw-r--r--src/engine/e_huffman.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/engine/e_huffman.c b/src/engine/e_huffman.c
index f2e58f0c..dfb5c817 100644
--- a/src/engine/e_huffman.c
+++ b/src/engine/e_huffman.c
@@ -1,11 +1,11 @@
+#include <base/system.h>
 #include <stdlib.h>
 #include <string.h>
-#include <engine/e_system.h>
 #include <engine/e_huffman.h>
 
 void huffman_init(HUFFSTATE *huff)
 {
-	mem_zero(huff, sizeof(huff));
+	mem_zero(huff, sizeof(HUFFSTATE));
 	huff->nodes[0].frequency = 1;
 	huff->nodes[0].symbol_size = -1;
 	huff->num_symbols++;
@@ -160,7 +160,10 @@ static void bitio_init(HUFFBITIO *bitio, unsigned char *data)
 
 static void bitio_flush(HUFFBITIO *bitio)
 {
-	*bitio->data = bitio->current_bits;
+	if(bitio->num == 8)
+		*bitio->data = bitio->current_bits << (8-bitio->num);
+	else
+		*bitio->data = bitio->current_bits;
 	bitio->data++;
 	bitio->num = 0;
 	bitio->current_bits = 0;