https://invisible-island.net/ncurses/man/
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. The text of the top line in the window disappears and the bottom line is populated 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). scrl and wscrl scrolls the specified window win 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). ncurses(3x) describes the scrl variant of this function. 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. ncurses returns ERR if scrolling is not enabled in the window, for example with scrollok(3x), or if the WINDOW pointer is null.
scrl and wscrl 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 defines no error conditions. SVr4 specifies only "an integer value other than ERR" as a successful return value. 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.
curses(3x), curs_outopts(3x) ncurses 6.5 2024-09-22 curs_scroll(3x)