mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-23 08:33:17 +01:00
Use existing termios and get rid of stuff we don't want rather than constructing a new one.
This commit is contained in:
parent
b590b5dd0b
commit
119bc8779a
12
tty.c
12
tty.c
@ -1,4 +1,4 @@
|
||||
/* $Id: tty.c,v 1.22 2008-06-07 06:43:50 nicm Exp $ */
|
||||
/* $Id: tty.c,v 1.23 2008-06-10 18:51:22 nicm Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -82,6 +82,11 @@ tty_open(struct tty *tty, char **cause)
|
||||
|
||||
if (tcgetattr(tty->fd, &tty->tio) != 0)
|
||||
fatal("tcgetattr failed");
|
||||
#if 0
|
||||
/*
|
||||
* This fails on some Linuxes with EINVAL. Which is weird since
|
||||
* all we do is take stuff out of the defaults...
|
||||
*/
|
||||
memset(&tio, 0, sizeof tio);
|
||||
tio.c_iflag = TTYDEF_IFLAG & ~(IXON|IXOFF|ICRNL|INLCR);
|
||||
tio.c_oflag = TTYDEF_OFLAG & ~(OPOST|ONLCR|OCRNL|ONLRET);
|
||||
@ -90,6 +95,11 @@ tty_open(struct tty *tty, char **cause)
|
||||
tio.c_cflag = TTYDEF_CFLAG;
|
||||
memcpy(&tio.c_cc, ttydefchars, sizeof tio.c_cc);
|
||||
cfsetspeed(&tio, TTYDEF_SPEED);
|
||||
#endif
|
||||
memcpy(&tio, &tty->tio, sizeof tio);
|
||||
tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR);
|
||||
tio.c_oflag &= ~(OPOST|ONLCR|OCRNL|ONLRET);
|
||||
tio.c_lflag &= ~(IEXTEN|ICANON|ECHO|ECHOE|ECHOKE|ECHOCTL|ISIG);
|
||||
if (tcsetattr(tty->fd, TCSANOW, &tio) != 0)
|
||||
fatal("tcsetattr failed");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user