From 6d6d7068e6cde94ff373ccfd25f1f9533fc75e70 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Tue, 22 Jun 2004 14:21:15 +0000 Subject: [PATCH] "completo" descompresor ... se pierde todos los datos :-/ --- src/jacu.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/jacu.c b/src/jacu.c index 895ac4d..ee98a05 100644 --- a/src/jacu.c +++ b/src/jacu.c @@ -139,22 +139,27 @@ int main(int argc, char* argv[]) if (dflag == 1) { /* Descomprimo */ FILE *fp_out; - VFILE *fp_in; + FILE *fp_in; Uint32 block_size, k; char *block, *mtf, *orig; char *z; + int z_len; shuff_decode_file(argv[optind], "tmp.comp"); /*argv[optind+1]);*/ - fp_in = vfopen("tmp.comp", "r", 0); + fp_in = fopen("tmp.comp", "rb"); fp_out = fopen(argv[optind+1], "wb"); - while (!vfeof(fp_in)) { + while (!feof(fp_in)) { block_size = 0; - vfread(&block_size, sizeof(Uint32), 1, fp_in); + fread(&block_size, sizeof(Uint32), 1, fp_in); + fread(&z_len, sizeof(int), 1, fp_in); + z = malloc(sizeof(char)*z_len); + fread(z, z_len, sizeof(char), fp_in); + if (block_size > 0) { - block = malloc((block_size+sizeof(Uint32))*sizeof(char)); + block = malloc(block_size*sizeof(char)+sizeof(Uint32)); orig = malloc(block_size*sizeof(char)); - vfread(block, block_size, sizeof(char), fp_in); + fread(block, block_size, sizeof(char), fp_in); mtf = jacu_mtf_inv(z, block, block_size); @@ -168,7 +173,7 @@ int main(int argc, char* argv[]) free(mtf); } } - vfclose(fp_in); + fclose(fp_in); fclose(fp_out); } -- 2.43.0