xref: /original-bsd/lib/libcurses/scanw.c (revision 5fb3de76)
1 /*
2  * scanw and friends
3  *
4  * 01/26/81 (Berkeley) @(#)scanw.c	1.1
5  */
6 
7 # include	"curses.ext"
8 
9 /*
10  *	This routine implements a scanf on the standard screen.
11  */
12 scanw(fmt, args)
13 char	*fmt;
14 int	args; {
15 
16 	return _sscans(stdscr, fmt, &args);
17 }
18 /*
19  *	This routine implements a scanf on the given window.
20  */
21 wscanw(win, fmt, args)
22 WINDOW	*win;
23 char	*fmt;
24 int	args; {
25 
26 	return _sscans(win, fmt, &args);
27 }
28 /*
29  *	This routine actually executes the scanf from the window.
30  *
31  *	This is really a modified version of "sscanf".  As such,
32  * it assumes that sscanf interfaces with the other scanf functions
33  * in a certain way.  If this is not how your system works, you
34  * will have to modify this routine to use the interface that your
35  * "sscanf" uses.
36  */
37 _sscans(win, fmt, args)
38 WINDOW	*win;
39 char	*fmt;
40 int	*args; {
41 
42 	char	buf[100];
43 	FILE	junk;
44 
45 	junk._flag = _IOREAD|_IOSTRG;
46 	junk._base = junk._ptr = buf;
47 	if (wgetstr(win, buf) == ERR)
48 		return ERR;
49 	junk._cnt = strlen(buf);
50 	return _doscan(&junk, fmt, args);
51 }
52