X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Flib_setup.c;h=27b9db84e5ee2b539933d45e678416db33068921;hp=60ce2c68f9024f58f596db130d447cbea6c9472e;hb=ef2d99350e0d3e4606171b5b1466ab92ec440205;hpb=cabcc699fe87c3982b795dabea1ba6970b4faa90 diff --git a/ncurses/tinfo/lib_setup.c b/ncurses/tinfo/lib_setup.c index 60ce2c68..27b9db84 100644 --- a/ncurses/tinfo/lib_setup.c +++ b/ncurses/tinfo/lib_setup.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2011,2012 Free Software Foundation, Inc. * + * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -48,7 +48,7 @@ #include #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.159 2014/03/08 20:32:59 tom Exp $") /**************************************************************************** * @@ -283,7 +283,7 @@ _nc_get_screensize(SCREEN *sp, TCB = (TERMINAL_CONTROL_BLOCK *) termp; my_tabsize = TCB->info.tabsize; - TCB->drv->size(TCB, linep, colp); + TCB->drv->td_size(TCB, linep, colp); #if USE_REENTRANT if (sp != 0) { @@ -423,7 +423,7 @@ _nc_update_screensize(SCREEN *sp) assert(sp != 0); - CallDriver_2(sp, getsize, &old_lines, &old_cols); + CallDriver_2(sp, td_getsize, &old_lines, &old_cols); #else TERMINAL *termp = cur_term; @@ -438,8 +438,7 @@ _nc_update_screensize(SCREEN *sp) * 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 != 0 && 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)) { @@ -456,7 +455,7 @@ _nc_update_screensize(SCREEN *sp) * ****************************************************************************/ -#if USE_DATABASE || USE_TERMCAP +#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP /* * Return 1 if entry found, 0 if not found, -1 if database not accessible, * just like tgetent(). @@ -683,9 +682,14 @@ TINFO_SETUP_TERM(TERMINAL ** tp, && _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); + TERMINAL_CONTROL_BLOCK *my_tcb; + my_tcb = typeCalloc(TERMINAL_CONTROL_BLOCK, 1); + termp = &(my_tcb->term); #else termp = typeCalloc(TERMINAL, 1); #endif @@ -705,7 +709,7 @@ TINFO_SETUP_TERM(TERMINAL ** tp, "Could not find any driver to handle this terminal.\n"); } #else -#if USE_DATABASE || USE_TERMCAP +#if NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP status = _nc_setup_tinfo(tname, &termp->type); #else status = TGETENT_NO; @@ -759,7 +763,7 @@ TINFO_SETUP_TERM(TERMINAL ** tp, #ifdef USE_TERM_DRIVER *tp = termp; NCURSES_SP_NAME(set_curterm) (sp, termp); - TCB->drv->init(TCB); + TCB->drv->td_init(TCB); #else sp = SP; #endif @@ -783,6 +787,7 @@ TINFO_SETUP_TERM(TERMINAL ** tp, && VALID_STRING(clear_screen)) { ret_error1(TGETENT_YES, "terminal is not really generic.\n", tname); } else { + del_curterm(termp); ret_error1(TGETENT_NO, "I need something more specific.\n", tname); } } else if (hard_copy) { @@ -842,7 +847,7 @@ _nc_setupterm(NCURSES_CONST char *tname, 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);