X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/41c98250247b3e463ab8b4f44ba75aa7f4890eaf..9071a01f94406f881e6bdd9f875eb926333eb81d:/emufs_gui/facturas.c diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 3c699de..0016c9f 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -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); +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) { @@ -50,6 +70,7 @@ t_LstFacturas *fact_cargar(const char *filename) 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));