X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fbase%2Flib_refresh.c;h=4579cbf81162053c2a8284120e4c85cf2afc9000;hb=1ddfa997c0965852dbdc738aa6d92c0cd0975f3b;hp=a77bc487f21c4f8cd4d7dfc0677b473cda93fa60;hpb=bd75bb126bdbd8300fe73e8e8b2fe97bd07eef75;p=ncurses.git diff --git a/ncurses/base/lib_refresh.c b/ncurses/base/lib_refresh.c index a77bc487..4579cbf8 100644 --- a/ncurses/base/lib_refresh.c +++ b/ncurses/base/lib_refresh.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright 2020,2021 Thomas E. Dickey * + * Copyright 1998-2010,2011 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 * @@ -42,7 +43,7 @@ #include -MODULE_ID("$Id: lib_refresh.c,v 1.45 2011/06/25 19:02:22 Vassili.Courzakis Exp $") +MODULE_ID("$Id: lib_refresh.c,v 1.47 2021/11/06 22:22:03 tom Exp $") NCURSES_EXPORT(int) wrefresh(WINDOW *win) @@ -91,13 +92,21 @@ wnoutrefresh(WINDOW *win) T((T_CALLED("wnoutrefresh(%p)"), (void *) win)); - /* - * This function will break badly if we try to refresh a pad. - */ - if ((win == 0) - || (win->_flags & _ISPAD)) + if (win == NULL) returnCode(ERR); + /* + * Handle pads as a special case. + */ + if (IS_PAD(win)) { + returnCode(pnoutrefresh(win, + win->_pad._pad_y, + win->_pad._pad_x, + win->_pad._pad_top, + win->_pad._pad_left, + win->_pad._pad_bottom, + win->_pad._pad_right)); + } #ifdef TRACE if (USE_TRACEF(TRACE_UPDATE)) { _tracedump("...win", win);