]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/gui.c
* Se realiza una limpieza en gui.c. Ahora hay una unica rutina de
[z.facultad/75.06/emufs.git] / emufs_gui / gui.c
index 3c7cdd9c71c0d14e803fd74af877d8ea47fc9ef6..6044b1643b3bdd642320c6222ee24946ce0e2dd6 100644 (file)
@@ -1,4 +1,5 @@
 
 
+
 #include <stdlib.h>
 #include <curses.h>
 #include <menu.h>
 #include <stdlib.h>
 #include <curses.h>
 #include <menu.h>
@@ -6,6 +7,7 @@
 #include <string.h>
 #include <stdarg.h>
 
 #include <string.h>
 #include <stdarg.h>
 
+#include "menu.h"
 #include "form.h"
 #include "articulos.h"
 #include "facturas.h"
 #include "form.h"
 #include "articulos.h"
 #include "facturas.h"
@@ -188,364 +190,91 @@ int main(int argc, char *argv[])
 
 void menu_facturas()
 {
 
 void menu_facturas()
 {
-       WINDOW *menu_win;
-       MENU *menu;
-       ITEM **items;
-       int c, salir;
-       char *opciones[] = {
-                                       "Alta",
-                                       "Baja",
-                                       "Modificacion",
-                                       "Volver"
+       MENU(mi_menu) {
+               MENU_OPCION("Alta", "Crear una nueva factura."),
+               MENU_OPCION("Baja", "Elimina una factura existente."),
+               MENU_OPCION("Modificacion", "Modifica una factura existente."),
+               MENU_OPCION("Volver", "Volver al menu anterior.")
        };
        };
-
-       items = (ITEM **)calloc(5, sizeof(ITEM *));
-
-       items[0] = new_item(opciones[0], "Crear una nueva factura.");
-       set_item_userptr(items[0], fact_agregar);
-       items[1] = new_item(opciones[1], "Eliminar una factura existente.");
-       set_item_userptr(items[1], fact_eliminar);
-       items[2] = new_item(opciones[2], "Modificar una factura existente.");
-       set_item_userptr(items[2], fact_modificar); 
-       items[3] = new_item(opciones[3], "Volver al menu anterior.");
-       items[4] = NULL;
-
-       menu = new_menu((ITEM **)items);
-       menu_win = newwin(8, COLS-2, 3, 1);
-       keypad(menu_win, TRUE);
-       set_menu_mark(menu, " > ");
-       set_menu_win(menu, menu_win);
-       set_menu_sub(menu, derwin(menu_win, 5, COLS-4, 3, 1));
-
-       box(menu_win, 0, 0);
-       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-       mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
-       mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
-       wattron(menu_win, COLOR_PAIR(COLOR_RED));
-       mvwaddstr(menu_win, 1, 1, "Menu Facturas");
-       wattroff(menu_win, COLOR_PAIR(COLOR_RED));
-       post_menu(menu);
-       wrefresh(menu_win);
-
-       curs_set(0);
-       salir = 0;
-       while((!salir) && (c = getch()) != KEY_F(3)) {
-               switch(c) {
-                       case KEY_DOWN:
-                               menu_driver(menu, REQ_DOWN_ITEM);
-                               break;
-                       case KEY_UP:
-                               menu_driver(menu, REQ_UP_ITEM);
+       int opt;
+               
+       while ((opt = menu_ejecutar(mi_menu, 4, "Menu Articulos")) != 3) {
+               switch (opt) {
+                       case 0:
+                               fact_agregar(NULL);
                        break;
                        break;
-                       case 13:
-                       case 10: {
-                               ITEM *cur;
-                               void (*p)(char *);
-
-                               cur = current_item(menu);
-                               if (strcmp(item_name(cur), opciones[3]) == 0) {
-                                       salir = 1;
-                               } else {
-                                       p = item_userptr(cur);
-                                       unpost_menu(menu);
-                                       refresh();
-                                       p(NULL); /* Paso NULL para que ejecute la accion por defecto */
-                                       post_menu(menu);
-                                       box(menu_win,0,0);
-                                       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-                                       mvwhline(menu_win, 2, 1, ACS_HLINE, 67);
-                                       mvwaddch(menu_win, 2, 67, ACS_RTEE);
-                                       wrefresh(menu_win);
-                               }
-                               pos_menu_cursor(menu);
-                       }
+                       case 1:
+                               fact_eliminar(NULL);
+                       break;
+                       case 2:
+                               fact_modificar(NULL);
                }
                }
-               wrefresh(menu_win);
-       }       
-       curs_set(1);
-       
-       unpost_menu(menu);
-       delwin(menu_win);
-       free_item(items[0]);
-       free_item(items[1]);
-       free_item(items[2]);
-       free_item(items[3]);
-       free_menu(menu);
-       free(items);
+       }
 }
 
 void menu_articulos()
 {
 }
 
 void menu_articulos()
 {
-       WINDOW *menu_win;
-       MENU *menu;
-       ITEM **items;
-       int c, salir;
-       char *opciones[] = {
-                                       "Alta",
-                                       "Baja",
-                                       "Modificacion",
-                                       "Volver"
+       MENU(mi_menu) {
+               MENU_OPCION("Alta", "Crear un nuevo articulo."),
+               MENU_OPCION("Baja", "Elimina un articulo existente."),
+               MENU_OPCION("Modificacion", "Modifica un articulo existente."),
+               MENU_OPCION("Volver", "Volver al menu anterior.")
        };
        };
-
-       items = (ITEM **)calloc(5, sizeof(ITEM *));
-
-       items[0] = new_item(opciones[0], "Crear un nuevo articulo.");
-       set_item_userptr(items[0], art_agregar);
-       items[1] = new_item(opciones[1], "Eliminar un articulo existente.");
-       set_item_userptr(items[1], art_eliminar);
-       items[2] = new_item(opciones[2], "Modificar un articulo existente.");
-       set_item_userptr(items[2], art_modificar);
-       items[3] = new_item(opciones[3], "Volver al menu anterior.");
-       items[4] = NULL;
-
-       menu = new_menu((ITEM **)items);
-       menu_win = newwin(8, COLS-2, 3, 1);
-       keypad(menu_win, TRUE);
-       set_menu_mark(menu, " > ");
-       set_menu_win(menu, menu_win);
-       set_menu_sub(menu, derwin(menu_win, 5, COLS-4, 3, 1));
-
-       box(menu_win, 0, 0);
-       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-       mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
-       mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
-       wattron(menu_win, COLOR_PAIR(COLOR_RED));
-       mvwaddstr(menu_win, 1, 1, "Menu Articulos");
-       wattroff(menu_win, COLOR_PAIR(COLOR_RED));
-       post_menu(menu);
-       wrefresh(menu_win);
-
-       curs_set(0);
-       salir = 0;
-       while((!salir) && (c = getch()) != KEY_F(3)) {
-               switch(c) {
-                       case KEY_DOWN:
-                               menu_driver(menu, REQ_DOWN_ITEM);
-                               break;
-                       case KEY_UP:
-                               menu_driver(menu, REQ_UP_ITEM);
+       int opt;
+               
+       while ((opt = menu_ejecutar(mi_menu, 4, "Menu Articulos")) != 3) {
+               switch (opt) {
+                       case 0:
+                               art_agregar(NULL);
                        break;
                        break;
-                       case 13:
-                       case 10: {
-                               ITEM *cur;
-                               void (*p)(char *);
-
-                               cur = current_item(menu);
-                               if (strcmp(item_name(cur), opciones[3]) == 0) {
-                                       salir = 1;
-                               } else {
-                                       p = item_userptr(cur);
-                                       unpost_menu(menu);
-                                       refresh();
-                                       p(NULL); /* Paso NULL para que ejecute la accion por defecto */
-                                       post_menu(menu);
-                                       box(menu_win,0,0);
-                                       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-                                       mvwhline(menu_win, 2, 1, ACS_HLINE, 67);
-                                       mvwaddch(menu_win, 2, 67, ACS_RTEE);
-                                       wrefresh(menu_win);
-                               }
-                               pos_menu_cursor(menu);
-                       }
+                       case 1:
+                               art_eliminar(NULL);
+                       break;
+                       case 2:
+                               art_modificar(NULL);
                }
                }
-               wrefresh(menu_win);
-       }       
-       curs_set(1);
-       
-       unpost_menu(menu);
-       delwin(menu_win);
-       free_item(items[0]);
-       free_item(items[1]);
-       free_item(items[2]);
-       free_item(items[3]);
-       free_menu(menu);
-       free(items);
+       }
+
 }
 
 void menu_estadisticas()
 {
 }
 
 void menu_estadisticas()
 {
-       WINDOW *menu_win;
-       MENU *menu;
-       ITEM **items;
-       int c, salir;
-       char *opciones[] = {
-                                       "Articulos",
-                                       "Facturas",
-                                       "Notas",
-                                       "Volver"
+       MENU(mi_menu) {
+               MENU_OPCION("Articulos", "Ver datos del archivo de Articulos."),
+               MENU_OPCION("Facturas", "Ver datos del archivo de Facturas."),
+               MENU_OPCION("Notas", "Ver datos del archivo de Notas."),
+               MENU_OPCION("Volver", "Ir al menu anterior.")
        };
        };
+       int opt;
 
 
-       items = (ITEM **)calloc(5, sizeof(ITEM *));
-
-       items[0] = new_item(opciones[0], "Ver datos del archivo de Articulos.");
-       items[1] = new_item(opciones[1], "Ver datos del archivo de Facturas.");
-       items[2] = new_item(opciones[2], "Ver datos del archivo de Notas.");
-       items[3] = new_item(opciones[3], "Volver al menu anterior.");
-       items[4] = NULL;
-
-       menu = new_menu((ITEM **)items);
-       menu_win = newwin(8, COLS-2, 3, 1);
-       keypad(menu_win, TRUE);
-       set_menu_mark(menu, " > ");
-       set_menu_win(menu, menu_win);
-       set_menu_sub(menu, derwin(menu_win, 5, COLS-4, 3, 1));
-
-       box(menu_win, 0, 0);
-       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-       mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
-       mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
-       wattron(menu_win, COLOR_PAIR(COLOR_RED));
-       mvwaddstr(menu_win, 1, 1, "Menu Estadisticas");
-       wattroff(menu_win, COLOR_PAIR(COLOR_RED));
-       post_menu(menu);
-       wrefresh(menu_win);
-
-       curs_set(0);
-       salir = 0;
-       while((!salir) && (c = getch()) != KEY_F(3)) {
-               switch(c) {
-                       case KEY_DOWN:
-                               menu_driver(menu, REQ_DOWN_ITEM);
-                               break;
-                       case KEY_UP:
-                               menu_driver(menu, REQ_UP_ITEM);
+       while ((opt = menu_ejecutar(mi_menu, 4, "Menu Estadisticas")) != 3) {
+               switch (opt) {
+                       case 0:
+                               ver_estadisticas( art_get_lst()->fp );
                        break;
                        break;
-                       case 13:
-                       case 10:
-                       {
-                               ITEM *cur;
-
-                               cur = current_item(menu);
-                               if (strcmp(item_name(cur), opciones[3]) == 0) {
-                                       salir = 1;
-                               } else {
-                                       if (strcmp(item_name(cur), opciones[0]) == 0) {
-                                               unpost_menu(menu);
-                                               ver_estadisticas( art_get_lst()->fp );
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[1]) == 0) {
-                                               unpost_menu(menu);
-                                               ver_estadisticas( fact_get_lst()->fp );
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[2]) == 0) {
-                                               unpost_menu(menu);
-                                               ver_estadisticas( fact_get_lst()->fp_texto );
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                               }
-                               pos_menu_cursor(menu);
-                       }
+                       case 1:
+                               ver_estadisticas( fact_get_lst()->fp );
+                       break;
+                       case 2:
+                               ver_estadisticas( fact_get_lst()->fp_texto );
                }
                }
-               wrefresh(menu_win);
-       }       
-       curs_set(1);
-       
-       unpost_menu(menu);
-       delwin(menu_win);
-       free_item(items[0]);
-       free_item(items[1]);
-       free_item(items[2]);
-       free_item(items[3]);
-       free_menu(menu);
-       free(items);
+       }
 }
 
 int main_menu()
 {
 }
 
 int main_menu()
 {
-       WINDOW *menu_win;
-       MENU *menu;
-       ITEM **items;
-       int c, salir, opcion;
-       char *opciones[] = {
-                                       "Articulos",
-                                       "Facturas",
-                                       "Ver Registros",
-                                       "Ver Facturas",
-                                       "Ver Notas",
-                                       "Estadisticas",
-                                       "Mantenimiento",
-                                       "Salir"
+       MENU(mi_menu) {
+               MENU_OPCION("Articulos","Alta,baja,consulta y modificacion de articulos."),
+               MENU_OPCION("Facturas","Alta,baja,consulta y modificacion de facturas."),
+               MENU_OPCION("Ver Registros","Ver registros/bloques de archivo Articulos."),
+               MENU_OPCION("Ver Facturas","Ver registros/bloques de archivo Facturas."),
+               MENU_OPCION("Ver Notas","Ver registros/bloques de archivo Notas."),
+               MENU_OPCION("Estadisticas","Ver estadisticas de ocupacion de archivos."),
+               MENU_OPCION("Mantenimiento","Tareas de mantenimiento de los archivos."),
+               MENU_OPCION("Salir", "Salir del sistema.")
        };
 
        };
 
-       items = (ITEM **)calloc(9, sizeof(ITEM *));
-
-       items[0] = new_item(opciones[0], "Alta,baja,consulta y modificacion de articulos.");
-       items[1] = new_item(opciones[1], "Alta,baja,consulta y modificacion de facturas.");
-       items[2] = new_item(opciones[2], "Ver registros/bloques de archivo Articulos.");
-       items[3] = new_item(opciones[3], "Ver registros/bloques de archivo Facturas.");
-       items[4] = new_item(opciones[4], "Ver registros/bloques de archivo Notas.");
-       items[5] = new_item(opciones[5], "Ver estadisticas de ocupacion de archivos.");
-       items[6] = new_item(opciones[6], "Tareas de mantenimiento de los archivos.");
-       items[7] = new_item(opciones[7], "Salir del sistema.");
-       items[8] = NULL;
-
-       menu = new_menu((ITEM **)items);
-       menu_win = newwin(14, COLS-2, 3, 1);
-       keypad(menu_win, TRUE);
-       set_menu_mark(menu, " > ");
-       set_menu_win(menu, menu_win);
-       set_menu_sub(menu, derwin(menu_win, 10, COLS-4, 3, 1));
-
-       box(menu_win, 0, 0);
-       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-       mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
-       mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
-       wattron(menu_win, COLOR_PAIR(COLOR_RED));
-       mvwaddstr(menu_win, 1, 1, "Menu Principal");
-       wattroff(menu_win, COLOR_PAIR(COLOR_RED));
-       post_menu(menu);
-       wrefresh(menu_win);
-
-       curs_set(0);
-       opcion = -1;
-       salir = 0;
-       while((!salir) && (c = getch())) {
-               switch(c) {
-                       case KEY_DOWN:
-                               menu_driver(menu, REQ_DOWN_ITEM);
-                               break;
-                       case KEY_UP:
-                               menu_driver(menu, REQ_UP_ITEM);
-                       break;
-                       case 13:
-                       case 10: 
-                       {
-                               ITEM *cur;
-                               int i;
-
-                               cur = current_item(menu);
-                               for(i=0; i<7; ++i) {
-                                       if (strcmp(item_name(cur), opciones[i]) == 0)
-                                               opcion = i;
-                               }
-                               pos_menu_cursor(menu);
-                               salir = 1;
-                       }
-               }
-               wrefresh(menu_win);
-       }       
-       curs_set(1);
-       
-       unpost_menu(menu);
-       werase(menu_win);
-       wrefresh(menu_win);
-       delwin(menu_win);
-       free_item(items[0]);
-       free_item(items[1]);
-       free_item(items[2]);
-       free_item(items[3]);
-       free_item(items[4]);
-       free_item(items[5]);
-       free_item(items[6]);
-       free_menu(menu);
-       free(items);
-
-       return opcion;
+       return menu_ejecutar(mi_menu, 8, "Menu Principal");
 }
 
 
 }
 
 
@@ -588,116 +317,48 @@ void msg_box_free(WINDOW *padre, WINDOW *win)
 
 void menu_mantenimiento()
 {
 
 void menu_mantenimiento()
 {
-       WINDOW *menu_win, *dlg;
-       MENU *menu;
-       ITEM **items;
-       int c, salir, nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro;
-       char *opciones[] = {
-                                       "Compactar Articulos",
-                                       "Compactar Facturas",
-                                       "Compactar Notas",
-                                       "Cambiar tipo Archivo Articulos",
-                                       "Cambiar tipo Archivo Facturas",
-                                       "Cambiar tipo Archivo Notas",
-                                       "Volver"
+       MENU(mi_menu) {
+               MENU_OPCION("Compactar Articulos","Elimina espacio no utilizado."),
+               MENU_OPCION("Compactar Facturas","Elimina espacio no utilizado."),
+               MENU_OPCION("Compactar Notas","Elimina espacio no utilizado."),
+               MENU_OPCION("Cambiar tipo Archivo Articulos","Permite cambiar el tipo del archivo."),
+               MENU_OPCION("Cambiar tipo Archivo Facturas","Permite cambiar el tipo del archivo."),
+               MENU_OPCION("Cambiar tipo Archivo Notas","Permite cambiar el tipo del archivo."),
+               MENU_OPCION("Volver", "Volver al menu anterior.")
        };
 
        };
 
-       items = (ITEM **)calloc(8, sizeof(ITEM *));
-
-       items[0] = new_item(opciones[0], "Elimina espacio no utilizado.");
-       items[1] = new_item(opciones[1], "Elimina espacio no utilizado.");
-       items[2] = new_item(opciones[2], "Elimina espacio no utilizado.");
-       items[3] = new_item(opciones[3], "Permite cambiar el tipo del archivo.");
-       items[4] = new_item(opciones[4], "Permite cambiar el tipo del archivo.");
-       items[5] = new_item(opciones[5], "Permite cambiar el tipo del archivo.");
-       items[6] = new_item(opciones[6], "Volver al menu anterior.");
-       items[7] = NULL;
-
-       menu = new_menu((ITEM **)items);
-       menu_win = newwin(12, COLS-2, 3, 1);
-       keypad(menu_win, TRUE);
-       set_menu_mark(menu, " > ");
-       set_menu_win(menu, menu_win);
-       set_menu_sub(menu, derwin(menu_win, 8, COLS-4, 3, 1));
-
-       box(menu_win, 0, 0);
-       mvwaddch(menu_win, 2, 0, ACS_LTEE);
-       mvwhline(menu_win, 2, 1, ACS_HLINE, COLS-3);
-       mvwaddch(menu_win, 2, COLS-3, ACS_RTEE);
-       wattron(menu_win, COLOR_PAIR(COLOR_RED));
-       mvwaddstr(menu_win, 1, 1, "Menu Mantenimiento");
-       wattroff(menu_win, COLOR_PAIR(COLOR_RED));
-       post_menu(menu);
-       wrefresh(menu_win);
+       int opt;
+       int nuevo_tam_registro, nuevo_tam_bloque;
+       int nuevo_tipo;
+       WINDOW *dlg;
 
 
-       curs_set(0);
-       salir = 0;
-       while((!salir) && (c = getch()) != KEY_F(3)) {
-               switch(c) {
-                       case KEY_DOWN:
-                               menu_driver(menu, REQ_DOWN_ITEM);
-                               break;
-                       case KEY_UP:
-                               menu_driver(menu, REQ_UP_ITEM);
+       while ((opt = menu_ejecutar(mi_menu, 7, "Menu Mantenimiento")) != 6) {
+               switch (opt) {
+                       case 0:
+                               art_get_lst()->fp->compactar(art_get_lst()->fp);
                        break;
                        break;
-                       case 13:
-                       case 10: 
-                       {
-                               ITEM *cur;
-
-                               cur = current_item(menu);
-                               if (strcmp(item_name(cur), opciones[6]) == 0) {
-                                       salir = 1;
-                               } else {
-                                       if (strcmp(item_name(cur), opciones[0]) == 0) {
-                                               art_get_lst()->fp->compactar(art_get_lst()->fp);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[1]) == 0) {
-                                               fact_get_lst()->fp->compactar(fact_get_lst()->fp);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[2]) == 0) {
-                                               fact_get_lst()->fp_texto->compactar(fact_get_lst()->fp_texto);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[3]) == 0) {
-                                               unpost_menu(menu);
-                                               nuevo_tam_registro = -1; /* No permito cambiar el tamaño de registro */
-                                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
-                                               dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
-                                               art_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro);
-                                               msg_box_free(stdscr, dlg);
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[4]) == 0) {
-                                               unpost_menu(menu);
-                                               nuevo_tam_registro = 0;
-                                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                                       if (strcmp(item_name(cur), opciones[5]) == 0) {
-                                               unpost_menu(menu);
-                                               nuevo_tam_registro = -2;
-                                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
-                                               box(menu_win, 0, 0);
-                                               post_menu(menu);
-                                       }
-                               }
-                       }
+                       case 1:
+                               fact_get_lst()->fp->compactar(fact_get_lst()->fp);
+                       break;
+                       case 2:
+                               fact_get_lst()->fp_texto->compactar(fact_get_lst()->fp_texto);
+                       break;
+                       case 3:
+                               nuevo_tam_registro = -1; /* No permito cambiar el tamaño de registro */
+                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
+                               dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
+                               art_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro);
+                               msg_box_free(stdscr, dlg);
+                       break;
+                       case 4:
+                               nuevo_tam_registro = 0;
+                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
+                       break;
+                       case 5:
+                               nuevo_tam_registro = -2;
+                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
                }
                }
-               wrefresh(menu_win);
-       }       
-       curs_set(1);
-       
-       unpost_menu(menu);
-       delwin(menu_win);
-       free_item(items[0]);
-       free_item(items[1]);
-       free_item(items[2]);
-       free_item(items[3]);
-       free_menu(menu);
-
-       free(items);
+       }
 }
 
 void preguntar_nuevo_tipo(int *tipo, int *tam_bloque, int *tam_reg)
 }
 
 void preguntar_nuevo_tipo(int *tipo, int *tam_bloque, int *tam_reg)