X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_slkclear.c;h=264c8c40812c9976331fda52cafdb213506a2852;hp=ac6e414beaa26bc5228e565ba91a71188fdde10a;hb=c04d54322f7835ed42e597967d8fa5471025fcac;hpb=0eb88fc5281804773e2a0c7a488a4452463535ce diff --git a/ncurses/base/lib_slkclear.c b/ncurses/base/lib_slkclear.c index ac6e414b..264c8c40 100644 --- a/ncurses/base/lib_slkclear.c +++ b/ncurses/base/lib_slkclear.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 1998-2007,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 * @@ -29,6 +29,8 @@ /**************************************************************************** * Author: Zeyd M. Ben-Halim 1992,1995 * * and: Eric S. Raymond * + * and: Juergen Pfeifer 1996-1999 * + * and: Thomas E. Dickey 1996-on * ****************************************************************************/ /* @@ -38,25 +40,35 @@ */ #include -MODULE_ID("$Id: lib_slkclear.c,v 1.4 1999/03/03 23:44:22 juergen Exp $") +MODULE_ID("$Id: lib_slkclear.c,v 1.14 2009/11/07 16:27:05 tom Exp $") -int -slk_clear(void) +NCURSES_EXPORT(int) +NCURSES_SP_NAME(slk_clear) (NCURSES_SP_DCL0) { - T((T_CALLED("slk_clear()"))); + int rc = ERR; + + T((T_CALLED("slk_clear(%p)"), (void *) SP_PARM)); - if (SP == NULL || SP->_slk == NULL) - returnCode(ERR); - SP->_slk->hidden = TRUE; - /* For simulated SLK's it's looks much more natural to + if (SP_PARM != 0 && SP_PARM->_slk != 0) { + SP_PARM->_slk->hidden = TRUE; + /* For simulated SLK's it looks much more natural to inherit those attributes from the standard screen */ - SP->_slk->win->_bkgd = stdscr->_bkgd; - SP->_slk->win->_attrs = stdscr->_attrs; - if (SP->_slk->win == stdscr) { - returnCode(OK); - } - else { - werase(SP->_slk->win); - returnCode(wrefresh(SP->_slk->win)); + SP_PARM->_slk->win->_nc_bkgd = StdScreen(SP_PARM)->_nc_bkgd; + WINDOW_ATTRS(SP_PARM->_slk->win) = WINDOW_ATTRS(StdScreen(SP_PARM)); + if (SP_PARM->_slk->win == StdScreen(SP_PARM)) { + rc = OK; + } else { + werase(SP_PARM->_slk->win); + rc = wrefresh(SP_PARM->_slk->win); } + } + returnCode(rc); +} + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_clear(void) +{ + return NCURSES_SP_NAME(slk_clear) (CURRENT_SCREEN); } +#endif