diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-03-04 08:52:41 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-03-04 08:52:41 +0000 |
commit | 208881a735669d854b132629eedb463ea9c01420 (patch) | |
tree | 2d836b2dbb57b2e67106972e7ad1c2baad65eb0b | |
parent | a2f52d422418af489e8eeb386d989b848a09891b (diff) | |
download | rtmux-208881a735669d854b132629eedb463ea9c01420.tar.gz rtmux-208881a735669d854b132629eedb463ea9c01420.tar.bz2 rtmux-208881a735669d854b132629eedb463ea9c01420.zip |
Send DSC 1000p at the beginning of a -CC client's lifetime and ST and the end,
from George Nachman..
-rw-r--r-- | client.c | 10 | ||||
-rw-r--r-- | server-client.c | 2 |
2 files changed, 11 insertions, 1 deletions
@@ -296,8 +296,16 @@ client_main(int argc, char **argv, int flags) ppid = getppid(); if (client_exittype == MSG_DETACHKILL && ppid > 1) kill(ppid, SIGHUP); - } else if (flags & IDENTIFY_TERMIOS) + } else if (flags & IDENTIFY_TERMIOS) { + if (flags & IDENTIFY_CONTROL) { + if (client_exitreason != CLIENT_EXIT_NONE) + printf("%%exit %s\n", client_exit_message()); + else + printf("%%exit\n"); + printf("\033\\"); + } tcsetattr(STDOUT_FILENO, TCSAFLUSH, &saved_tio); + } setblocking(STDIN_FILENO, 1); return (client_exitval); } diff --git a/server-client.c b/server-client.c index fd729b70..b905a7c7 100644 --- a/server-client.c +++ b/server-client.c @@ -956,6 +956,8 @@ server_client_msg_identify( if (data->flags & IDENTIFY_CONTROL) { c->stdin_callback = control_callback; c->flags |= CLIENT_CONTROL; + if (data->flags & IDENTIFY_TERMIOS) + evbuffer_add_printf(c->stdout_data, "\033P1000p"); server_write_client(c, MSG_STDIN, NULL, 0); c->tty.fd = -1; |