+ <B>tputs</B>
+ returns an error if the string parameter is null. It does not
+ detect I/O errors: X/Open states that <B>tputs</B> ignores the return
+ value of the output function <I>putc</I>.
+
+
+</PRE><H3><a name="h3-Compatibility-macros">Compatibility macros</a></H3><PRE>
+ This implementation provides a few macros for compatibility with sys-
+ tems before SVr4 (see <B>HISTORY</B>). Those include <B>crmode</B>, <B>fixterm</B>,
+ <B>gettmode</B>, <B>nocrmode</B>, <B>resetterm</B>, <B>saveterm</B>, and <B>setterm</B>.
+
+ In SVr4, those are found in <B><curses.h></B>, but except for <B>setterm</B>, are
+ likewise macros. The one function, <B>setterm</B>, is mentioned in the manual
+ page. The manual page notes that the <B>setterm</B> routine was replaced by
+ <B>setupterm</B>, stating that the call:
+
+ <B>setupterm(</B><I>term</I><B>,</B> <B>1,</B> <B>(int</B> <B>*)0)</B>
+
+ provides the same functionality as <B>setterm(</B><I>term</I><B>)</B>, and is not recommend-
+ ed for new programs. This implementation provides each of those sym-
+ bols as macros for BSD compatibility,
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr2 introduced the terminfo feature. Its programming manual mentioned
+ these low-level functions:
+
+ <B>Function</B> <B>Description</B>
+ ------------------------------------------------------------
+ fixterm restore tty to "in curses" state
+ gettmode establish current tty modes
+ mvcur low level cursor motion
+ putp utility function that uses <B>tputs</B> to send char-
+ acters via <B>putchar</B>.
+ resetterm set tty modes to "out of curses" state
+ resetty reset tty flags to stored value
+ saveterm save current modes as "in curses" state
+ savetty store current tty flags
+ setterm establish terminal with given type
+ setupterm establish terminal with given type
+ tparm instantiate a string expression with parameters
+ tputs apply padding information to a string
+ vidattr like <B>vidputs</B>, but outputs through <B>putchar</B>
+ vidputs output a string to put terminal in a specified
+ video attribute mode
+
+ The programming manual also mentioned functions provided for termcap
+ compatibility (commenting that they "may go away at a later date"):
+
+ <B>Function</B> <B>Description</B>
+ ------------------------------------------------
+ tgetent look up termcap entry for given <I>name</I>
+ tgetflag get boolean entry for given <I>id</I>
+ tgetnum get numeric entry for given <I>id</I>
+ tgetstr get string entry for given <I>id</I>
+ tgoto apply parameters to given capability
+ tputs apply padding to capability, calling
+ a function to put characters
+
+ Early terminfo programs obtained capability values from the <B>TERMINAL</B>
+ structure initialized by <B>setupterm</B>.
+
+ SVr3 extended terminfo by adding functions to retrieve capability val-
+ ues (like the termcap interface), and reusing tgoto and tputs:
+
+ <B>Function</B> <B>Description</B>
+ -------------------------------------------
+ tigetflag get boolean entry for given <I>id</I>
+ tigetnum get numeric entry for given <I>id</I>
+ tigetstr get string entry for given <I>id</I>
+
+ SVr3 also replaced several of the SVr2 terminfo functions which had no
+ counterpart in the termcap interface, documenting them as obsolete:
+
+ <B>Function</B> <B>Replaced</B> <B>by</B>
+ -----------------------------
+ crmode cbreak
+ fixterm reset_prog_mode
+ gettmode N/A
+ nocrmode nocbreak
+ resetterm reset_shell_mode
+ saveterm def_prog_mode
+ setterm setupterm
+
+ SVr3 kept the <B>mvcur</B>, <B>vidattr</B> and <B>vidputs</B> functions, along with <B>putp</B>,
+ <B>tparm</B> and <B>tputs</B>. The latter were needed to support padding, and han-
+ dling functions such as <B>vidattr</B> (which used more than the two parame-
+ ters supported by <B>tgoto</B>).
+
+ SVr3 introduced the functions for switching between terminal descrip-
+ tions, e.g., <B>set_curterm</B>. The various global variables such as <B>bool-</B>
+ <B>names</B> were mentioned in the programming manual at this point.
+
+ SVr4 added the <B>vid_attr</B> and <B>vid_puts</B> functions.
+
+ There are other low-level functions declared in the curses header files
+ on Unix systems, but none were documented. The functions marked "obso-
+ lete" remained in use by the Unix <B>vi</B> editor.