-</PRE>
-<H2>DESCRIPTION</H2><PRE>
- The <B>refresh</B> and <B>wrefresh</B> routines (or <B>wnoutrefresh</B> and
- <B>doupdate</B>) must be called to get actual output to the ter-
- minal, as other routines merely manipulate data struc-
- tures. The routine <B>wrefresh</B> copies the named window to
- the physical terminal screen, taking into account what is
- already there in order to do optimizations. The <B>refresh</B>
- routine is the same, using <B>stdscr</B> as the default window.
- Unless <B>leaveok</B> has been enabled, the physical cursor of
- the terminal is left at the location of the cursor for
- that window.
-
- The <B>wnoutrefresh</B> and <B>doupdate</B> routines allow multiple
- updates with more efficiency than <B>wrefresh</B> alone. In
- addition to all the window structures, <B>curses</B> 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 <B>wrefresh</B> works by first calling <B>wnoutrefresh</B>,
- which copies the named window to the virtual screen, and
- then calling <B>doupdate</B>, 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 <B>wrefresh</B> results in alternating calls
- to <B>wnoutrefresh</B> and <B>doupdate</B>, causing several bursts of
- output to the screen. By first calling <B>wnoutrefresh</B> for
- each window, it is then possible to call <B>doupdate</B> once,
- resulting in only one burst of output, with fewer total
- characters transmitted and less CPU time used. If the <I>win</I>
- argument to <B>wrefresh</B> is the global variable <B>curscr</B>, 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
- <I>touched</I> (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 <B>PORTABILITY</B> below for a warning about
- exploiting this behavior.)
-
- The <B>wredrawln</B> routine indicates to <B>curses</B> 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 <B>redrawwin</B>()
- touches the entire window.
-