From 675bb2f8da067ead4ed2643fa7dc5072de554b57 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Thu, 15 Apr 2004 16:33:29 +0000 Subject: [PATCH] Todavia no anda del todo bien con la gui... --- emufs/tipo3.c | 13 +++++++++---- emufs/tipo3_main.c | 12 ++++++++---- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/emufs/tipo3.c b/emufs/tipo3.c index fd59a68..fe46251 100644 --- a/emufs/tipo3.c +++ b/emufs/tipo3.c @@ -158,7 +158,6 @@ EMUFS_REG_ID emufs_tipo3_grabar_registro(EMUFS *emu, void *ptr, EMUFS_REG_SIZE t if ( (file = fopen(name_f,"a+"))==NULL ) return -1; /*ERROR*/ /*tengo que buscar un ID valido para el nuevo registro*/ ID_aux = emufs_idx_get_new_id(emu, err); - /* El free esta al final de la funcion! */ bloque = (char*)malloc(emu->tam_bloque); for (i=0; itam_bloque > emu->tam_reg ) resto = emu->tam_reg; if ( emufs_fsc_agregar(emu, num_bloque, emu->tam_bloque - resto - sizeof(EMUFS_REG_ID)) != 0 ) { fclose(file); free(bloque); @@ -294,6 +294,8 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) } /*grabo el bloque en el archivo*/ + if ( emu->tam_bloque < emu->tam_reg ) + memset(bloque, 0, emu->tam_bloque); if ( emufs_tipo3_grabar_bloque(emu, bloque, num_bloque) == -1 ){ free(bloque); PERR("No se pudo grabar el bloque"); @@ -301,9 +303,12 @@ int emufs_tipo3_borrar_registro(EMUFS *emu, EMUFS_REG_ID ID) } /*actualizo archivo .fsc*/ - fs = emufs_fsc_get_fs(emu, num_bloque); - if ( emufs_fsc_actualizar(emu, num_bloque, fs + emu->tam_reg + sizeof(EMUFS_REG_ID)) != 0 ) return -1; - + if ( emu->tam_bloque < emu->tam_reg ) { + if ( emufs_fsc_actualizar(emu, num_bloque, emu->tam_bloque) != 0 ) return -1; + } else { + fs = emufs_fsc_get_fs(emu, num_bloque); + if ( emufs_fsc_actualizar(emu, num_bloque, fs + emu->tam_reg + sizeof(EMUFS_REG_ID)) != 0 ) return -1; + } /*actualizo archivo .did*/ if ( emufs_did_agregar(emu, ID) != 0 ) return -1; diff --git a/emufs/tipo3_main.c b/emufs/tipo3_main.c index 1e20faa..f4fd20f 100644 --- a/emufs/tipo3_main.c +++ b/emufs/tipo3_main.c @@ -82,7 +82,7 @@ int main(int argc, char *argv[]) n3 = fp->grabar_registro(fp, d, 100, &err); n4 = fp->grabar_registro(fp, e, 100, &err); n5 = fp->grabar_registro(fp, f, 100, &err); - n6 = fp->grabar_registro(fp, g, 100, &err); + /*n6 = fp->grabar_registro(fp, g, 100, &err);*/ n7 = fp->grabar_registro(fp, h, 100, &err); n8 = fp->grabar_registro(fp, i, 100, &err); @@ -96,11 +96,15 @@ int main(int argc, char *argv[]) if ( fp->borrar_registro(fp, n7) == -1) printf("la cague %d\n",n7); if ( fp->borrar_registro(fp, n8) == -1) printf("la cague %d\n",n8); */ - - b_ptr = fp->leer_registro(fp, n4, ®_size, &err); + ver_archivo_FS(fp); + fp->borrar_registro(fp, n3); + fp->borrar_registro(fp, n4); + printf("pase3\n"); + /*n6 = fp->grabar_registro(fp, g, 100, &err);*/ + printf("pase4\n"); + b_ptr = fp->leer_registro(fp, n7, ®_size, &err); printf("Recuperado : %s\n", b_ptr); - free(b_ptr); ver_archivo_FS(fp); -- 2.43.0