From 2cd99f0ebbd234c76754bbeee554834cb8cb62ba Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 20 Sep 2007 09:43:33 +0000 Subject: Reset ignored signals after forkpty. --- local.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'local.c') diff --git a/local.c b/local.c index 3ec2ee51..8ba0c340 100644 --- a/local.c +++ b/local.c @@ -1,4 +1,4 @@ -/* $Id: local.c,v 1.5 2007-08-28 09:19:50 nicm Exp $ */ +/* $Id: local.c,v 1.6 2007-09-20 09:43:33 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -22,6 +22,7 @@ #include #include #include +#define TTYDEFCHARS #include #include #include @@ -229,10 +230,14 @@ local_init(struct buffer **in, struct buffer **out) if (tcgetattr(local_fd, &local_tio) != 0) fatal("tcgetattr failed"); - memcpy(&tio, &local_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); + memset(&tio, 0, sizeof tio); + tio.c_iflag = TTYDEF_IFLAG & ~(IXON|IXOFF|ICRNL|INLCR); + tio.c_oflag = TTYDEF_OFLAG & ~(OPOST|ONLCR|OCRNL|ONLRET); + tio.c_lflag = + TTYDEF_LFLAG & ~(IEXTEN|ICANON|ECHO|ECHOE|ECHOKE|ECHOCTL|ISIG); + tio.c_cflag = TTYDEF_CFLAG; + memcpy(&tio.c_cc, ttydefchars, sizeof tio.c_cc); + cfsetspeed(&tio, TTYDEF_SPEED); if (tcsetattr(local_fd, TCSANOW, &tio) != 0) fatal("tcsetattr failed"); -- cgit