diff options
author | bde <bde@FreeBSD.org> | 1995-07-29 08:33:13 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1995-07-29 08:33:13 +0000 |
commit | 76510cf9d286e2b89a8cdc6664328fd420bcd4c4 (patch) | |
tree | 3f2510e6e1376b5f48c1fbe57f418186245fe80b | |
parent | 598027ae378783940e338107ba8df608875baf32 (diff) | |
download | FreeBSD-src-76510cf9d286e2b89a8cdc6664328fd420bcd4c4.zip FreeBSD-src-76510cf9d286e2b89a8cdc6664328fd420bcd4c4.tar.gz |
Don't let IXOFF or ECHONL stop the setting of TS_CAN_BYPASS_L_RINT. IXOFF
is handled at a low level, and ECHONL only applies if ICANON is set,
although tty.c sometimes bogusly applies it when ICANON isn't set.
-rw-r--r-- | sys/dev/cy/cy.c | 14 | ||||
-rw-r--r-- | sys/dev/cy/cy_isa.c | 14 | ||||
-rw-r--r-- | sys/dev/rc/rc.c | 10 | ||||
-rw-r--r-- | sys/dev/sio/sio.c | 12 | ||||
-rw-r--r-- | sys/i386/isa/cy.c | 14 | ||||
-rw-r--r-- | sys/i386/isa/rc.c | 10 | ||||
-rw-r--r-- | sys/i386/isa/sio.c | 12 | ||||
-rw-r--r-- | sys/isa/sio.c | 12 |
8 files changed, 41 insertions, 57 deletions
diff --git a/sys/dev/cy/cy.c b/sys/dev/cy/cy.c index 1bca887..bd8d7a49 100644 --- a/sys/dev/cy/cy.c +++ b/sys/dev/cy/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.11 1995/07/22 16:44:46 bde Exp $ + * $Id: cy.c,v 1.12 1995/07/29 04:05:53 bde Exp $ */ #include "cy.h" @@ -2367,16 +2367,14 @@ disc_optim(tp, t, com) /* * XXX can skip a lot more cases if Smarts. Maybe - * (IGNCR | ISTRIP | IXOFF | IXON) in c_iflag. But perhaps we + * (IGNCR | ISTRIP | IXON) in c_iflag. But perhaps we * shouldn't skip if (TS_CNTTB | TS_LNCH) is set in t_state. */ - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/dev/cy/cy_isa.c b/sys/dev/cy/cy_isa.c index 1bca887..bd8d7a49 100644 --- a/sys/dev/cy/cy_isa.c +++ b/sys/dev/cy/cy_isa.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.11 1995/07/22 16:44:46 bde Exp $ + * $Id: cy.c,v 1.12 1995/07/29 04:05:53 bde Exp $ */ #include "cy.h" @@ -2367,16 +2367,14 @@ disc_optim(tp, t, com) /* * XXX can skip a lot more cases if Smarts. Maybe - * (IGNCR | ISTRIP | IXOFF | IXON) in c_iflag. But perhaps we + * (IGNCR | ISTRIP | IXON) in c_iflag. But perhaps we * shouldn't skip if (TS_CNTTB | TS_LNCH) is set in t_state. */ - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/dev/rc/rc.c b/sys/dev/rc/rc.c index e496a48..ec93d68 100644 --- a/sys/dev/rc/rc.c +++ b/sys/dev/rc/rc.c @@ -1495,13 +1495,11 @@ disc_optim(tp, t, rc) struct rc_chans *rc; { - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/dev/sio/sio.c b/sys/dev/sio/sio.c index 93469e0..a428eeb 100644 --- a/sys/dev/sio/sio.c +++ b/sys/dev/sio/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.105 1995/07/22 16:44:50 bde Exp $ + * $Id: sio.c,v 1.106 1995/07/29 04:05:57 bde Exp $ */ #include "sio.h" @@ -2082,13 +2082,11 @@ disc_optim(tp, t, com) struct termios *t; struct com_s *com; { - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/i386/isa/cy.c b/sys/i386/isa/cy.c index 1bca887..bd8d7a49 100644 --- a/sys/i386/isa/cy.c +++ b/sys/i386/isa/cy.c @@ -27,7 +27,7 @@ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: cy.c,v 1.11 1995/07/22 16:44:46 bde Exp $ + * $Id: cy.c,v 1.12 1995/07/29 04:05:53 bde Exp $ */ #include "cy.h" @@ -2367,16 +2367,14 @@ disc_optim(tp, t, com) /* * XXX can skip a lot more cases if Smarts. Maybe - * (IGNCR | ISTRIP | IXOFF | IXON) in c_iflag. But perhaps we + * (IGNCR | ISTRIP | IXON) in c_iflag. But perhaps we * shouldn't skip if (TS_CNTTB | TS_LNCH) is set in t_state. */ - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c index e496a48..ec93d68 100644 --- a/sys/i386/isa/rc.c +++ b/sys/i386/isa/rc.c @@ -1495,13 +1495,11 @@ disc_optim(tp, t, rc) struct rc_chans *rc; { - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/i386/isa/sio.c b/sys/i386/isa/sio.c index 93469e0..a428eeb 100644 --- a/sys/i386/isa/sio.c +++ b/sys/i386/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.105 1995/07/22 16:44:50 bde Exp $ + * $Id: sio.c,v 1.106 1995/07/29 04:05:57 bde Exp $ */ #include "sio.h" @@ -2082,13 +2082,11 @@ disc_optim(tp, t, com) struct termios *t; struct com_s *com; { - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else diff --git a/sys/isa/sio.c b/sys/isa/sio.c index 93469e0..a428eeb 100644 --- a/sys/isa/sio.c +++ b/sys/isa/sio.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * from: @(#)com.c 7.5 (Berkeley) 5/16/91 - * $Id: sio.c,v 1.105 1995/07/22 16:44:50 bde Exp $ + * $Id: sio.c,v 1.106 1995/07/29 04:05:57 bde Exp $ */ #include "sio.h" @@ -2082,13 +2082,11 @@ disc_optim(tp, t, com) struct termios *t; struct com_s *com; { - if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP - | IXOFF | IXON)) + if (!(t->c_iflag & (ICRNL | IGNCR | IMAXBEL | INLCR | ISTRIP | IXON)) && (!(t->c_iflag & BRKINT) || (t->c_iflag & IGNBRK)) - && (!(t->c_iflag & PARMRK) || - (t->c_iflag & (IGNPAR|IGNBRK)) == (IGNPAR|IGNBRK)) - && !(t->c_lflag & (ECHO | ECHONL | ICANON | IEXTEN | ISIG - | PENDIN)) + && (!(t->c_iflag & PARMRK) + || (t->c_iflag & (IGNPAR | IGNBRK)) == (IGNPAR | IGNBRK)) + && !(t->c_lflag & (ECHO | ICANON | IEXTEN | ISIG | PENDIN)) && linesw[tp->t_line].l_rint == ttyinput) tp->t_state |= TS_CAN_BYPASS_L_RINT; else |