|
|
1.1 ! root 1: /* ! 2: * scanw and friends ! 3: * ! 4: * 1/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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.