#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
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
}
#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) {
}
#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)
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);
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);