]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/base/lib_set_term.c
ncurses 5.7 - patch 20100116
[ncurses.git] / ncurses / base / lib_set_term.c
index 9bb46fc7f8b4849cccabf3789b8f5b91cf15c4f1..816ab041d647c81c1c076bda82313ba9426216e6 100644 (file)
@@ -47,7 +47,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
 #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
 
 #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
     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
        COLORS = newSP->_color_count;
        COLOR_PAIRS = newSP->_pair_count;
 #endif
@@ -154,9 +154,9 @@ delscreen(SCREEN *sp)
        }
 #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) {
 
        if (sp->_slk != 0) {
            if (sp->_slk->ent != 0) {
@@ -272,44 +272,6 @@ extract_fgbg(char *src, int *result)
 }
 #endif
 
 }
 #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)
 
 #define ReturnScreenError() _nc_set_screen(0); \
                             returnCode(ERR)
 
@@ -640,27 +602,27 @@ NCURSES_SP_NAME(_nc_setupscreen) (
     sp->newhash = 0;
 
     T(("creating newscr"));
     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"));
        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
        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
 
 #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);
 
     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);
 
     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
        ReturnScreenError();
     }
     SET_LINES(sp->_lines_avail);
 #if !USE_REENTRANT
-    stdscr = sp->_stdscr;
+    stdscr = StdScreen(sp);
 #endif
     sp->_prescreen = FALSE;
     returnCode(OK);
 #endif
     sp->_prescreen = FALSE;
     returnCode(OK);