- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+ only specifies "an integer value other than <STRONG>ERR</STRONG>") upon successful com-
+ pletion.
+
+ X/Open defines no error conditions. In this implementation, an error
+ may be returned if it cannot allocate enough memory for the buffer used
+ to format the results. It will return an error if the window pointer
+ is null.
+
+ Functions with a "mv" prefix first perform a cursor movement using
+ <STRONG>wmove</STRONG>, and return an error if the position is outside the window, or if
+ the window pointer is null.
+
+
+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ While <STRONG>printw</STRONG> was implemented in 4BSD, it was unused until 4.2BSD (which
+ used it in games). That early version of curses was before the ANSI C
+ standard. It did not use <varargs.h>, though that was available. In
+ 1991 (a couple of years after SVr4 was generally available, and after
+ the C standard was published), other developers updated the library,
+ using <stdarg.h> internally in 4.4BSD curses. Even with this improve-
+ ment, BSD curses did not use function prototypes (or even declare func-
+ tions) in the <curses.h> header until 1992.