X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_set_term.c;h=7bf6ea4db581cc348090f65c043da686340301b2;hp=70148cd40fb4088b7dfac854bc53cb6075720f19;hb=bbb7fd37298f7d81386a4cf868417b9e084d7d90;hpb=78e49873c69dc0494bb34c62f897f8b446584a33 diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c index 70148cd4..7bf6ea4d 100644 --- a/ncurses/base/lib_set_term.c +++ b/ncurses/base/lib_set_term.c @@ -45,7 +45,11 @@ #include /* cur_term */ #include -MODULE_ID("$Id: lib_set_term.c,v 1.118 2009/02/15 00:39:46 tom Exp $") +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_set_term.c,v 1.124 2009/06/27 21:36:14 tom Exp $") NCURSES_EXPORT(SCREEN *) set_term(SCREEN *screenp) @@ -257,6 +261,9 @@ _nc_setupscreen(int slines GCC_UNUSED, bool filtered, int slk_format) { +#if NCURSES_SP_FUNCS + SCREEN *sp = CURRENT_SCREEN; +#endif char *env; int bottom_stolen = 0; bool support_cookies = USE_XMC_SUPPORT; @@ -273,6 +280,9 @@ _nc_setupscreen(int slines GCC_UNUSED, } T(("created SP %p", SP)); +#if NCURSES_SP_FUNCS + sp = SP; /* fixup so SET_LINES and SET_COLS works */ +#endif SP->_next_screen = _nc_screen_chain; _nc_screen_chain = SP; @@ -547,7 +557,7 @@ _nc_setupscreen(int slines GCC_UNUSED, curscr = SP->_curscr; #endif #if USE_SIZECHANGE - SP->_resize = resizeterm; + SP->_resize = NCURSES_SP_NAME(resizeterm); #endif newscr->_clear = TRUE; @@ -556,8 +566,8 @@ _nc_setupscreen(int slines GCC_UNUSED, def_shell_mode(); def_prog_mode(); - for (rop = ripoff_stack; - rop != ripoff_sp && (rop - ripoff_stack) < N_RIPS; + for (rop = safe_ripoff_stack; + rop != safe_ripoff_sp && (rop - safe_ripoff_stack) < N_RIPS; rop++) { /* If we must simulate soft labels, grab off the line to be used. @@ -596,7 +606,7 @@ _nc_setupscreen(int slines GCC_UNUSED, } } /* reset the stack */ - ripoff_sp = ripoff_stack; + safe_ripoff_sp = safe_ripoff_stack; T(("creating stdscr")); assert((SP->_lines_avail + SP->_topstolen + bottom_stolen) == slines); @@ -616,25 +626,35 @@ _nc_setupscreen(int slines GCC_UNUSED, * off from the top or bottom. */ NCURSES_EXPORT(int) -_nc_ripoffline(int line, int (*init) (WINDOW *, int)) +NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_DCLx + int line, + int (*init) (WINDOW *, int)) { T((T_CALLED("_nc_ripoffline(%d, %p)"), line, init)); if (line != 0) { - if (ripoff_sp == 0) - ripoff_sp = ripoff_stack; - if (ripoff_sp >= ripoff_stack + N_RIPS) + if (safe_ripoff_sp == 0) + safe_ripoff_sp = safe_ripoff_stack; + if (safe_ripoff_sp >= safe_ripoff_stack + N_RIPS) returnCode(ERR); - ripoff_sp->line = line; - ripoff_sp->hook = init; - ripoff_sp++; + safe_ripoff_sp->line = line; + safe_ripoff_sp->hook = init; + safe_ripoff_sp++; } returnCode(OK); } +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +_nc_ripoffline(int line, int (*init) (WINDOW *, int)) +{ + return NCURSES_SP_NAME(_nc_ripoffline) (CURRENT_SCREEN, line, init); +} +#endif + NCURSES_EXPORT(int) NCURSES_SP_NAME(ripoffline) (NCURSES_SP_DCLx int line, @@ -646,7 +666,9 @@ NCURSES_SP_NAME(ripoffline) (NCURSES_SP_DCLx if (line == 0) returnCode(OK); - returnCode(_nc_ripoffline((line < 0) ? -1 : 1, init)); + returnCode(NCURSES_SP_NAME(_nc_ripoffline) (NCURSES_SP_ARGx + (line < 0) ? -1 : 1, + init)); } #if NCURSES_SP_FUNCS