From e44976130072017b4bd9bcb0444887f480d2a7f2 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 12 Apr 2004 03:29:01 +0000 Subject: [PATCH] BUGFIX : en crear_input_widget habia un bug que hacia que se metiera basura --- emufs_gui/articulos.c | 14 ++++++-------- emufs_gui/form.c | 5 ++--- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index 5e65a17..1063060 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -15,7 +15,6 @@ t_LstArticulos *art_cargar(const char *filename) xmlNode *node, *inicio; int cant, error = 0, i, id; EMUFS_REG_SIZE size; - void *save; t_LstArticulos *tmp; lst_articulos = NULL; @@ -62,11 +61,12 @@ t_LstArticulos *art_cargar(const char *filename) /* leo los datos y los guardo en el archivo*/ cant = 0; /* FIXME : por ahora hago que entren 2 bloques y me sobre algo de espacio*/ - tmp->fp = emufs_crear("articulos", T2, sizeof(t_Articulo)*2, sizeof(t_Articulo)); + tmp->fp = emufs_crear("articulos", T3, sizeof(t_Articulo)*2, sizeof(t_Articulo)); for (node=inicio ; node ; node = node->next) { if (node->type == XML_ELEMENT_NODE) { if (strcmp(node->name, "ARTICULO") == 0) { t_Articulo art; + void *save; art.numero = atoi(xmlGetProp(node, "NroArtículo")); strncpy(art.desc, xmlGetProp(node, "Descripción"), 50); strncpy(art.presentacion, xmlGetProp(node, "Presentación"), 30); @@ -94,6 +94,7 @@ t_LstArticulos *art_cargar(const char *filename) cant = emufs_idx_get_count(tmp->fp); for(i=0; ifp, i); /* Leo el registro */ save = tmp->fp->leer_registro(tmp->fp, id, &size, &error); @@ -177,7 +178,7 @@ void art_modificar(char *s) WINDOW *win; t_Form *form; t_Articulo *articulo; - char num[8]; + char num[11]; win = newwin(8, COLS-2, 13, 1); box(win, 0, 0); @@ -187,7 +188,7 @@ void art_modificar(char *s) if (articulo != NULL) { form = form_crear(win); - sprintf(num, "%07d", articulo->numero); + sprintf(num, "%08d", articulo->numero); form_agregar_widget(form, INPUT, "Numero de Artículo", 8, num); form_agregar_widget(form, INPUT, "Descripción", 50, articulo->desc); form_agregar_widget(form, INPUT, "Presentación", 30, articulo->presentacion); @@ -350,10 +351,7 @@ int procesar_leer_articulo(t_Articulo *dst, void *src, EMUFS_REG_SIZE size, t_Ls break; case T3: - if (size != sizeof(t_Articulo)) { - return 0; /* El tamaño no encaja!! */ - } - memcpy(dst, src, size); + memcpy(dst, src, sizeof(t_Articulo)); } return 1; /* Todo ok */ diff --git a/emufs_gui/form.c b/emufs_gui/form.c index 5a76a4d..d86d4b1 100644 --- a/emufs_gui/form.c +++ b/emufs_gui/form.c @@ -185,7 +185,7 @@ t_Widget *widget_input_create(t_Campo tipo, const char *nombre, unsigned int max return NULL; } tmp->valor[0] = '\0'; - strncpy(tmp->valor, defecto, max); + strcpy(tmp->valor, defecto); tmp->sig = NULL; @@ -302,8 +302,7 @@ int form_input(WINDOW *win, int x, int y, t_Widget *w) c = getch(); } /* Cierro el string con el \0 */ - w->valor[current+1] = '\0'; - + w->valor[current] = '\0'; /* Retorno la tecla con la que se salio. */ /* De esa forma, ESC pasa al campo anterios. ENTER al siguiente */ return c; -- 2.43.0