]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* BUGFIX : Un par de boludeces que hacia que los indices no andaran. El formulario
authorRicardo Markiewicz <gazer.arg@gmail.com>
Thu, 13 May 2004 18:50:43 +0000 (18:50 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Thu, 13 May 2004 18:50:43 +0000 (18:50 +0000)
 de Modificar Articulo esta andando con indices, y por suerte encuentra las cosas :-)

emufs/indices.c
emufs_gui/articulos.c
emufs_gui/emufs_view.c

index a4c07ec4d9174e3f92b718fc65de16bca3da060b..fa999032cff055e343483746ca9bbfb36c153c25 100644 (file)
@@ -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;
 }
index 519ea4c0a858d1a3e4d8e2f9bb3b5ec1e832a186..50219f8d622f4bfce66b78b6d2f1a135df941bdf 100644 (file)
@@ -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 */
index ac236a2a8f73f9a61923e58f7c7d8e1ad3ef3b74..114577832a30d0d98f3eb2d2aeaf9e1f885dbc3a 100644 (file)
@@ -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();