version 1.2, 1995/12/26 18:00:34 |
version 1.3, 1996/02/23 14:10:53 |
|
|
/* $NetBSD: wwiomux.c,v 1.4 1995/12/21 10:46:16 mycroft Exp $ */ |
/* $NetBSD: wwiomux.c,v 1.5 1996/02/08 20:45:09 mycroft Exp $ */ |
|
|
/* |
/* |
* Copyright (c) 1983, 1993 |
* Copyright (c) 1983, 1993 |
|
|
#if 0 |
#if 0 |
static char sccsid[] = "@(#)wwiomux.c 8.1 (Berkeley) 6/6/93"; |
static char sccsid[] = "@(#)wwiomux.c 8.1 (Berkeley) 6/6/93"; |
#else |
#else |
static char rcsid[] = "$NetBSD: wwiomux.c,v 1.4 1995/12/21 10:46:16 mycroft Exp $"; |
static char rcsid[] = "$NetBSD: wwiomux.c,v 1.5 1996/02/08 20:45:09 mycroft Exp $"; |
#endif |
#endif |
#endif /* not lint */ |
#endif /* not lint */ |
|
|
|
|
n = w->ww_pty + 1; |
n = w->ww_pty + 1; |
FD_SET(w->ww_pty, &imask); |
FD_SET(w->ww_pty, &imask); |
} |
} |
if (w->ww_obq > w->ww_obp && !w->ww_stopped) |
if (w->ww_obq > w->ww_obp && |
|
!ISSET(w->ww_pflags, WWP_STOPPED)) |
noblock = 1; |
noblock = 1; |
} |
} |
if (wwibq < wwibe) { |
if (wwibq < wwibe) { |
|
|
} else { |
} else { |
wwnwreadp++; |
wwnwreadp++; |
if (*p & TIOCPKT_STOP) |
if (*p & TIOCPKT_STOP) |
w->ww_stopped = 1; |
SET(w->ww_pflags, WWP_STOPPED); |
if (*p & TIOCPKT_START) |
if (*p & TIOCPKT_START) |
w->ww_stopped = 0; |
CLR(w->ww_pflags, WWP_STOPPED); |
if (*p & TIOCPKT_FLUSHWRITE) { |
if (*p & TIOCPKT_FLUSHWRITE) { |
w->ww_stopped = 0; |
CLR(w->ww_pflags, WWP_STOPPED); |
w->ww_obq = w->ww_obp = |
w->ww_obq = w->ww_obp = |
w->ww_ob; |
w->ww_ob; |
} |
} |
|
|
* dies down. |
* dies down. |
*/ |
*/ |
if ((w = wwcurwin) != 0 && w->ww_pty >= 0 && |
if ((w = wwcurwin) != 0 && w->ww_pty >= 0 && |
w->ww_obq > w->ww_obp && !w->ww_stopped) { |
w->ww_obq > w->ww_obp && |
|
!ISSET(w->ww_pflags, WWP_STOPPED)) { |
n = wwwrite(w, w->ww_obp, w->ww_obq - w->ww_obp); |
n = wwwrite(w, w->ww_obp, w->ww_obq - w->ww_obp); |
if ((w->ww_obp += n) == w->ww_obq) |
if ((w->ww_obp += n) == w->ww_obq) |
w->ww_obq = w->ww_obp = w->ww_ob; |
w->ww_obq = w->ww_obp = w->ww_ob; |
|
|
} |
} |
for (w = wwhead.ww_forw; w != &wwhead; w = w->ww_forw) |
for (w = wwhead.ww_forw; w != &wwhead; w = w->ww_forw) |
if (w->ww_pty >= 0 && w->ww_obq > w->ww_obp && |
if (w->ww_pty >= 0 && w->ww_obq > w->ww_obp && |
!w->ww_stopped) { |
!ISSET(w->ww_pflags, WWP_STOPPED)) { |
n = wwwrite(w, w->ww_obp, |
n = wwwrite(w, w->ww_obp, |
w->ww_obq - w->ww_obp); |
w->ww_obq - w->ww_obp); |
if ((w->ww_obp += n) == w->ww_obq) |
if ((w->ww_obp += n) == w->ww_obq) |