#include <locale.h>
#endif
-MODULE_ID("$Id: lib_setup.c,v 1.150 2012/09/22 18:46:12 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.154 2012/12/08 22:01:26 tom Exp $")
/****************************************************************************
*
* We're doing it this way because those functions belong to the upper
* ncurses library, while this resides in the lower terminfo library.
*/
- if (sp != 0
- && sp->_resize != 0) {
+ if (sp->_resize != 0) {
if ((new_lines != old_lines) || (new_cols != old_cols)) {
sp->_resize(NCURSES_SP_ARGx new_lines, new_cols);
} else if (sp->_sig_winch && (sp->_ungetch != 0)) {
&& _nc_name_match(termp->type.term_names, tname, "|")) {
T(("reusing existing terminal information and mode-settings"));
code = OK;
+#ifdef USE_TERM_DRIVER
+ TCB = (TERMINAL_CONTROL_BLOCK *) termp;
+#endif
} else {
#ifdef USE_TERM_DRIVER
termp = (TERMINAL *) typeCalloc(TERMINAL_CONTROL_BLOCK, 1);
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);
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
int reuse)
{
int res;
- TERMINAL *termp;
+ TERMINAL *termp = 0;
res = TINFO_SETUP_TERM(&termp, tname, Filedes, errret, reuse);
if (ERR != res)
NCURSES_SP_NAME(set_curterm) (CURRENT_SCREEN_PRE, termp);