From 966818c23d0cf15d93ad3c50ebadfd6d346ef428 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 19 Aug 2009 16:06:45 +0000 Subject: [PATCH] Call tcsetattr(). Not tested. --- compat/forkpty-aix.c | 7 ++++--- compat/forkpty-sunos.c | 9 +++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/compat/forkpty-aix.c b/compat/forkpty-aix.c index c1f59f92..abc4c690 100644 --- a/compat/forkpty-aix.c +++ b/compat/forkpty-aix.c @@ -1,4 +1,4 @@ -/* $Id: forkpty-aix.c,v 1.2 2009-03-31 22:08:45 nicm Exp $ */ +/* $Id: forkpty-aix.c,v 1.3 2009-08-19 16:06:45 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -27,8 +27,7 @@ #include "tmux.h" pid_t -forkpty(int *master, - unused char *name, unused struct termios *tio, struct winsize *ws) +forkpty(int *master, unused char *name, struct termios *tio, struct winsize *ws) { int slave, fd; char *path; @@ -71,6 +70,8 @@ forkpty(int *master, fatal("open failed"); close(fd); + if (tcsetattr(slave, TCSAFLUSH, tio) == -1) + fatal("tcsetattr failed"); if (ioctl(slave, TIOCSWINSZ, ws) == -1) fatal("ioctl failed"); diff --git a/compat/forkpty-sunos.c b/compat/forkpty-sunos.c index a4b1dbdf..09d1e572 100644 --- a/compat/forkpty-sunos.c +++ b/compat/forkpty-sunos.c @@ -1,4 +1,4 @@ -/* $Id: forkpty-sunos.c,v 1.6 2008-06-23 21:54:48 nicm Exp $ */ +/* $Id: forkpty-sunos.c,v 1.7 2009-08-19 16:06:45 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -27,8 +27,7 @@ #include "tmux.h" pid_t -forkpty(int *master, - unused char *name, unused struct termios *tio, struct winsize *ws) +forkpty(int *master, unused char *name, struct termios *tio, struct winsize *ws) { int slave; char *path; @@ -63,6 +62,8 @@ forkpty(int *master, if (ioctl(slave, I_PUSH, "ldterm") == -1) fatal("ioctl failed"); + if (tcsetattr(slave, TCSAFLUSH, tio) == -1) + fatal("tcsetattr failed"); if (ioctl(slave, TIOCSWINSZ, ws) == -1) fatal("ioctl failed"); @@ -70,7 +71,7 @@ forkpty(int *master, dup2(slave, 1); dup2(slave, 2); if (slave > 2) - close(slave); + close(slave); return (0); }