summaryrefslogtreecommitdiff
path: root/lib/libcurses/base/lib_pad.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libcurses/base/lib_pad.c')
-rw-r--r--lib/libcurses/base/lib_pad.c58
1 files changed, 34 insertions, 24 deletions
diff --git a/lib/libcurses/base/lib_pad.c b/lib/libcurses/base/lib_pad.c
index 5289ef67cc5..f53f6a0f2a6 100644
--- a/lib/libcurses/base/lib_pad.c
+++ b/lib/libcurses/base/lib_pad.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lib_pad.c,v 1.3 2000/06/19 03:53:44 millert Exp $ */
+/* $OpenBSD: lib_pad.c,v 1.4 2001/01/22 18:01:42 millert Exp $ */
/****************************************************************************
* Copyright (c) 1998,2000 Free Software Foundation, Inc. *
@@ -42,9 +42,9 @@
#include <curses.priv.h>
-MODULE_ID("$From: lib_pad.c,v 1.29 2000/04/29 21:19:44 tom Exp $")
+MODULE_ID("$From: 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;
@@ -62,7 +62,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;)
@@ -72,8 +72,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;
@@ -87,33 +88,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);
@@ -157,12 +163,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
@@ -178,11 +186,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];
@@ -229,7 +239,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
@@ -271,7 +281,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)));
@@ -284,11 +294,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);
}