]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/facturas.c
Soporte para bloques mas chicos que el registro.
[z.facultad/75.06/emufs.git] / emufs_gui / facturas.c
index a7fbb619d3a62eb256c256c4d7479d18c02a9e8e..9e791cf96f0283e3fd106d3ba4b14c077a3595b6 100644 (file)
@@ -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) {
@@ -195,7 +195,7 @@ t_LstFacturas *fact_cargar(const char *filename, int tipo, int tam_bloque)
                                                error = 0;
                                                id = tmp->fp->grabar_registro(tmp->fp, save, size, &error);
                                                error = 0;
-                                               id_texto = tmp->fp_texto->grabar_registro(tmp->fp_texto, fact.nota, 400, &error);
+                                               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);
@@ -543,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]);