summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1995-02-23 03:02:38 +0000
committerache <ache@FreeBSD.org>1995-02-23 03:02:38 +0000
commit8f431ad70aa5f27676cd31f2cf4008e8762ebcae (patch)
tree8c8a0515546335001dc5d5452b5ce0444b6a06ec
parent2fb04ea7c6e1feaae74a482a3d3b56a57e98997b (diff)
downloadFreeBSD-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.c8
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);
OpenPOWER on IntegriCloud