X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_set_term.c;h=632bfba0ada4ede7a5972c56127f6fa240fb7a80;hp=aff432bb9fd1a3dc8fde612794d5fd9afae79dc1;hb=26522e4669dbf45cba32138b5d81c6c292e88e60;hpb=8f527f87c0b979d9c2598ef5c3394463af288468 diff --git a/ncurses/base/lib_set_term.c b/ncurses/base/lib_set_term.c index aff432bb..632bfba0 100644 --- a/ncurses/base/lib_set_term.c +++ b/ncurses/base/lib_set_term.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -30,6 +30,7 @@ * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * * and: Thomas E. Dickey 1996-on * + * and: Juergen Pfeifer 2009 * ****************************************************************************/ /* @@ -44,7 +45,11 @@ #include /* cur_term */ #include -MODULE_ID("$Id: lib_set_term.c,v 1.117 2008/08/04 18:11:12 tom Exp $") +#ifndef CUR +#define CUR SP_TERMTYPE +#endif + +MODULE_ID("$Id: lib_set_term.c,v 1.122 2009/05/10 00:48:29 tom Exp $") NCURSES_EXPORT(SCREEN *) set_term(SCREEN *screenp) @@ -256,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; @@ -555,8 +563,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. @@ -595,7 +603,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); @@ -615,27 +623,39 @@ _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) -ripoffline(int line, int (*init) (WINDOW *, 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, + int (*init) (WINDOW *, int)) { START_TRACE(); T((T_CALLED("ripoffline(%d,%p)"), line, init)); @@ -643,5 +663,15 @@ ripoffline(int line, int (*init) (WINDOW *, int)) 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 +NCURSES_EXPORT(int) +ripoffline(int line, int (*init) (WINDOW *, int)) +{ + return NCURSES_SP_NAME(ripoffline) (CURRENT_SCREEN, line, init); } +#endif