]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Saco (con preprocesador) algunas cosas que no es usan para esta entrega, asi
authorRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 26 May 2004 14:22:10 +0000 (14:22 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 26 May 2004 14:22:10 +0000 (14:22 +0000)
 no se emiten warnings.
 * Modifico la navegabilidad de treev_view para que sea mas estricta en la forma
 de navegar los nodos.

emufs_gui/articulos.c
emufs_gui/facturas.c
emufs_gui/tree_viewer.c

index 9ba3f73a8616daa88ee8750bd845bf90ec21dbeb..b6fe41e1aeac3081dba55c06a959a3d8ec9fe197 100644 (file)
@@ -13,16 +13,12 @@ static t_Articulo *art_form_buscar(WINDOW *win, EMUFS_REG_ID *id);
 static void *procesar_guardar_articulo(t_Articulo *src, EMUFS_REG_SIZE *size, t_LstArticulos *lst);
 static int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_LstArticulos *lst);
 
+#ifdef TP_PRIMER_ENTREGA
 /* Manejo de la lista doble */
 static t_Reg_Articulo *crear_nodo_articulo(EMUFS_REG_ID reg, unsigned int num);
 static int agregar_nodo_articulo(t_LstArticulos *lst, t_Reg_Articulo *nodo);
 static int eliminar_nodo_articulo(t_LstArticulos *lst, t_Reg_Articulo *nodo);
 
-t_LstArticulos *art_get_lst()
-{
-       return lst_articulos;
-}
-
 int eliminar_nodo_articulo(t_LstArticulos *lst, t_Reg_Articulo *nodo)
 {
        if (nodo == NULL) return 0;
@@ -68,6 +64,12 @@ int agregar_nodo_articulo(t_LstArticulos *lst, t_Reg_Articulo *nodo)
        }
        return 1;
 }
+#endif /* TP_PRIMER_ENTREGA */
+
+t_LstArticulos *art_get_lst()
+{
+       return lst_articulos;
+}
 
 t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque)
 {
@@ -79,7 +81,6 @@ t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque)
        t_LstArticulos *tmp;
        t_Articulo *un_articulo;
        lst_articulos = NULL;
-       EMUFS_REG_ID id;
 
        tmp = (t_LstArticulos *)malloc(sizeof(t_LstArticulos));
        if (tmp == NULL) return NULL;
@@ -149,8 +150,7 @@ t_LstArticulos *art_cargar(const char *filename, int tipo, int tam_bloque)
                                        save = procesar_guardar_articulo(&art, &size, lst_articulos);
                                        if (save != NULL) {
                                                error = 0;
-                                               id = tmp->fp->grabar_registro(tmp->fp, save, size, &error);
-                                               agregar_nodo_articulo(tmp, crear_nodo_articulo(id, art.numero));
+                                               tmp->fp->grabar_registro(tmp->fp, save, size, &error);
                                                free(save);
                                        }
                                }
index d3d63f4cfdfeef72ebf493b11235dce2975b50c7..76c042f5c76ee9d877053765e8a4edae7564bc71 100644 (file)
@@ -11,10 +11,12 @@ static t_LstFacturas *lst_facturas;
 static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, EMUFS_REG_SIZE *size);
 static int procesar_leer_factura(t_Factura *dst, void *src, EMUFS_REG_SIZE size, t_LstFacturas *lst);
 
+#ifdef TP_PRIMER_ENTREGA
 /* Manejo de la lista en memoria */
 static t_Reg_Factura *crear_nodo_factura(EMUFS_REG_ID reg, EMUFS_REG_ID texto, unsigned int num);
 static int agregar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo);
 int eliminar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo);
+#endif
 
 /* Funciones para carga desde el XML */
 static t_Item *leer_items(xmlNode *, int *cant, int size);
@@ -38,6 +40,7 @@ char *xml_get_prop(xmlNode *node, char *nombre)
        return s;
 }
 
+#ifdef TP_PRIMER_ENTREGA
 int eliminar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo)
 {
        if (nodo == NULL) return 0;
@@ -84,6 +87,7 @@ int agregar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo)
        }
        return 1;
 }
+#endif /*TP_PRIMER_ENTREGA*/
 
 t_Item *leer_items(xmlNode *node, int *cant, int size)
 {
@@ -425,7 +429,6 @@ void fact_modificar(char *s)
 {
        WINDOW *win, *items, *nota, *subnota;
        t_Form *form, *form_nota;
-       t_Reg_Factura *nodo;
        t_Factura *fact;
        EMUFS_REG_SIZE size;
        EMUFS_REG_ID id, id_texto;
@@ -534,7 +537,7 @@ void fact_agregar(char *s)
        t_Item *its = NULL;
        t_Factura fact;
        EMUFS_REG_SIZE size;
-       EMUFS_REG_ID id, id_texto;
+       EMUFS_REG_ID id_texto;
        int y_actual, cant, error;
        char *entrada;
 
@@ -646,7 +649,6 @@ void fact_agregar(char *s)
        if (entrada) {
                error = 0;
                lst_facturas->fp->grabar_registro(lst_facturas->fp, entrada, size, &error);
-               agregar_nodo_factura(lst_facturas, crear_nodo_factura(id, id_texto, fact.numero));
                free(entrada);
        }
                                                                        
index 3dc30d520eea93463a4f5ad255be0d5153311cbd..34fe6f2d1b34f968a5150ace6d5c8504606c2068 100644 (file)
@@ -10,10 +10,12 @@ int emufs_indice_b_ver(INDICE *idx, WINDOW *win, int w, int h, int id)
        char *nodo;
        char tmp[100];
        int i;
+       int posibles_proximos[100];
        int proximo;
 
        if (id == -1) return 0;
 
+       memset(posibles_proximos, -1, sizeof(int)*100);
        do {
                y = 0;
                mvwaddstr(win, y++, 0, "Nombre : ");
@@ -49,8 +51,10 @@ int emufs_indice_b_ver(INDICE *idx, WINDOW *win, int w, int h, int id)
                                        claves[i].dato.bloque,*/
                                        claves[i].hijo_derecho
                        );
+                       posibles_proximos[i] = claves[i].hijo_derecho;
                        waddstr(win, tmp);
                }
+               posibles_proximos[i++] = header.hijo_izquierdo;
                free(nodo);
                wrefresh(win);
        
@@ -58,12 +62,27 @@ int emufs_indice_b_ver(INDICE *idx, WINDOW *win, int w, int h, int id)
                form_agregar_widget(form, INPUT, "Ver (-1 para volver)", 4, "");
                form_ejecutar(form, 0, h-2);
                proximo = form_obtener_valor_int(form, "Ver (-1 para volver)");
-               werase(win);
-               wrefresh(win);
-               emufs_indice_b_ver(idx, win, w, h, proximo);
+
+               /* Verifico que proximo sea un hijo */
+               /* +1 por el hijo izquierdo */
+               if (proximo != -1) {
+                       for(i=0; i<header.cant+1; i++) {
+                               if (posibles_proximos[i] == proximo) break;
+                       }
+
+                       if (i>=(header.cant+1)) proximo = id; /* Si no es un nodo valido, lo anulo*/
+               }
+
+               /* Solo voy a otro nodo si no soy el mismo */
+               if (proximo != id) {
+                       werase(win);
+                       wrefresh(win);
+                       emufs_indice_b_ver(idx, win, w, h, proximo);
+               }
        } while (proximo != -1);
 
        werase(win);
        wrefresh(win);
+       return 0;
 }