version 1.215, 2017/03/09 22:00:46 |
version 1.216, 2017/04/05 10:49:46 |
|
|
struct environ_entry *envent; |
struct environ_entry *envent; |
struct window_pane *wp; |
struct window_pane *wp; |
|
|
if (c->tty.path == NULL) |
|
return (0); |
|
|
|
envent = environ_find(c->environ, "TMUX"); |
envent = environ_find(c->environ, "TMUX"); |
if (envent == NULL || *envent->value == '\0') |
if (envent == NULL || *envent->value == '\0') |
return (0); |
return (0); |
|
|
RB_FOREACH(wp, window_pane_tree, &all_window_panes) { |
RB_FOREACH(wp, window_pane_tree, &all_window_panes) { |
if (strcmp(wp->tty, c->tty.path) == 0) |
if (strcmp(wp->tty, c->ttyname) == 0) |
return (1); |
return (1); |
} |
} |
return (0); |
return (0); |
|
|
if (!TAILQ_EMPTY(&c->queue)) |
if (!TAILQ_EMPTY(&c->queue)) |
fatalx("queue not empty"); |
fatalx("queue not empty"); |
|
|
if (c->references == 0) |
if (c->references == 0) { |
|
free((void *)c->name); |
free(c); |
free(c); |
|
} |
} |
} |
|
|
/* Detach a client. */ |
/* Detach a client. */ |
|
|
const char *data, *home; |
const char *data, *home; |
size_t datalen; |
size_t datalen; |
int flags; |
int flags; |
|
char *name; |
|
|
if (c->flags & CLIENT_IDENTIFIED) |
if (c->flags & CLIENT_IDENTIFIED) |
fatalx("out-of-order identify message"); |
fatalx("out-of-order identify message"); |
|
|
return; |
return; |
c->flags |= CLIENT_IDENTIFIED; |
c->flags |= CLIENT_IDENTIFIED; |
|
|
|
if (*c->ttyname != '\0') |
|
name = xstrdup(c->ttyname); |
|
else |
|
xasprintf(&name, "client-%ld", (long)c->pid); |
|
c->name = name; |
|
log_debug("client %p name is %s", c, c->name); |
|
|
if (c->flags & CLIENT_CONTROL) { |
if (c->flags & CLIENT_CONTROL) { |
c->stdin_callback = control_callback; |
c->stdin_callback = control_callback; |
|
|
|
|
xvasprintf(&s, fmt, ap); |
xvasprintf(&s, fmt, ap); |
va_end(ap); |
va_end(ap); |
|
|
log_debug("%s: message %s", c->tty.path, s); |
log_debug("message %s (client %p)", s, c); |
|
|
msg = xcalloc(1, sizeof *msg); |
msg = xcalloc(1, sizeof *msg); |
msg->msg_time = time(NULL); |
msg->msg_time = time(NULL); |