diff options
author | ache <ache@FreeBSD.org> | 1995-02-23 03:02:38 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1995-02-23 03:02:38 +0000 |
commit | 8f431ad70aa5f27676cd31f2cf4008e8762ebcae (patch) | |
tree | 8c8a0515546335001dc5d5452b5ce0444b6a06ec | |
parent | 2fb04ea7c6e1feaae74a482a3d3b56a57e98997b (diff) | |
download | FreeBSD-src-8f431ad70aa5f27676cd31f2cf4008e8762ebcae.zip FreeBSD-src-8f431ad70aa5f27676cd31f2cf4008e8762ebcae.tar.gz |
Add two IXOFF checks to not confuse with CRTS_IFLOW.
Now TS_TBLOCK used as general input flow flag
for both IXOFF and CRTS_IFLOW cases.
-rw-r--r-- | sys/kern/tty.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index dde155f..82907ac 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)tty.c 8.8 (Berkeley) 1/21/94 - * $Id: tty.c,v 1.28 1995/02/15 22:25:51 ache Exp $ + * $Id: tty.c,v 1.29 1995/02/22 23:20:51 ache Exp $ */ #include "snp.h" @@ -1114,7 +1114,8 @@ ttyblock(tp) if (total >= TTYHOG / 2 && !ISSET(tp->t_state, TS_TBLOCK) && (!ISSET(tp->t_lflag, ICANON) || tp->t_canq.c_cc > 0)) { - if (tp->t_cc[VSTOP] != _POSIX_VDISABLE && + if (ISSET(tp->t_iflag, IXOFF) && + tp->t_cc[VSTOP] != _POSIX_VDISABLE && putc(tp->t_cc[VSTOP], &tp->t_outq) == 0 || ISSET(tp->t_cflag, CRTS_IFLOW)) { SET(tp->t_state, TS_TBLOCK); @@ -1495,7 +1496,8 @@ read: */ s = spltty(); if (ISSET(tp->t_state, TS_TBLOCK) && tp->t_rawq.c_cc < TTYHOG/5) { - if (cc[VSTART] != _POSIX_VDISABLE && + if (ISSET(tp->t_iflag, IXOFF) && + cc[VSTART] != _POSIX_VDISABLE && putc(cc[VSTART], &tp->t_outq) == 0 || ISSET(tp->t_cflag, CRTS_IFLOW)) { CLR(tp->t_state, TS_TBLOCK); |