BSD 4_3 release
[unix-history] / usr / src / usr.lib / libcurses / scanw.c
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#ifndef lint
static char sccsid[] = "@(#)scanw.c 5.1 (Berkeley) 6/7/85";
#endif not lint
/*
* 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);
}