Sync OpenBSD patchset 1133:

Add -a flag for detach-client, from Thomas Adam.
This commit is contained in:
Tiago Cunha 2012-06-18 15:11:35 +00:00
parent 576f2694b1
commit 4a634a7da4
2 changed files with 17 additions and 4 deletions

View File

@ -28,8 +28,8 @@ int cmd_detach_client_exec(struct cmd *, struct cmd_ctx *);
const struct cmd_entry cmd_detach_client_entry = { const struct cmd_entry cmd_detach_client_entry = {
"detach-client", "detach", "detach-client", "detach",
"s:t:P", 0, 0, "as:t:P", 0, 0,
"[-P] [-s target-session] " CMD_TARGET_CLIENT_USAGE, "[-P] [-a] [-s target-session] " CMD_TARGET_CLIENT_USAGE,
CMD_READONLY, CMD_READONLY,
NULL, NULL,
NULL, NULL,
@ -40,7 +40,7 @@ int
cmd_detach_client_exec(struct cmd *self, struct cmd_ctx *ctx) cmd_detach_client_exec(struct cmd *self, struct cmd_ctx *ctx)
{ {
struct args *args = self->args; struct args *args = self->args;
struct client *c; struct client *c, *c2;
struct session *s; struct session *s;
enum msgtype msgtype; enum msgtype msgtype;
u_int i; u_int i;
@ -65,7 +65,15 @@ cmd_detach_client_exec(struct cmd *self, struct cmd_ctx *ctx)
if (c == NULL) if (c == NULL)
return (-1); return (-1);
server_write_client(c, msgtype, NULL, 0); if (args_has(args, 'a')) {
for (i = 0; i < ARRAY_LENGTH(&clients); i++) {
c2 = ARRAY_ITEM(&clients, i);
if (c2 == NULL || c == c2)
continue;
server_write_client(c2, msgtype, NULL, 0);
}
} else
server_write_client(c, msgtype, NULL, 0);
} }
return (0); return (0);

5
tmux.1
View File

@ -589,6 +589,7 @@ recently used
session. session.
.It Xo Ic detach-client .It Xo Ic detach-client
.Op Fl P .Op Fl P
.Op Fl a
.Op Fl s Ar target-session .Op Fl s Ar target-session
.Op Fl t Ar target-client .Op Fl t Ar target-client
.Xc .Xc
@ -597,6 +598,10 @@ Detach the current client if bound to a key, the client specified with
.Fl t , .Fl t ,
or all clients currently attached to the session specified by or all clients currently attached to the session specified by
.Fl s . .Fl s .
The
.Fl a
option kills all but the client given with
.Fl t .
If If
.Fl P .Fl P
is given, send SIGHUP to the parent process of the client, typically causing it is given, send SIGHUP to the parent process of the client, typically causing it