- For instance, in ncurses <wchar.h> <EM>may</EM> be included if the proper
- symbol is defined, and if ncurses is configured for wide-character
- support. If the header is included, its symbols may be made visi-
- ble. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature test
- macro.
+ For instance, in ncurses <wchar.h> <EM>may</EM> be included if the proper
+ symbol is defined, and if ncurses is configured for wide-character
+ support. If the header is included, its symbols may be made
+ visible. That depends on the value used for <STRONG>_XOPEN_SOURCE</STRONG> feature
+ test macro.
+
+ <STRONG>o</STRONG> X/Open Curses documents one required header, in a special case:
+ <stdarg.h> before <curses.h> to prototype the <STRONG>vw_printw</STRONG> and
+ <STRONG>vw_scanw</STRONG> functions (as well as the obsolete the <STRONG>vwprintw</STRONG> and
+ <STRONG>vwscanw</STRONG> functions). Each of those uses a <STRONG>va_list</STRONG> parameter.
+
+ The two obsolete functions were introduced in SVr3. The other
+ functions were introduced in X/Open Curses. In between, SVr4
+ curses provided for the possibility that an application might
+ include either <varargs.h> or <stdarg.h>. Initially, that was done
+ by using <STRONG>void*</STRONG> for the <STRONG>va_list</STRONG> parameter. Later, a special type
+ (defined in <stdio.h>) was introduced, to allow for compiler type-
+ checking. That special type is always available, because <stdio.h>
+ is always included by <curses.h>.
+
+ None of the X/Open Curses implementations require an application to
+ include <stdarg.h> before <curses.h> because they either have
+ allowed for a special type, or (like ncurses) include <stdarg.h>
+ directly to provide a portable interface.