/********************************************************************** * Copyright (c) Digital Equipment Corporation 1984, 1985, 1986. * * All Rights Reserved. * * Reference "/usr/src/COPYRIGHT" for applicable restrictions. * **********************************************************************/ /* SCCSID: @(#)scanw.c 3.0 4/22/86 */ /* * scanw and friends * * 1/26/81 (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; junk._base = junk._ptr = buf; if (wgetstr(win, buf) == ERR) return ERR; junk._cnt = strlen(buf); return _doscan(&junk, fmt, args); }