X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/840e216ee1d0b23864f75f44ba549899669d9595..b345e9c1eaee7c09afb43b6983f34502cd8584e3:/emufs_gui/facturas.c diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index ec87770..9e791cf 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -115,10 +115,10 @@ char *leer_nota(xmlNode *node) } if (tmp) { - salida = (char *)malloc(sizeof(char)*400); /*(strlen(XML_GET_CONTENT(tmp->children))+1));*/ + salida = (char *)malloc(sizeof(char)*(strlen(XML_GET_CONTENT(tmp->children))+1)); strcpy(salida, XML_GET_CONTENT(tmp->children)); } else { - salida = (char *)malloc(sizeof(char)*400); + salida = (char *)malloc(sizeof(char)); salida[0] = '\0'; } return salida; @@ -170,7 +170,7 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) cant_items = 0; } tmp->fp = emufs_crear("facturas", tipo-1, tam_bloque, sizeof(t_Factura)-sizeof(char *)-sizeof(t_Item*)+cant_items*sizeof(t_Item)); - tmp->fp_texto = emufs_crear("notas", 1, 420, 400); + tmp->fp_texto = emufs_crear("notas", 1, 100, 0); for (node=inicio ; node ; node = node->next) { if (node->type == XML_ELEMENT_NODE) { if (strcmp(node->name, "FACTURA") == 0) { @@ -192,8 +192,10 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque) save = procesar_guardar_factura(&fact, lst_facturas, &size); if (save != NULL) { + error = 0; id = tmp->fp->grabar_registro(tmp->fp, save, size, &error); - id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, 400, &error); + error = 0; + id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, strlen(fact.nota)+1, &error); agregar_nodo_factura(tmp, crear_nodo_factura(id, id_texto, fact.numero)); if (fact.items) free(fact.items); if (fact.nota) free(fact.nota); @@ -250,6 +252,7 @@ t_Factura *fact_buscar(t_LstFacturas *lst, int numero, EMUFS_REG_ID *id, EMUFS_R if (reg->numero == numero) { size = 0; fprintf(stderr, "Leer me dice que %lu\n", size); + error = 0; leo = lst->fp->leer_registro(lst->fp, reg->num_reg, &size, &error); fprintf(stderr, "Leer me dice que %lu\n", size); if (leo != NULL) { @@ -500,6 +503,7 @@ void fact_agregar(char *s) entrada = procesar_guardar_factura(&fact,lst_facturas, &size); if (entrada) { + error = 0; id = lst_facturas->fp->grabar_registro(lst_facturas->fp, entrada, size, &error); /*id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, 400, &error);*/ /* TODO : -1 == id_texto !!!!!!!! XXX XXX XXX XXX XXX XXX XXX */ @@ -539,6 +543,7 @@ void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, EMUFS_REG_SIZE (*size) = i[0]+i[1]+i[2]+i[3]+i[4]+i[5]+i[6]+i[7]+i[8]+i[9]+i[10]; tmp = (char *)malloc(*size); if (tmp == NULL) return NULL; + memset(tmp, 0, *size); /* Ahora copio la info */ memcpy(tmp, &f->numero, i[0]); memcpy(tmp, &f->procdoi, i[1]);