ncurses 5.9 - patch 20130928
[ncurses.git] / ncurses / tinfo / lib_setup.c
index 3e82a389eee001074e4398ebb2a78a77607cbe24..946342da41db60ecb7b7ef2ca105d6becb6be327 100644 (file)
@@ -48,7 +48,7 @@
 #include <locale.h>
 #endif
 
-MODULE_ID("$Id: lib_setup.c,v 1.156 2013/05/25 20:20:08 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.158 2013/06/22 19:59:08 tom Exp $")
 
 /****************************************************************************
  *
@@ -687,7 +687,9 @@ TINFO_SETUP_TERM(TERMINAL ** tp,
 #endif
     } else {
 #ifdef USE_TERM_DRIVER
-       termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
+       TERMINAL_CONTROL_BLOCK *my_tcb;
+       my_tcb = typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
+       termp = &(my_tcb->term);
 #else
        termp = typeCalloc(TERMINAL, 1);
 #endif
@@ -783,14 +785,12 @@ TINFO_SETUP_TERM(TERMINAL ** tp,
        if ((VALID_STRING(cursor_address)
             || (VALID_STRING(cursor_down) && VALID_STRING(cursor_home)))
            && VALID_STRING(clear_screen)) {
-           free(termp);
            ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname);
        } else {
-           free(termp);
+           del_curterm(termp);
            ret_error1(TGETENT_NO, "I need something more specific.\n", tname);
        }
     } else if (hard_copy) {
-       free(termp);
        ret_error1(TGETENT_YES, "I can't handle hardcopy terminals.\n", tname);
     }
 #endif