+ X/Open defines no error conditions. In this implementation
+
+ <STRONG>del_curterm</STRONG>
+ returns an error if its terminal parameter is null.
+
+ <STRONG>putp</STRONG> calls <STRONG>tputs</STRONG>, returning the same error-codes.
+
+ <STRONG>restartterm</STRONG>
+ returns an error if the associated call to <STRONG>setupterm</STRONG> returns an
+ error.
+
+ <STRONG>setupterm</STRONG>
+ returns an error if it cannot allocate enough memory, or create
+ the initial windows (stdscr, curscr, newscr). Other error con-
+ ditions are documented above.
+
+ <STRONG>tputs</STRONG>
+ returns an error if the string parameter is null. It does not
+ detect I/O errors: X/Open states that <STRONG>tputs</STRONG> ignores the return
+ value of the output function <EM>putc</EM>.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ SVr2 introduced the terminfo feature. Its programming manual mentioned
+ these low-level functions:
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------------------
+ fixterm restore tty to "in curses" state
+ gettmode establish current tty modes
+ mvcur low level cursor motion
+ putp utility function that uses <STRONG>tputs</STRONG> to send char-
+ acters via <STRONG>putchar</STRONG>.
+ 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 <STRONG>vidputs</STRONG>, but outputs through <STRONG>putchar</STRONG>
+ 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"):
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ ------------------------------------------------
+ tgetent look up termcap entry for given <EM>name</EM>
+ tgetflag get boolean entry for given <EM>id</EM>
+ tgetnum get numeric entry for given <EM>id</EM>
+ tgetstr get string entry for given <EM>id</EM>
+ 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 <STRONG>TERMINAL</STRONG>
+ structure initialized by <STRONG>setupterm</STRONG>.
+
+ SVr3 extended terminfo by adding functions to retrieve capability val-
+ ues (like the termcap interface), and reusing tgoto and tputs:
+
+ <STRONG>Function</STRONG> <STRONG>Description</STRONG>
+ -------------------------------------------
+ tigetflag get boolean entry for given <EM>id</EM>
+ tigetnum get numeric entry for given <EM>id</EM>
+ tigetstr get string entry for given <EM>id</EM>
+
+ SVr3 also replaced several of the SVr2 terminfo functions which had no
+ counterpart in the termcap interface, documenting them as obsolete:
+
+ <STRONG>Function</STRONG> <STRONG>Replaced</STRONG> <STRONG>by</STRONG>
+ -----------------------------
+ crmode cbreak
+ fixterm reset_prog_mode
+ gettmode N/A
+ 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 han-
+ dling functions such as <STRONG>vidattr</STRONG> (which used more than the two parame-
+ ters supported by <STRONG>tgoto</STRONG>).
+
+ SVr3 introduced the functions for switching between terminal descrip-
+ tions, e.g., <STRONG>set_curterm</STRONG>. The various global variables such as <STRONG>bool-</STRONG>
+ <STRONG>names</STRONG> were mentioned in the programming manual at this point.
+
+ SVr4 added the <STRONG>vid_attr</STRONG> and <STRONG>vid_puts</STRONG> 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 <STRONG>vi</STRONG> editor.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+
+</PRE><H3><a name="h3-Legacy-functions">Legacy functions</a></H3><PRE>
+ X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.