summaryrefslogtreecommitdiffstats
path: root/contrib/ncurses/ncurses/base/lib_pad.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/ncurses/base/lib_pad.c')
-rw-r--r--contrib/ncurses/ncurses/base/lib_pad.c56
1 files changed, 33 insertions, 23 deletions
diff --git a/contrib/ncurses/ncurses/base/lib_pad.c b/contrib/ncurses/ncurses/base/lib_pad.c
index af7dd3b..8a9dae8 100644
--- a/contrib/ncurses/ncurses/base/lib_pad.c
+++ b/contrib/ncurses/ncurses/base/lib_pad.c
@@ -40,9 +40,9 @@
#include <curses.priv.h>
-MODULE_ID("$Id: lib_pad.c,v 1.29 2000/04/29 21:19:44 tom Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.32 2000/12/10 02:43:27 tom Exp $")
-WINDOW *
+NCURSES_EXPORT(WINDOW *)
newpad(int l, int c)
{
WINDOW *win;
@@ -60,7 +60,7 @@ newpad(int l, int c)
for (i = 0; i < l; i++) {
if_USE_SCROLL_HINTS(win->_line[i].oldindex = _NEWINDEX);
if ((win->_line[i].text = typeCalloc(chtype, ((size_t) c))) == 0) {
- _nc_freewin(win);
+ (void) _nc_freewin(win);
returnWin(0);
}
for (ptr = win->_line[i].text; ptr < win->_line[i].text + c;)
@@ -70,8 +70,9 @@ newpad(int l, int c)
returnWin(win);
}
-WINDOW *
-subpad(WINDOW *orig, int l, int c, int begy, int begx)
+NCURSES_EXPORT(WINDOW *)
+subpad
+(WINDOW *orig, int l, int c, int begy, int begx)
{
WINDOW *win = (WINDOW *) 0;
@@ -85,33 +86,38 @@ subpad(WINDOW *orig, int l, int c, int begy, int begx)
returnWin(win);
}
-int
-prefresh(WINDOW *win, int pminrow, int pmincol,
- int sminrow, int smincol, int smaxrow, int smaxcol)
+NCURSES_EXPORT(int)
+prefresh
+(WINDOW *win, int pminrow, int pmincol,
+ int sminrow, int smincol, int smaxrow, int smaxcol)
{
T((T_CALLED("prefresh()")));
if (pnoutrefresh(win, pminrow, pmincol, sminrow, smincol, smaxrow,
- smaxcol) != ERR
+ smaxcol) != ERR
&& doupdate() != ERR) {
returnCode(OK);
}
returnCode(ERR);
}
-int
-pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
- int sminrow, int smincol, int smaxrow, int smaxcol)
+NCURSES_EXPORT(int)
+pnoutrefresh
+(WINDOW *win, int pminrow, int pmincol,
+ int sminrow, int smincol, int smaxrow, int smaxcol)
{
- const int my_len = 2; /* parameterize the threshold for hardscroll */
NCURSES_SIZE_T i, j;
NCURSES_SIZE_T m, n;
NCURSES_SIZE_T pmaxrow;
NCURSES_SIZE_T pmaxcol;
+
+#if USE_SCROLL_HINTS
+ const int my_len = 2; /* parameterize the threshold for hardscroll */
NCURSES_SIZE_T displaced;
bool wide;
+#endif
T((T_CALLED("pnoutrefresh(%p, %d, %d, %d, %d, %d, %d)"),
- win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
+ win, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol));
if (win == 0)
returnCode(ERR);
@@ -155,12 +161,14 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
T(("pad being refreshed"));
+#if USE_SCROLL_HINTS
if (win->_pad._pad_y >= 0) {
displaced = pminrow - win->_pad._pad_y
- (sminrow - win->_pad._pad_top);
T(("pad being shifted by %d line(s)", displaced));
} else
displaced = 0;
+#endif
/*
* For pure efficiency, we'd want to transfer scrolling information
@@ -176,11 +184,13 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
* windows). Note that changing this formula will not break any code,
* merely change the costs of various update cases.
*/
+#if USE_SCROLL_HINTS
wide = (smincol < my_len && smaxcol > (newscr->_maxx - my_len));
+#endif
for (i = pminrow, m = sminrow + win->_yoffset;
- i <= pmaxrow && m <= newscr->_maxy;
- i++, m++) {
+ i <= pmaxrow && m <= newscr->_maxy;
+ i++, m++) {
register struct ldat *nline = &newscr->_line[m];
register struct ldat *oline = &win->_line[i];
@@ -227,7 +237,7 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
for (i = pminrow - 1; (i >= 0) && (win->_line[i].oldindex >= 0); i--)
win->_line[i].oldindex = _NEWINDEX;
for (i = pmaxrow + 1; (i <= win->_maxy)
- && (win->_line[i].oldindex >= 0); i++)
+ && (win->_line[i].oldindex >= 0); i++)
win->_line[i].oldindex = _NEWINDEX;
#endif
@@ -269,7 +279,7 @@ pnoutrefresh(WINDOW *win, int pminrow, int pmincol,
returnCode(OK);
}
-int
+NCURSES_EXPORT(int)
pechochar(WINDOW *pad, const chtype ch)
{
T((T_CALLED("pechochar(%p, %s)"), pad, _tracechtype(ch)));
@@ -282,11 +292,11 @@ pechochar(WINDOW *pad, const chtype ch)
waddch(pad, ch);
prefresh(pad, pad->_pad._pad_y,
- pad->_pad._pad_x,
- pad->_pad._pad_top,
- pad->_pad._pad_left,
- pad->_pad._pad_bottom,
- pad->_pad._pad_right);
+ pad->_pad._pad_x,
+ pad->_pad._pad_top,
+ pad->_pad._pad_left,
+ pad->_pad._pad_bottom,
+ pad->_pad._pad_right);
returnCode(OK);
}
OpenPOWER on IntegriCloud