diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-08-19 15:57:54 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2009-08-19 15:57:54 +0000 |
commit | 7c9f827bfe01f440e09597319fcf280685500b7f (patch) | |
tree | badb9e506cd75e48e2ecc5470fc52e2d8221301d /cmd-new-session.c | |
parent | 2a300c66611259e9bae9ebf75a88de05256f64df (diff) | |
download | rtmux-7c9f827bfe01f440e09597319fcf280685500b7f.tar.gz rtmux-7c9f827bfe01f440e09597319fcf280685500b7f.tar.bz2 rtmux-7c9f827bfe01f440e09597319fcf280685500b7f.zip |
In yet another triumph of stupidity over common sense, the glibc
sys/ttydefaults.h is just a copy of the file from *BSD, taking no account of
the fact that their OWN termios.h uses entirely different indexes into the
array.
I know ttydefaults.h is not meant to be portable, but you'd think it would be
obvious to anyone that no file is better than a broken one...
Diffstat (limited to 'cmd-new-session.c')
-rw-r--r-- | cmd-new-session.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/cmd-new-session.c b/cmd-new-session.c index 857163cb..3f46d0af 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -1,4 +1,4 @@ -/* $Id: cmd-new-session.c,v 1.56 2009-08-19 14:32:49 nicm Exp $ */ +/* $Id: cmd-new-session.c,v 1.57 2009-08-19 15:57:54 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -207,8 +207,28 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) if (ctx->cmdclient != NULL && ctx->cmdclient->tty.fd != -1) { if (tcgetattr(ctx->cmdclient->tty.fd, &tio) != 0) fatal("tcgetattr failed"); - } else + } else { +#ifdef HAVE_TTYDEFCHARS memcpy(tio.c_cc, ttydefchars, sizeof tio.c_cc); +#else + memset(tio.c_cc, _POSIX_VDISABLE, sizeof tio.c_cc); + tio.c_cc[VINTR] = CINTR; + tio.c_cc[VQUIT] = CQUIT; + tio.c_cc[VERASE] = CERASE; + tio.c_cc[VKILL] = CKILL; + tio.c_cc[VEOF] = CEOF; + tio.c_cc[VTIME] = CTIME; + tio.c_cc[VMIN] = CMIN; + tio.c_cc[VSTART] = CSTART; + tio.c_cc[VSTOP] = CSTOP; + tio.c_cc[VSUSP] = CSUSP; + tio.c_cc[VEOL] = CEOL; + tio.c_cc[VREPRINT] = CREPRINT; + tio.c_cc[VDISCARD] = CDISCARD; + tio.c_cc[VWERASE] = CWERASE; + tio.c_cc[VLNEXT] = CLNEXT; +#endif + } tio.c_iflag = TTYDEF_IFLAG; tio.c_oflag = TTYDEF_OFLAG; tio.c_lflag = TTYDEF_LFLAG; |