From 415f6c3133586644278dbbe5fd2b1c566ededa45 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Fri, 16 Apr 2004 20:10:37 +0000 Subject: [PATCH] * BUGFIX : cuando se recreaba con otro formato el archivo de articulos faltaba cambiar el campo nombre para que quede consistente. Ahora se puede pasar de un tipo a otro y a otro tantas veces que se quiera. --- emufs_gui/articulos.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index b9605c2..fbe6fa3 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -500,12 +500,14 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg) int error; char *save; + PERR("==== EMPIEZO ====\n"); old = lst_articulos->fp; /* Si el tipo es el mismo, no tengo que hacer nada! */ if (old->tipo == tipo) return; /* Creo el nuevo file */ + PERR("Creo el archivo\n"); nuevo = emufs_crear("emufs_tmp", tipo, tam_bloque, sizeof(t_Articulo)); if (nuevo == NULL) { fprintf(stderr, "ARCHIVO NUEVO NO CREADO\n"); @@ -518,14 +520,15 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg) lst_nueva->fp = nuevo; /* Leo los indices del archivo viejo */ + PERR("Obtengo Indices\n"); indices = emufs_idx_get(old, &indices_total); if (indices == NULL) { art_liberar(lst_nueva); return; } + PERR("Proceso datos\n"); for(i=0; ileer_registro(old, indices[i], &size, &error); if (procesar_leer_articulo(&art, save, size, lst_articulos) == 1) { @@ -541,18 +544,26 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg) } } - ver_archivo_FS(old); - ver_archivo_FS(nuevo); + free(indices); + PERR("Libero lo viejo\n"); art_liberar(lst_articulos); + + PERR("Ahora tengo lo nuevo\n"); lst_articulos = lst_nueva; - fprintf(stderr, "Listo. Renombre y me voy\n"); + /* El nuevo tiene como nombre emufs_tmp, lo cambio a mano! */ + free(lst_articulos->fp->nombre); + lst_articulos->fp->nombre = (char *)malloc(sizeof(char)*(strlen("articulos")+1)); + strcpy(lst_articulos->fp->nombre, "articulos"); + /* Muevo los archivos! */ /* TODO : Poner en otro lugar mas generico! */ + PERR("Renombre!!\n"); rename("emufs_tmp.dat", "articulos.dat"); rename("emufs_tmp.idx", "articulos.idx"); rename("emufs_tmp.fsc", "articulos.fsc"); rename("emufs_tmp.did", "articulos.did"); + PERR("==== TERMINE ====\n"); } -- 2.43.0