scr_dump, scr_restore, scr_init, scr_set - read (write) a curses screen from (to) a file
#include <curses.h> int scr_dump(const char *filename); int scr_restore(const char *filename); int scr_init(const char *filename); int scr_set(const char *filename);
The scr_dump routine dumps the current contents of the virtual screen to the file filename. The scr_restore routine sets the virtual screen to the contents of filename, which must have been written using scr_dump. The next call to doupdate restores the screen to the way it looked in the dump file. The scr_init routine reads in the contents of filename and uses them to initialize the curses data structures about what the terminal currently has on its screen. If the da- ta is determined to be valid, curses bases its next update of the screen on this information rather than clearing the screen and starting from scratch. scr_init is used after initscr or a system call to share the screen with another process which has done a scr_dump after its endwin call. The data is declared invalid if the terminfo capabilities rmcup and nrrmc exist; also if the terminal has been writ- ten to since the preceding scr_dump call. The scr_set routine is a combination of scr_restore and scr_init. It tells the program that the information in filename is what is currently on the screen, and also what the program wants on the screen. This can be thought of as a screen inheritance function. To read (write) a window from (to) a file, use the getwin and putwin routines [see curs_util(3x)].
All routines return the integer ERR upon failure and OK upon success. X/Open defines no error conditions. In this implementa- tion, each will return an error if the file cannot be opened.
Note that scr_init, scr_set, and scr_restore may be macros.
The XSI Curses standard, Issue 4, describes these func- tions (adding the const qualifiers). The SVr4 docs merely say under scr_init that the dump data is also considered invalid "if the time-stamp of the tty is old" but do not define "old".
curses(3x), curs_initscr(3x), curs_refresh(3x), curs_util(3x), system(3) curs_scr_dump(3x)