+ other than <STRONG>OK</STRONG> or <STRONG>ERR</STRONG> from <STRONG>tputs</STRONG>. It instead returns the length of the
+ string, and does no error checking.
+
+ X/Open Curses notes that after calling <STRONG>mvcur</STRONG>, the <EM>curses</EM> state may not
+ match the actual terminal state, and that an application should touch
+ and refresh the window before resuming normal <EM>curses</EM> calls. Both
+ <EM>ncurses</EM> and SVr4 <EM>curses</EM> 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 <EM>terminfo</EM>
+ function, <STRONG>mvcur</STRONG> is really a <EM>curses</EM> function that 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, as with the <STRONG>cursor_address</STRONG> (<STRONG>cup</STRONG>) capability,
+ 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 terminal to "in <EM>curses</EM>" state
+ <STRONG>gettmode</STRONG> establish current terminal 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 terminal modes to "out of <EM>curses</EM>" state
+
+ <STRONG>resetty</STRONG> reset terminal flags to stored value
+ <STRONG>saveterm</STRONG> save current modes as "in <EM>curses</EM>" state
+ <STRONG>savetty</STRONG> store current terminal 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>.