+ the actual terminal state, and that an application should touch and
+ refresh the window before resuming normal curses calls. Both <EM>ncurses</EM>
+ and System V Release 4 curses implement <STRONG>mvcur</STRONG> using the <EM>SCREEN</EM> data
+ allocated in either <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>. So though it is documented as
+ a terminfo function, <STRONG>mvcur</STRONG> is really a curses function which is not
+ well specified.
+
+ X/Open Curses states that the old location must be given for <STRONG>mvcur</STRONG> to
+ accommodate terminals that lack absolute cursor positioning. <EM>ncurses</EM>
+ allows the caller to use -1 for either or both old coordinates. The -1
+ tells <EM>ncurses</EM> that the old location is unknown, and that it must use
+ only absolute motion (such as <EM>cursor</EM><STRONG>_</STRONG><EM>address</EM>) rather than the least
+ costly combination of absolute and relative motion.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr2 (1984) introduced the <EM>terminfo</EM> feature. Its programming manual
+ mentioned the following low-level functions.
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>fixterm</STRONG> restore tty to "in curses" state
+ <STRONG>gettmode</STRONG> establish current tty modes
+ <STRONG>mvcur</STRONG> low level cursor motion
+ <STRONG>putp</STRONG> use <STRONG>tputs</STRONG> to send characters via <EM>putchar</EM>
+ <STRONG>resetterm</STRONG> set tty modes to "out of curses" state
+ <STRONG>resetty</STRONG> reset tty flags to stored value
+ <STRONG>saveterm</STRONG> save current modes as "in curses" state
+ <STRONG>savetty</STRONG> store current tty flags
+ <STRONG>setterm</STRONG> establish terminal with given type
+ <STRONG>setupterm</STRONG> establish terminal with given type
+ <STRONG>tparm</STRONG> interpolate parameters into string capability
+ <STRONG>tputs</STRONG> apply padding information to a string
+ <STRONG>vidattr</STRONG> like <STRONG>vidputs</STRONG>, but output through <EM>putchar</EM>
+ <STRONG>vidputs</STRONG> write string to terminal, applying specified attributes
+
+ The programming manual also mentioned functions provided for <EM>termcap</EM>
+ compatibility (commenting that they "may go away at a later date").
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>tgetent</STRONG> look up <EM>termcap</EM> entry for given <EM>name</EM>
+ <STRONG>tgetflag</STRONG> get Boolean entry for given <EM>id</EM>
+ <STRONG>tgetnum</STRONG> get numeric entry for given <EM>id</EM>
+ <STRONG>tgetstr</STRONG> get string entry for given <EM>id</EM>
+ <STRONG>tgoto</STRONG> apply parameters to given capability
+ <STRONG>tputs</STRONG> write characters via a function parameter, applying padding
+
+ Early <EM>terminfo</EM> programs obtained capability values from the <EM>TERMINAL</EM>
+ structure initialized by <STRONG>setupterm</STRONG>.
+
+ SVr3 (1987) extended <EM>terminfo</EM> by adding functions to retrieve
+ capability values (like the <EM>termcap</EM> interface), and reusing <STRONG>tgoto</STRONG> and
+ <STRONG>tputs</STRONG>.
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------------------
+ <STRONG>tigetflag</STRONG> get Boolean entry for given <EM>id</EM>
+ <STRONG>tigetnum</STRONG> get numeric entry for given <EM>id</EM>
+ <STRONG>tigetstr</STRONG> get string entry for given <EM>id</EM>
+
+ SVr3 also replaced several of the SVr2 <EM>terminfo</EM> functions that had no
+ counterpart in the <EM>termcap</EM> interface, documenting them as obsolete.
+
+ <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG>
+ ------------------------------------------------------------------------
+ crmode cbreak
+ fixterm reset_prog_mode
+ gettmode <EM>n/a</EM>
+ nocrmode nocbreak
+ resetterm reset_shell_mode
+ saveterm def_prog_mode
+ setterm setupterm
+
+ SVr3 kept the <STRONG>mvcur</STRONG>, <STRONG>vidattr</STRONG>, and <STRONG>vidputs</STRONG> functions, along with <STRONG>putp</STRONG>,
+ <STRONG>tparm</STRONG>, and <STRONG>tputs</STRONG>. The latter were needed to support padding, and to
+ handle capabilities accessed by functions such as <STRONG>vidattr</STRONG> (which used
+ more than the two parameters supported by <STRONG>tgoto</STRONG>).
+
+ SVr3 introduced the functions for switching between terminal
+ descriptions; for example, <STRONG>set_curterm</STRONG>. Some changes reflected
+ incremental improvements to the SVr2 library.