X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Ftinfo%2Ftinfo_driver.c;h=21004732068a0a2f55b3c1d5fe79ebf371e04591;hb=ed646e3f683083e787c6ba773364401dc9fa9d40;hp=6d75648fec48ece5afc84801803ec011327d364f;hpb=58552e8c761a70f8f0bd591fecdf576fa8216e3e;p=ncurses.git diff --git a/ncurses/tinfo/tinfo_driver.c b/ncurses/tinfo/tinfo_driver.c index 6d75648f..21004732 100644 --- a/ncurses/tinfo/tinfo_driver.c +++ b/ncurses/tinfo/tinfo_driver.c @@ -28,11 +28,11 @@ /**************************************************************************** * Author: Juergen Pfeifer * - * * + * and: Thomas E. Dickey * ****************************************************************************/ #include -#define CUR ((TERMINAL*)TCB)->type. +#define CUR TerminalType((TERMINAL*)TCB). #include #include /* ospeed */ @@ -51,7 +51,7 @@ # endif #endif -MODULE_ID("$Id: tinfo_driver.c,v 1.44 2017/01/07 16:34:52 tom Exp $") +MODULE_ID("$Id: tinfo_driver.c,v 1.51 2017/04/14 08:19:49 tom Exp $") /* * SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS, @@ -115,7 +115,7 @@ drv_Name(TERMINAL_CONTROL_BLOCK * TCB) } static void -get_baudrate(TERMINAL * termp) +get_baudrate(TERMINAL *termp) { int my_ospeed; int result; @@ -153,7 +153,7 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret) SCREEN *sp; START_TRACE(); - T((T_CALLED("tinfo::drv_CanHandle(%p)"), TCB)); + T((T_CALLED("tinfo::drv_CanHandle(%p)"), (void *) TCB)); assert(TCB != 0 && tname != 0); termp = (TERMINAL *) TCB; @@ -161,17 +161,17 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret) TCB->magic = TCBMAGIC; #if (NCURSES_USE_DATABASE || NCURSES_USE_TERMCAP) - status = _nc_setup_tinfo(tname, &termp->type); + status = _nc_setup_tinfo(tname, &TerminalType(termp)); #else status = TGETENT_NO; #endif /* try fallback list if entry on disk */ if (status != TGETENT_YES) { - const TERMTYPE *fallback = _nc_fallback(tname); + const TERMTYPE2 *fallback = _nc_fallback2(tname); if (fallback) { - termp->type = *fallback; + TerminalType(termp) = *fallback; status = TGETENT_YES; } } @@ -185,6 +185,9 @@ drv_CanHandle(TERMINAL_CONTROL_BLOCK * TCB, const char *tname, int *errret) } } result = TRUE; +#if NCURSES_EXT_NUMBERS + _nc_export_termtype2(&termp->type, &TerminalType(termp)); +#endif #if !USE_REENTRANT #define MY_SIZE (size_t) NAMESIZE - 1 _nc_STRNCPY(ttytype, termp->type.term_names, MY_SIZE); @@ -300,8 +303,8 @@ drv_defaultcolors(TERMINAL_CONTROL_BLOCK * TCB, int fg, int bg) sp->_has_sgr_39_49 = (NCURSES_SP_NAME(tigetflag) (NCURSES_SP_ARGx "AX") == TRUE); - sp->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK); - sp->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK); + sp->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : fg; + sp->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : bg; if (sp->_color_pairs != 0) { bool save = sp->_default_color; sp->_default_color = TRUE; @@ -788,9 +791,9 @@ drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, NCURSES_SP_OUTC outc) { SCREEN *sp = TCB->csp; - NCURSES_COLOR_T fg = COLOR_DEFAULT; - NCURSES_COLOR_T bg = COLOR_DEFAULT; - NCURSES_COLOR_T old_fg, old_bg; + int fg = COLOR_DEFAULT; + int bg = COLOR_DEFAULT; + int old_fg, old_bg; AssertTCB(); if (sp == 0) @@ -805,19 +808,13 @@ drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, TPARM_1(set_color_pair, pair), 1, outc); return; } else if (sp != 0) { - NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx - (short) pair, - &fg, - &bg); + _nc_pair_content(SP_PARM, pair, &fg, &bg); } } if (old_pair >= 0 && sp != 0 - && NCURSES_SP_NAME(pair_content) (NCURSES_SP_ARGx - (short) old_pair, - &old_fg, - &old_bg) !=ERR) { + && _nc_pair_content(SP_PARM, old_pair, &old_fg, &old_bg) != ERR) { if ((isDefaultColor(fg) && !isDefaultColor(old_fg)) || (isDefaultColor(bg) && !isDefaultColor(old_bg))) { #if NCURSES_EXT_FUNCS @@ -846,13 +843,13 @@ drv_do_color(TERMINAL_CONTROL_BLOCK * TCB, #if NCURSES_EXT_FUNCS if (isDefaultColor(fg)) - fg = (NCURSES_COLOR_T) default_fg(sp); + fg = default_fg(sp); if (isDefaultColor(bg)) - bg = (NCURSES_COLOR_T) default_bg(sp); + bg = default_bg(sp); #endif if (reverse) { - NCURSES_COLOR_T xx = fg; + int xx = fg; fg = bg; bg = xx; }