+</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
+ While <STRONG>scanw</STRONG> was implemented in 4BSD, none of the BSD releases used it
+ until 4.4BSD (in a game). 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 improvement, BSD curses did not use function prototypes
+ (or even declare functions) in the <curses.h> header until 1992.
+
+ SVr2 documented <STRONG>scanw</STRONG>, <STRONG>wscanw</STRONG> tersely as "scanf through <EM>stdscr</EM>" and
+ tersely as "scanf through <EM>win</EM>", respectively.
+
+ SVr3 added <STRONG>mvscanw</STRONG>, and <STRONG>mvwscanw</STRONG>, with a three-line summary saying that
+ they were analogous to <STRONG>scanf(3)</STRONG>, explaining that the string which would
+ be output from <STRONG>scanf(3)</STRONG> would instead be output using <STRONG>waddstr</STRONG> on the
+ given window. SVr3 also added <STRONG>vwscanw</STRONG>, saying that the third parameter
+ is a <STRONG>va_list</STRONG>, defined in <varargs.h>, and referring the reader to the
+ manual pages for <EM>varargs</EM> and <STRONG>vprintf</STRONG> for detailed descriptions.
+ (Because the SVr3 documentation does not mention <STRONG>vscanf</STRONG>, that reference
+ to <STRONG>vprintf</STRONG> may not be an error).
+
+ SVr4 added no new variations of <STRONG>scanw</STRONG>, but provided for using
+ <varargs.h> or <stdarg.h> to define the <STRONG>va_list</STRONG> type.
+
+ X/Open Curses added <STRONG>vw_scanw</STRONG> to replace <STRONG>vwscanw</STRONG>, stating that its
+ <STRONG>va_list</STRONG> definition requires <stdarg.h>.
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ In this implementation, <STRONG>vw_scanw</STRONG> and <STRONG>vwscanw</STRONG> are equivalent, to support
+ legacy applications. However, the latter (<STRONG>vwscanw</STRONG>) is obsolete:
+
+ <STRONG>o</STRONG> The XSI Curses standard, Issue 4 described these functions, noting
+ that the function <STRONG>vwscanw</STRONG> is marked TO BE WITHDRAWN, and is to be
+ replaced by a function <STRONG>vw_scanw</STRONG> using the <STRONG><stdarg.h></STRONG> interface.
+
+ <STRONG>o</STRONG> The Single Unix Specification, Version 2 states that <STRONG>vw_scanw</STRONG> is
+ preferred to <STRONG>vwscanw</STRONG> since the latter requires including
+ <STRONG><varargs.h></STRONG>, which cannot be used in the same file as <STRONG><stdarg.h></STRONG>.
+ This implementation uses <STRONG><stdarg.h></STRONG> for both, because that header
+ is included in <STRONG><curses.h</STRONG>>.
+
+ <STRONG>o</STRONG> X/Open Curses, Issue 5 (December 2007) marked <STRONG>vwscanw</STRONG> (along with
+ <STRONG>vwprintw</STRONG> and the termcap interface) as withdrawn.
+
+ Both XSI and The Single Unix Specification, Version 2 state that these
+ functions return <STRONG>ERR</STRONG> or <STRONG>OK</STRONG>.
+
+ <STRONG>o</STRONG> Since the underlying <STRONG>scanf(3)</STRONG> can return the number of items
+ scanned, and the SVr4 code was documented to use this feature, this
+ is probably an editing error which was introduced in XSI, rather
+ than being done intentionally.
+
+ <STRONG>o</STRONG> This implementation returns the number of items scanned, for
+ compatibility with SVr4 curses. As of 2018, NetBSD curses also
+ returns the number of items scanned. Both ncurses and NetBSD
+ curses call <STRONG>vsscanf</STRONG> to scan the string, which returns <STRONG>EOF</STRONG> on error.
+
+ <STRONG>o</STRONG> Portable applications should only test if the return value is <STRONG>ERR</STRONG>,
+ since the <STRONG>OK</STRONG> value (zero) is likely to be misleading.
+
+ One possible way to get useful results would be to use a "%n"
+ conversion at the end of the format string to ensure that something
+ was processed.
+
+
+</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>, <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>, <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>,
+ <STRONG>scanf(3)</STRONG>.