-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <STRONG>refresh</STRONG> and <STRONG>wrefresh</STRONG> routines (or <STRONG>wnoutrefresh</STRONG> and
- <STRONG>doupdate</STRONG>) must be called to get actual output to the ter-
- minal, as other routines merely manipulate data struc-
- tures. The routine <STRONG>wrefresh</STRONG> copies the named window to
- the physical terminal screen, taking into account what is
- already there to do optimizations. The <STRONG>refresh</STRONG> routine is
- the same, using <STRONG>stdscr</STRONG> as the default window. Unless
- <STRONG>leaveok</STRONG> has been enabled, the physical cursor of the ter-
- minal is left at the location of the cursor for that win-
- dow.
-
- The <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG> routines allow multiple
- updates with more efficiency than <STRONG>wrefresh</STRONG> alone. In
- addition to all the window structures, <STRONG>curses</STRONG> keeps two
- data structures representing the terminal screen: a physi-
- cal screen, describing what is actually on the screen, and
- a virtual screen, describing what the programmer wants to
- have on the screen.
-
- The routine <STRONG>wrefresh</STRONG> works by first calling <STRONG>wnoutrefresh</STRONG>,
- which copies the named window to the virtual screen, and
- then calling <STRONG>doupdate</STRONG>, which compares the virtual screen
- to the physical screen and does the actual update. If the
- programmer wishes to output several windows at once, a
- series of calls to <STRONG>wrefresh</STRONG> results in alternating calls
- to <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG>, causing several bursts of
- output to the screen. By first calling <STRONG>wnoutrefresh</STRONG> for
- each window, it is then possible to call <STRONG>doupdate</STRONG> once,
- resulting in only one burst of output, with fewer total
- characters transmitted and less CPU time used. If the <EM>win</EM>
- argument to <STRONG>wrefresh</STRONG> is the global variable <STRONG>curscr</STRONG>, the
- screen is immediately cleared and repainted from scratch.
-
- The phrase "copies the named window to the virtual screen"
- above is ambiguous. What actually happens is that all
- <EM>touched</EM> (changed) lines in the window are copied to the
- virtual screen. This affects programs that use overlap-
- ping windows; it means that if two windows overlap, you
- can refresh them in either order and the overlap region
- will be modified only when it is explicitly changed. (But
- see the section on <STRONG>PORTABILITY</STRONG> below for a warning about
- exploiting this behavior.)
-
- The <STRONG>wredrawln</STRONG> routine indicates to <STRONG>curses</STRONG> that some screen
- lines are corrupted and should be thrown away before any-
- thing is written over them. It touches the indicated
- lines (marking them changed). The routine <STRONG>redrawwin</STRONG>()
- touches the entire window.
-
-
-</PRE>
-<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure,
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.