void Compression::decompress_huffman() { PrefixCodes codes; read_prefix_codes(reader, codes); print(codes); BinaryTree tree(codes); write_decompressed_file(reader, writer, tree); }
/* Decompresses the huff file and writes out the original file */ void decompress(unsigned char* file_pointer, unsigned long long file_length, char* filename) { if(!check_format(file_pointer, file_length, filename)) { printf("Can't decompress a non-huff file.\n"); exit(-1); } unsigned long long start_of_compressed; char* mapping = get_mapping_from_file(file_pointer, file_length, &start_of_compressed); write_decompressed_file(file_pointer, file_length, filename, mapping, start_of_compressed); free(mapping); }