+ <STRONG>setupterm</STRONG>
+ returns an error if it cannot allocate enough
+ memory, or create the initial windows (stdscr,
+ curscr, newscr). Other error conditions 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-PORTABILITY">PORTABILITY</a></H2><PRE>
+ X/Open notes that <STRONG>vidattr</STRONG> and <STRONG>vidputs</STRONG> may be macros.
+
+ The function <STRONG>setterm</STRONG> is not described by X/Open and must
+ be considered non-portable. All other functions are as
+ described by X/Open.
+
+ <STRONG>setupterm</STRONG> copies the terminal name to the array <STRONG>ttytype</STRONG>.
+ This is not part of X/Open Curses, but is assumed by some
+ applications.
+
+ If configured to use the terminal-driver, e.g., for the
+ MinGW port,
+
+ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> interprets a missing/empty TERM variable as
+ the special value "unknown".
+
+ <STRONG>o</STRONG> <STRONG>setupterm</STRONG> allows explicit use of the the windows con-
+ sole driver by checking if $TERM is set to "#win32con"
+ or an abbreviation of that string.
+
+ Older versions of <STRONG>ncurses</STRONG> assumed that the file descriptor
+ passed to <STRONG>setupterm</STRONG> from <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> uses buffered
+ I/O, and would write to the corresponding stream. In ad-
+ dition to the limitation that the terminal was left in
+ block-buffered mode on exit (like System V curses), it was
+ problematic because <STRONG>ncurses</STRONG> did not allow a reliable way
+ to cleanup on receiving SIGTSTP. The current version uses
+ output buffers managed directly by <STRONG>ncurses</STRONG>. Some of the
+ low-level functions described in this manual page write to
+ the standard output. They are not signal-safe. The high-
+ level functions in <STRONG>ncurses</STRONG> use alternate versions of these
+ functions using the more reliable buffering scheme.