curs_scroll(3x) Library calls curs_scroll(3x)
scroll, scrl, wscrl - scroll a curses window
#include <curses.h>
int scroll(WINDOW * win);
int scrl(int n);
int wscrl(WINDOW * win, int n);
scroll scrolls the given window up one line. That is, every visible
line we might number i becomes line i-1. wscrl and scrl scroll the
specified window or stdscr, respectively, up or down per the sign of n.
o For positive n, line i+n becomes i (scrolling up);
o for negative n, line i-n becomes i (scrolling down).
A line that scrolls beyond the window boundaries disappears; curses
populates a new one emerging at the opposite boundary with the
background character; see bkgd(3x) (wide-character API users:
bkgrnd(3x)). As an optimization, if the scrolling region of the window
is the entire screen, the physical screen may be scrolled at the same
time; see curscr(3x).
The cursor does not move. These functions perform no operation unless
scrolling is enabled for the window via scrollok(3x).
These functions return ERR upon failure and OK upon success.
In ncurses, they return ERR if
o the curses screen has not been initialized,
o (for functions taking a WINDOW pointer argument) win is a null
pointer, or
o scrolling is not enabled in the window (as by scrollok(3x)).
scroll and scrl may be implemented as macros.
Unusually, there is no wscroll function; scroll behaves as one would
expect wscroll to, accepting a WINDOW pointer argument.
X/Open Curses Issue 4 describes these functions. It specifies no error
conditions for them.
SVr4 describes a successful return value only as "an integer value
other than ERR".
SVr4 indicates that the optimization of physically scrolling
immediately if the scroll region is the entire screen "is" performed,
not "may be" performed. ncurses deliberately does not guarantee that
this occurs, to leave open the possibility of better optimization of
multiple scroll actions on the next update.
Neither SVr4 curses nor X/Open Curses specify whether these functions
zero the attributes or color pair identifier of the background
character. In ncurses, they do not.
4BSD (1980) introduced scroll, defining it as a function.
SVr3.1 (1987) added scrl and wscrl, redefining scroll as a macro
wrapping the latter.
curses(3x), curs_outopts(3x)
ncurses 6.5 2025-04-05 curs_scroll(3x)