Commit | Line | Data |
---|---|---|
abbfd2f2 | 1 | #ifndef lint |
ec8d5bfb | 2 | static char *sccsid = "@(#)wwiomux.c 3.3 83/08/26"; |
abbfd2f2 EW |
3 | #endif |
4 | ||
5 | #include "ww.h" | |
6 | ||
7 | wwforce(imask) | |
8 | register int *imask; | |
9 | { | |
bb05dfb5 | 10 | register struct ww **w; |
abbfd2f2 EW |
11 | char buf[512]; |
12 | register int n; | |
abbfd2f2 | 13 | |
bb05dfb5 EW |
14 | for (w = wwindex; w < &wwindex[NWW]; w++) |
15 | if (*w && (*w)->ww_haspty && (*w)->ww_pty >= 0) | |
16 | *imask |= 1 << (*w)->ww_pty; | |
ec8d5bfb EW |
17 | if (*imask == 0) |
18 | return -1; | |
bb05dfb5 EW |
19 | n = select(wwdtablesize, imask, (int *)0, (int *)0, |
20 | (struct timeval *)0); | |
ec8d5bfb | 21 | if (n <= 0) |
abbfd2f2 | 22 | return -1; |
bb05dfb5 EW |
23 | for (w = wwindex; w < &wwindex[NWW]; w++) |
24 | if (*w && (*w)->ww_haspty && (*w)->ww_pty >= 0 | |
25 | && *imask & 1 << (*w)->ww_pty) { | |
26 | n = read((*w)->ww_pty, buf, sizeof buf); | |
4711df8b | 27 | if (n > 0) |
bb05dfb5 | 28 | (void) wwwrite((*w), buf, n); |
abbfd2f2 | 29 | } |
abbfd2f2 EW |
30 | return 0; |
31 | } |