From: Ricardo Markiewicz Date: Thu, 13 May 2004 18:50:43 +0000 (+0000) Subject: * BUGFIX : Un par de boludeces que hacia que los indices no andaran. El formulario X-Git-Tag: svn_import_r684~253 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/76018a024e44a49ee326a8b33cc60964eb61280f?ds=sidebyside * BUGFIX : Un par de boludeces que hacia que los indices no andaran. El formulario de Modificar Articulo esta andando con indices, y por suerte encuentra las cosas :-) --- diff --git a/emufs/indices.c b/emufs/indices.c index a4c07ec..fa99903 100644 --- a/emufs/indices.c +++ b/emufs/indices.c @@ -60,7 +60,6 @@ void emufs_indice_agregar(INDICE *primero, char *data, INDICE_DATO dato) { INDICE *iter = primero; - PERR("Agregando clave a indices"); while (iter) { iter->agregar_entrada(iter, emufs_indice_generar_clave(iter, data), dato); iter = iter->sig; @@ -75,6 +74,9 @@ INDICE_DATO emufs_indice_buscar(INDICE *primero, char *data) CLAVE emufs_indice_generar_clave_desde_valor(INDICE *idx, char *data) { CLAVE k; + if (idx == NULL) PERR("NULL INDEX!"); + + PERR("---- 1 ----"); switch (idx->tipo_dato) { case IDX_FLOAT: k.f_clave= *((float *)(data)); @@ -82,6 +84,7 @@ CLAVE emufs_indice_generar_clave_desde_valor(INDICE *idx, char *data) case IDX_INT: k.i_clave = *((int *)(data)); } + PERR("---- 2 ----"); return k; } diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index 519ea4c..50219f8 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -209,24 +209,34 @@ t_Articulo *art_obtener(t_LstArticulos *lst, int numero, EMUFS_REG_ID *id) void *tmp; int error = 0; EMUFS_REG_SIZE size; + CLAVE k; + if (lst == NULL) lst = lst_articulos; + if (lst == NULL) return NULL; + + fprintf(stderr, "Me piden que busque en el indice el codigo=%d\n", numero); (*id) = -1; /* XXX Ver que se hacia con esto */ art = (t_Articulo *)malloc(sizeof(t_Articulo)); /* Ya se cual tengo que retornar. Ahora veo si lo cargo desde el archivo */ error = 0; - tmp = lst->fp->leer_registro(lst->fp, emufs_indice_generar_clave_desde_valor(lst->fp->indices, (char *)&numero), &size, &error); - + PERR("Genero clave"); + k = emufs_indice_generar_clave_desde_valor(lst->fp->indices, (char *)&numero); + PERR("Buscando en archivo"); + tmp = lst->fp->leer_registro(lst->fp, k, &size, &error); + PERR("Lo encontre?"); if (error) { free(art); return NULL; } + printf("SI LO ENCONTRE!!!!"); if (procesar_leer_articulo(art, tmp, size, lst_articulos) != 1) { free(art); free(tmp); return NULL; } + printf("RETORNANDO el articulo procesado"); free(tmp); return art; } @@ -261,7 +271,9 @@ void art_modificar(char *s) wrefresh(win); if (s == NULL) { + PERR("Voy a buscar con el formulario"); articulo = art_form_buscar(win, &codigo); + PERR("Ya lo tengo!!!!!!"); } else { codigo = atoi(s); /* Leo el registro directamente */ diff --git a/emufs_gui/emufs_view.c b/emufs_gui/emufs_view.c index ac236a2..1145778 100644 --- a/emufs_gui/emufs_view.c +++ b/emufs_gui/emufs_view.c @@ -424,7 +424,7 @@ int main_menu() MENU_OPCION("Salir", "Salir del sistema.") }; - while ((c=menu_ejecutar(mi_menu, 7, "Menu Principal"))) { + while ((c=menu_ejecutar(mi_menu, 7, "Menu Principal"))!=6) { switch (c) { case 0: menu_articulos();