ripoffline - reserve a line for a dedicated purpose
#include <curses.h> int ripoffline(int line, int (*init)(WINDOW *win, int columns));
The ripoffline() function reserves a screen line for use by the application.
Any call to ripoffline() must precede the call to initscr() or newterm(). If line is positive, one line is removed from the beginning of stdscr; if line is negative, one line is removed from the end. Removal occurs during the subsequent call to initscr() or newterm(). When the subsequent call is made, the function pointed to by init is called with two arguments: a WINDOW pointer to the one-line window that has been allocated and an integer with the number of columns in the window. The initialisation function cannot use the LINES and COLS external variables and cannot call wrefresh() or doupdate(), but may call wnoutrefresh().
Up to five lines can be ripped off. Calls to ripoffline() above this limit have no effect but report success.
The ripoffline() function returns OK.
No errors are defined.
Calling slk_init() reduces the size of the screen by one line if initscr() eventually uses a line from stdscr to emulate the soft labels. If slk_init() rips off a line, it thereby reduces by one the number of lines an application can reserve by subsequent calls to ripoffline(). Thus, portable applications that use soft label functions should not call ripoffline() more than four times.
When initscr() or newterm() calls the initialisation function pointed to by init, the implementation may pass NULL for the WINDOW pointer argument win. This indicates inability to allocate a one-line window for the line that the call to ripoffline() ripped off. Portable applications should verify that win is not NULL before performing any operation on the window it represents.
doupdate(), initscr(), slk_attroff(), <curses.h>.