scrl(), scroll(), wscrl()

scroll a curses window 

Curses Function


#include <curses.h>

int scroll(WINDOW *win);

int scrl(int n);

int wscrl(WINDOW *win, int n);


The scroll() routine scrolls the window up one line. This involves moving the lines in the window data structure. As an optimization, if the scrolling region of the window is the entire screen, the physical screen may be scrolled at the same time.

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().


These routines return ERR upon failure, and OK (SVr4 only specifies "an integer value other than ERR") upon successful completion.


Note that scrl() and scroll() may be macros.

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, in order to leave open the possibility of smarter optimization of multiple scroll actions on the next update.

Neither the SVr4 documentation specifies whether the current attribute or current color-pair of blanks generated by the scroll function is zeroed. Under this implementation it is.


The XSI Curses standard, Issue 4 describes these functions.


PTC MKS Toolkit for Professional Developers
PTC MKS Toolkit for Enterprise Developers
PTC MKS Toolkit for Enterprise Developers 64-Bit Edition


curs_outopts(), curses()

PTC MKS Toolkit 10.3 Documentation Build 39.