]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/articulos.c
* Bugfix : en procesar_leer_registro para tipo1 me estaba pasando 1 char
[z.facultad/75.06/emufs.git] / emufs_gui / articulos.c
index 1aad096f94cf622fb11dcecd0db8f70a85677028..defdf7e5c884d7cf7c19591437d1fa07836b80a6 100644 (file)
@@ -408,6 +408,7 @@ int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_Ls
                case T2:
                        ini = (char *)src;
                        /* Copio el primer campo, esto es facil :-) */
                case T2:
                        ini = (char *)src;
                        /* Copio el primer campo, esto es facil :-) */
+                       memset(dst, '*', sizeof(t_Articulo));
                        memcpy(&dst->numero, ini, sizeof(unsigned int));
                        ini+=sizeof(unsigned int);
                        /* Ahora empieza el juego */
                        memcpy(&dst->numero, ini, sizeof(unsigned int));
                        ini+=sizeof(unsigned int);
                        /* Ahora empieza el juego */
@@ -433,7 +434,7 @@ int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_Ls
                        
                        ini = fin+1;
                        fin = (char *)src+size;
                        
                        ini = fin+1;
                        fin = (char *)src+size;
-                       memcpy(dst->emin, ini, fin-ini+1);
+                       memcpy(dst->emin, ini, fin-ini);
 
                        break;
                case T3:
 
                        break;
                case T3:
@@ -495,8 +496,6 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg)
        /* Si el tipo es el mismo, no tengo que hacer nada! */
        if (old->tipo == tipo) return;
 
        /* Si el tipo es el mismo, no tengo que hacer nada! */
        if (old->tipo == tipo) return;
 
-       fprintf(stderr, "Me prepado para cambiar de archivo\n");
-
        /* Creo el nuevo file */
        nuevo = emufs_crear("emufs_tmp", tipo, tam_bloque, sizeof(t_Articulo));
        if (nuevo == NULL) {
        /* Creo el nuevo file */
        nuevo = emufs_crear("emufs_tmp", tipo, tam_bloque, sizeof(t_Articulo));
        if (nuevo == NULL) {
@@ -512,28 +511,21 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg)
        /* Leo los indices del archivo viejo */
        indices = emufs_idx_get(old, &indices_total);
        if (indices == NULL) {
        /* Leo los indices del archivo viejo */
        indices = emufs_idx_get(old, &indices_total);
        if (indices == NULL) {
-               fprintf(stderr, "NO HAY INDICES!\n");
                art_liberar(lst_nueva);
                return;
        }
 
        for(i=0; i<indices_total; i++) {
                art_liberar(lst_nueva);
                return;
        }
 
        for(i=0; i<indices_total; i++) {
-               fprintf(stderr, "Registro %lu de %lu\n", i, indices_total);
-               fprintf(stderr, "A leer : %lu\n", indices[i]);
-
+               fprintf(stderr, "A procesar %lu de %lu\n",i, indices_total);
                error = 0;
                save = old->leer_registro(old, indices[i], &size, &error);
                error = 0;
                save = old->leer_registro(old, indices[i], &size, &error);
-               fprintf(stderr, "Lei\n");
                if (procesar_leer_articulo(&art, save, size, lst_articulos) == 1) {
                if (procesar_leer_articulo(&art, save, size, lst_articulos) == 1) {
-                       fprintf(stderr, "Procese\n");
                        free(save);
                        /* Lei un registro Ok. Lo salvo en el archivo nuevo */
                        save = procesar_guardar_articulo(&art, &size, lst_nueva);
                        free(save);
                        /* Lei un registro Ok. Lo salvo en el archivo nuevo */
                        save = procesar_guardar_articulo(&art, &size, lst_nueva);
-                       fprintf(stderr, "Procese guardar\n");
                        if (save) {
                                error = 0;
                                id = nuevo->grabar_registro(nuevo, save, size, &error);
                        if (save) {
                                error = 0;
                                id = nuevo->grabar_registro(nuevo, save, size, &error);
-                               fprintf(stderr, "Guarde\n");
                                agregar_nodo_articulo(lst_nueva, crear_nodo_articulo(id, art.numero));
                                free(save);
                        }
                                agregar_nodo_articulo(lst_nueva, crear_nodo_articulo(id, art.numero));
                                free(save);
                        }
@@ -549,9 +541,9 @@ void art_reformatear(int tipo, int tam_bloque, int tam_reg)
        fprintf(stderr, "Listo. Renombre y me voy\n");
        /* Muevo los archivos! */
        /* TODO : Poner en otro lugar mas generico! */
        fprintf(stderr, "Listo. Renombre y me voy\n");
        /* Muevo los archivos! */
        /* TODO : Poner en otro lugar mas generico! */
-/*     rename("emufs_tmp.dat", "articulos.dat");
+       rename("emufs_tmp.dat", "articulos.dat");
        rename("emufs_tmp.idx", "articulos.idx");
        rename("emufs_tmp.fsc", "articulos.fsc");
        rename("emufs_tmp.idx", "articulos.idx");
        rename("emufs_tmp.fsc", "articulos.fsc");
-       rename("emufs_tmp.did", "articulos.did");*/
+       rename("emufs_tmp.did", "articulos.did");
 }
 
 }