|
|
1.1 root 1: /*
2: * Copyright (c) 1981 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution and use in source and binary forms are permitted
6: * provided that: (1) source distributions retain this entire copyright
7: * notice and comment, and (2) distributions including binaries display
8: * the following acknowledgement: ``This product includes software
9: * developed by the University of California, Berkeley and its contributors''
10: * in the documentation or other materials provided with the distribution
11: * and in all advertising materials mentioning features or use of this
12: * software. Neither the name of the University nor the names of its
13: * contributors may be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)scanw.c 5.4 (Berkeley) 6/1/90";
22: #endif /* not lint */
23:
24: /*
25: * scanw and friends
26: *
27: */
28:
29: # include "curses.ext"
30:
31: /*
32: * This routine implements a scanf on the standard screen.
33: */
34: scanw(fmt, args)
35: char *fmt;
36: int args; {
37:
38: return _sscans(stdscr, fmt, &args);
39: }
40: /*
41: * This routine implements a scanf on the given window.
42: */
43: wscanw(win, fmt, args)
44: WINDOW *win;
45: char *fmt;
46: int args; {
47:
48: return _sscans(win, fmt, &args);
49: }
50: /*
51: * This routine actually executes the scanf from the window.
52: *
53: * This is really a modified version of "sscanf". As such,
54: * it assumes that sscanf interfaces with the other scanf functions
55: * in a certain way. If this is not how your system works, you
56: * will have to modify this routine to use the interface that your
57: * "sscanf" uses.
58: */
59: _sscans(win, fmt, args)
60: WINDOW *win;
61: char *fmt;
62: int *args; {
63:
64: char buf[100];
65: FILE junk;
66:
67: junk._flag = _IOREAD|_IOSTRG;
68: junk._base = junk._ptr = buf;
69: if (wgetstr(win, buf) == ERR)
70: return ERR;
71: junk._cnt = strlen(buf);
72: return _doscan(&junk, fmt, args);
73: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.