]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
BUGFIX : en crear_input_widget habia un bug que hacia que se metiera basura
authorRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 12 Apr 2004 03:29:01 +0000 (03:29 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 12 Apr 2004 03:29:01 +0000 (03:29 +0000)
emufs_gui/articulos.c
emufs_gui/form.c

index 5e65a170d0e8dc5d6d78f11a8c450cbce1e5c40a..106306093f11f51d4f29c4c9d873cc55ae01b17f 100644 (file)
@@ -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; i<cant; i++) {
                        t_Articulo art;
+                       void *save;
                        id = emufs_idx_get_id_at(tmp->fp, 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 */
index 5a76a4d8ebabb31bacbd705d66f8c5bc8bdc5e0b..d86d4b158a5d3c20b1dcbd6b84bb67a7eb321d29 100644 (file)
@@ -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;