]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/facturas.c
* Agrego un msg de advertencia a la GUI si se compila con -DDEBUG, para prevenir
[z.facultad/75.06/emufs.git] / emufs_gui / facturas.c
index 3c699decf14c96000f2ec15774cd99f4a67b40c5..0016c9f1c805f4adb970edfdba704153217ec48c 100644 (file)
@@ -8,6 +8,26 @@ static int al_azar(int min, int max);
 static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, int *size);
 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);
 static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, int *size);
 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);
+
+int eliminar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo)
+{
+       if (nodo == NULL) return 0;
+       if (nodo->ant == NULL) {
+               /* Me piden borrar el primer nodo */
+               if (nodo->sig) {
+                       nodo->sig->ant = NULL;
+               }
+               lst->primero = nodo->sig;
+       } else {
+               if (nodo->sig) {
+                       nodo->sig->ant = nodo->ant;
+               }
+               nodo->ant->sig = nodo->sig;
+       }
+       free(nodo);
+       return 1;
+}
 
 t_Reg_Factura *crear_nodo_factura(EMUFS_REG_ID reg, EMUFS_REG_ID texto, unsigned int num)
 {
 
 t_Reg_Factura *crear_nodo_factura(EMUFS_REG_ID reg, EMUFS_REG_ID texto, unsigned int num)
 {
@@ -50,6 +70,7 @@ t_LstFacturas *fact_cargar(const char *filename)
        EMUFS_REG_ID id;
 
        lst_facturas = (t_LstFacturas *)malloc(sizeof(t_LstFacturas));
        EMUFS_REG_ID id;
 
        lst_facturas = (t_LstFacturas *)malloc(sizeof(t_LstFacturas));
+       lst_facturas->primero = NULL;
 
        if (filename != NULL) {
                lst_facturas->fp = emufs_crear("facturas", T3, sizeof(t_Factura)*20, sizeof(t_Factura));
 
        if (filename != NULL) {
                lst_facturas->fp = emufs_crear("facturas", T3, sizeof(t_Factura)*20, sizeof(t_Factura));