+/*
+ * scanw and friends
+ *
+ * %G% (Berkeley) @(#)scanw.c 1.1
+ */
+
+# include "curses.ext"
+
+/*
+ * This routine implements a scanf on the standard screen.
+ */
+scanw(fmt, args)
+char *fmt;
+int args; {
+
+ return _sscans(stdscr, fmt, &args);
+}
+/*
+ * This routine implements a scanf on the given window.
+ */
+wscanw(win, fmt, args)
+WINDOW *win;
+char *fmt;
+int args; {
+
+ return _sscans(win, fmt, &args);
+}
+/*
+ * This routine actually executes the scanf from the window.
+ *
+ * This is really a modified version of "sscanf". As such,
+ * it assumes that sscanf interfaces with the other scanf functions
+ * in a certain way. If this is not how your system works, you
+ * will have to modify this routine to use the interface that your
+ * "sscanf" uses.
+ */
+_sscans(win, fmt, args)
+WINDOW *win;
+char *fmt;
+int *args; {
+
+ char buf[100];
+ FILE junk;
+
+ junk._flag = _IOREAD|_IOSTRG;
+ junk._base = junk._ptr = buf;
+ if (wgetstr(win, buf) == ERR)
+ return ERR;
+ junk._cnt = strlen(buf);
+ return _doscan(&junk, fmt, args);
+}