X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_set_term.c;h=816ab041d647c81c1c076bda82313ba9426216e6;hp=9bb46fc7f8b4849cccabf3789b8f5b91cf15c4f1;hb=c6540b9c89dda1a6a8bd681726831e8924176504;hpb=fb24ca09eab8f14b9be7ea60acf174aae46df43d diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c index 9bb46fc7..816ab041 100644 --- a/ncurses/base/lib_set_term.c +++ b/ncurses/base/lib_set_term.c @@ -47,7 +47,7 @@ #define CUR SP_TERMTYPE #endif -MODULE_ID("$Id: lib_set_term.c,v 1.131 2009/10/31 22:28:04 tom Exp $") +MODULE_ID("$Id: lib_set_term.c,v 1.135 2009/11/28 21:49:24 tom Exp $") #ifdef USE_TERM_DRIVER #define MaxColors InfoOf(sp).maxcolors @@ -74,9 +74,9 @@ set_term(SCREEN *screenp) if (newSP != 0) { TINFO_SET_CURTERM(newSP, newSP->_term); #if !USE_REENTRANT - curscr = newSP->_curscr; - newscr = newSP->_newscr; - stdscr = newSP->_stdscr; + curscr = CurScreen(newSP); + newscr = NewScreen(newSP); + stdscr = StdScreen(newSP); COLORS = newSP->_color_count; COLOR_PAIRS = newSP->_pair_count; #endif @@ -154,9 +154,9 @@ delscreen(SCREEN *sp) } #endif - (void) _nc_freewin(sp->_curscr); - (void) _nc_freewin(sp->_newscr); - (void) _nc_freewin(sp->_stdscr); + (void) _nc_freewin(CurScreen(sp)); + (void) _nc_freewin(NewScreen(sp)); + (void) _nc_freewin(StdScreen(sp)); if (sp->_slk != 0) { if (sp->_slk->ent != 0) { @@ -272,44 +272,6 @@ extract_fgbg(char *src, int *result) } #endif -#if NCURSES_SP_FUNCS -/* - * In case of handling multiple screens, we need to have a screen before - * initialization in setupscreen takes place. This is to extend the substitute - * for some of the stuff in _nc_prescreen, especially for slk and ripoff - * handling which should be done per screen. - */ -NCURSES_EXPORT(SCREEN *) -new_prescr(void) -{ - static SCREEN *sp; - - START_TRACE(); - T((T_CALLED("new_prescr()"))); - - if (sp == 0) { - sp = _nc_alloc_screen_sp(); - if (sp != 0) { - sp->rsp = sp->rippedoff; - sp->_filtered = _nc_prescreen.filter_mode; - sp->_use_env = _nc_prescreen.use_env; -#if NCURSES_NO_PADDING - sp->_no_padding = _nc_prescreen._no_padding; -#endif - sp->slk_format = 0; - sp->_slk = 0; - sp->_prescreen = TRUE; - SP_PRE_INIT(sp); -#if USE_REENTRANT - sp->_TABSIZE = _nc_prescreen._TABSIZE; - sp->_ESCDELAY = _nc_prescreen._ESCDELAY; -#endif - } - } - returnSP(sp); -} -#endif - #define ReturnScreenError() _nc_set_screen(0); \ returnCode(ERR) @@ -640,27 +602,27 @@ NCURSES_SP_NAME(_nc_setupscreen) ( sp->newhash = 0; T(("creating newscr")); - sp->_newscr = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, - 0, 0); - if (sp->_newscr == 0) { + NewScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); + if (NewScreen(sp) == 0) { ReturnScreenError(); } T(("creating curscr")); - sp->_curscr = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, - 0, 0); - if (sp->_curscr == 0) { + CurScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx slines, scolumns, + 0, 0); + if (CurScreen(sp) == 0) { ReturnScreenError(); } #if !USE_REENTRANT - newscr = sp->_newscr; - curscr = sp->_curscr; + newscr = NewScreen(sp); + curscr = CurScreen(sp); #endif #if USE_SIZECHANGE sp->_resize = NCURSES_SP_NAME(resizeterm); #endif - sp->_newscr->_clear = TRUE; - sp->_curscr->_clear = FALSE; + NewScreen(sp)->_clear = TRUE; + CurScreen(sp)->_clear = FALSE; NCURSES_SP_NAME(def_shell_mode) (NCURSES_SP_ARG); NCURSES_SP_NAME(def_prog_mode) (NCURSES_SP_ARG); @@ -714,14 +676,14 @@ NCURSES_SP_NAME(_nc_setupscreen) ( T(("creating stdscr")); assert((sp->_lines_avail + sp->_topstolen + bottom_stolen) == slines); - if ((sp->_stdscr = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx - sp->_lines_avail, - scolumns, 0, 0)) == 0) { + if ((StdScreen(sp) = NCURSES_SP_NAME(newwin) (NCURSES_SP_ARGx + sp->_lines_avail, + scolumns, 0, 0)) == 0) { ReturnScreenError(); } SET_LINES(sp->_lines_avail); #if !USE_REENTRANT - stdscr = sp->_stdscr; + stdscr = StdScreen(sp); #endif sp->_prescreen = FALSE; returnCode(OK);