From: Nicolás Dimov Date: Thu, 15 Apr 2004 16:33:29 +0000 (+0000) Subject: Todavia no anda del todo bien con la gui... X-Git-Tag: svn_import_r684~477 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/675bb2f8da067ead4ed2643fa7dc5072de554b57?ds=inline Todavia no anda del todo bien con la gui... --- 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);