int scroll(WINDOW *win);
int scrl(int n);
int wscrl(WINDOW *win, int n);
For positive n, the scrl and wscrl routines scroll the window up n lines (line i+n becomes i); otherwise scroll the window down n lines. This involves moving the lines in the window character image structure. The current cursor position is not changed.
For these functions to work, scrolling must be enabled via scrollok.
X/Open defines no error conditions.
This implementation returns an error if the window pointer is null, or if scrolling is not enabled in the window, e.g., with scrollok.
The SVr4 documentation says that the optimization of physically scrolling immediately if the scroll region is the entire screen "is" performed, not "may be" performed. This implementation deliberately does not guarantee that this will occur, to leave open the possibility of smarter optimization of multiple scroll actions on the next update.
Neither the SVr4 nor the XSI documentation specify whether the current attribute or current color-pair of blanks generated by the scroll function is zeroed. Under this implementation it is.