From 784073eb4d4dba1995c35bf35d479c04e5f96e66 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 21 Jun 2004 20:28:30 +0000 Subject: [PATCH 1/1] Algunas mejoras, comentarios y arreglos --- src/Makefile | 4 +--- src/blocksorting/bs.c | 4 ++-- src/jacu.c | 18 ++++++++++++++---- src/mtf/mtf.c | 4 ++-- src/mtf/mtf.h | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Makefile b/src/Makefile index fd18b1e..a046cde 100644 --- a/src/Makefile +++ b/src/Makefile @@ -47,13 +47,11 @@ clean: jacu.o: statichuff/statichuff.h /usr/include/stdio.h /usr/include/features.h jacu.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h -jacu.o: /usr/lib/gcc-lib/i486-linux/3.3.4/include/stddef.h jacu.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h jacu.o: /usr/include/bits/typesizes.h /usr/include/libio.h jacu.o: /usr/include/_G_config.h /usr/include/wchar.h jacu.o: /usr/include/bits/wchar.h /usr/include/gconv.h -jacu.o: /usr/lib/gcc-lib/i486-linux/3.3.4/include/stdarg.h jacu.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h jacu.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h jacu.o: /usr/include/bits/confname.h blocksorting/bs.h /usr/include/string.h -jacu.o: /usr/include/stdlib.h mtf/mtf.h +jacu.o: /usr/include/stdlib.h mtf/mtf.h vfile/vfile.h diff --git a/src/blocksorting/bs.c b/src/blocksorting/bs.c index 64ea8ab..9463b43 100644 --- a/src/blocksorting/bs.c +++ b/src/blocksorting/bs.c @@ -100,8 +100,8 @@ void bs_solve(char *in, char *out, t_BlockSort *bs, unsigned long int *k, unsign (*k) = generar_salida(in, bs, out); /* Guardo el k y el tamaño en el array */ - memcpy(out, k, sizeof(unsigned long int)); - memcpy(out+sizeof(unsigned long int), &leido, sizeof(unsigned long int)); + memcpy(out, &leido, sizeof(unsigned long int)); + memcpy(out+sizeof(unsigned long int), k, sizeof(unsigned long int)); bs->len = l; } diff --git a/src/jacu.c b/src/jacu.c index 8e74812..21f31c5 100644 --- a/src/jacu.c +++ b/src/jacu.c @@ -58,14 +58,16 @@ int main(int argc, char* argv[]) /* No me gusta el tmpfile ... es para probar como anda todo junto */ FILE *fp, *fp_out; unsigned long int i, j, total, k; - int *mtf; + char *mtf; char *salida, *data, c; data = malloc(sizeof(char)*pagesize); - /* Reservo lugar tambien para guardar el k */ + /* Reservo lugar tambien para guardar el k y el tamaño */ salida = malloc(sizeof(char)*(pagesize)+sizeof(unsigned long int)*2); bs = bs_create(pagesize); + fp = fopen(argv[optind], "rb"); fp_out = fopen("tmp.comp", "wb"); + c = fgetc(fp); total = 0; while (!feof(fp)) { @@ -75,17 +77,25 @@ int main(int argc, char* argv[]) c = fgetc(fp); total++; } + /* Hago el BS */ bs_solve(data, salida, bs, &k, i); - /* Le aplico el MTF */ - mtf = jacu_mtf(salida, i+sizeof(unsigned long int)*2); + + /* Le aplico el MTF, salteo el tamaño del bloque para que no se pierda. */ + mtf = jacu_mtf(salida+sizeof(unsigned long int), i+sizeof(unsigned long int)); for(j=0; j #include -int *jacu_mtf(char *datos, int len); +char *jacu_mtf(char *datos, int len); char *jacu_mtf_inv(char *z, int *pos, int len); -- 2.43.0