Add -a for kill-session, from Thomas Adam.

pull/1/head
Nicholas Marriott 2012-06-18 09:16:15 +00:00
parent 038e8b770d
commit 2113115cdd
2 changed files with 20 additions and 7 deletions

View File

@ -31,8 +31,8 @@ int cmd_kill_session_exec(struct cmd *, struct cmd_ctx *);
const struct cmd_entry cmd_kill_session_entry = { const struct cmd_entry cmd_kill_session_entry = {
"kill-session", NULL, "kill-session", NULL,
"t:", 0, 0, "at:", 0, 0,
CMD_TARGET_SESSION_USAGE, "[-a] " CMD_TARGET_SESSION_USAGE,
0, 0,
NULL, NULL,
NULL, NULL,
@ -43,13 +43,21 @@ int
cmd_kill_session_exec(struct cmd *self, struct cmd_ctx *ctx) cmd_kill_session_exec(struct cmd *self, struct cmd_ctx *ctx)
{ {
struct args *args = self->args; struct args *args = self->args;
struct session *s; struct session *s, *s2, *s3;
if ((s = cmd_find_session(ctx, args_get(args, 't'), 0)) == NULL) if ((s = cmd_find_session(ctx, args_get(args, 't'), 0)) == NULL)
return (-1); return (-1);
if (args_has(args, 'a')) {
RB_FOREACH_SAFE(s2, sessions, &sessions, s3) {
if (s != s2) {
server_destroy_session(s2);
session_destroy(s2);
}
}
} else {
server_destroy_session(s); server_destroy_session(s);
session_destroy(s); session_destroy(s);
}
return (0); return (0);
} }

7
tmux.1
View File

@ -610,9 +610,14 @@ If it does exist, exit with 0.
Kill the Kill the
.Nm .Nm
server and clients and destroy all sessions. server and clients and destroy all sessions.
.It Ic kill-session Op Fl t Ar target-session .It Ic kill-session
.Op Fl a
.Op Fl t Ar target-session
Destroy the given session, closing any windows linked to it and no other Destroy the given session, closing any windows linked to it and no other
sessions, and detaching all clients attached to it. sessions, and detaching all clients attached to it.
If
.Fl a
is given, all sessions but the specified one is killed.
.It Xo Ic list-clients .It Xo Ic list-clients
.Op Fl F Ar format .Op Fl F Ar format
.Op Fl t Ar target-session .Op Fl t Ar target-session