mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-02 08:33:20 +00:00
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.
This commit is contained in:
parent
d10b6048eb
commit
611c22c117
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=9757
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user