/* * Copyright (c) 1980 Regents of the University of California. * All rights reserved. The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */ #if !defined(lint) && !defined(NOSCCS) static char sccsid[] = "@(#)scanw.c 5.1 (Berkeley) 6/7/85"; #endif /* * scanw and friends * */ # 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); }