diff options
author | ache <ache@FreeBSD.org> | 1994-10-11 20:29:42 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-10-11 20:29:42 +0000 |
commit | 212687229499100c4538f6f11c0ac0210ba81ae0 (patch) | |
tree | c05847402d56ae7a8dc446376adc764f1e40f4a0 /sys/kern/tty_compat.c | |
parent | 7d96472389b5d0a7516235c5ffb7bd5c0d74fe80 (diff) | |
download | FreeBSD-src-212687229499100c4538f6f11c0ac0210ba81ae0.zip FreeBSD-src-212687229499100c4538f6f11c0ac0210ba81ae0.tar.gz |
Better IXANY/IXOFF processing into setflags.
Cosmetique 'tab' fix
Diffstat (limited to 'sys/kern/tty_compat.c')
-rw-r--r-- | sys/kern/tty_compat.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/sys/kern/tty_compat.c b/sys/kern/tty_compat.c index 8b6f70f..8a43844 100644 --- a/sys/kern/tty_compat.c +++ b/sys/kern/tty_compat.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)tty_compat.c 8.1 (Berkeley) 6/10/93 - * $Id: tty_compat.c,v 1.5 1994/10/08 22:33:40 phk Exp $ + * $Id: tty_compat.c,v 1.6 1994/10/11 20:04:49 ache Exp $ */ /* @@ -290,8 +290,8 @@ ttcompatgetflags(tp) if ((iflag&IXANY) == 0) flags |= DECCTQ; flags |= lflag&(ECHO|TOSTOP|FLUSHO|PENDIN|NOFLSH); -if (ttydebug) - printf("getflags: %x\n", flags); + if (ttydebug) + printf("getflags: %x\n", flags); return (flags); } @@ -307,7 +307,7 @@ ttcompatsetflags(tp, t) register long cflag = t->c_cflag; if (flags & RAW) { - iflag &= IXOFF|IXANY; + iflag = 0; lflag &= ~(ECHOCTL|ISIG|ICANON|IEXTEN); } else { iflag |= BRKINT|IXON|IMAXBEL; @@ -333,7 +333,7 @@ ttcompatsetflags(tp, t) else lflag &= ~ECHO; - cflag &= ~(CSIZE|PARENB); + cflag &= ~(CSIZE|PARENB); if (flags&(RAW|LITOUT|PASS8)) { cflag |= CS8; if (!(flags&(RAW|PASS8)) @@ -362,6 +362,10 @@ ttcompatsetflags(tp, t) iflag |= IXOFF; else iflag &= ~IXOFF; + if ((flags&DECCTQ) == 0) + iflag |= IXANY; + else + iflag &= ~IXANY; t->c_iflag = iflag; t->c_oflag = oflag; t->c_lflag = lflag; @@ -395,6 +399,10 @@ ttcompatsetlflags(tp, t) lflag |= ECHOCTL; else lflag &= ~ECHOCTL; + if (flags&TANDEM) + iflag |= IXOFF; + else + iflag &= ~IXOFF; if ((flags&DECCTQ) == 0) iflag |= IXANY; else @@ -418,7 +426,7 @@ ttcompatsetlflags(tp, t) * the change is not available here and skipping the RAW case would * make the code different from above. */ - cflag &= ~(CSIZE|PARENB); + cflag &= ~(CSIZE|PARENB); if (flags&(RAW|LITOUT|PASS8)) { cflag |= CS8; if (!(flags&(RAW|PASS8)) |