diff options
author | Tiago Cunha <tcunha@gmx.com> | 2011-01-07 15:02:38 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2011-01-07 15:02:38 +0000 |
commit | ca413cf270d001df59a13dc1978236b2de8261e4 (patch) | |
tree | 7280499432219903909d933b7dd2312b2e15846b /cmd-lock-server.c | |
parent | b2b5d88f3f828c5ac972097967a58a192cad4fca (diff) | |
download | rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.tar.gz rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.tar.bz2 rtmux-ca413cf270d001df59a13dc1978236b2de8261e4.zip |
Sync OpenBSD patchset 831:
Now that parsing is common, merge some of the small, related commands
together to use the same code.
Also add some arguments (such as -n and -p) to some commands to match
existing commands.
Diffstat (limited to 'cmd-lock-server.c')
-rw-r--r-- | cmd-lock-server.c | 42 |
1 files changed, 38 insertions, 4 deletions
diff --git a/cmd-lock-server.c b/cmd-lock-server.c index da2b48e7..53efbfdb 100644 --- a/cmd-lock-server.c +++ b/cmd-lock-server.c @@ -1,4 +1,4 @@ -/* $Id: cmd-lock-server.c,v 1.10 2011-01-07 14:45:34 tcunha Exp $ */ +/* $Id: cmd-lock-server.c,v 1.11 2011-01-07 15:02:38 tcunha Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> @@ -25,7 +25,7 @@ #include "tmux.h" /* - * Lock server. + * Lock commands. */ int cmd_lock_server_exec(struct cmd *, struct cmd_ctx *); @@ -40,11 +40,45 @@ const struct cmd_entry cmd_lock_server_entry = { cmd_lock_server_exec }; +const struct cmd_entry cmd_lock_session_entry = { + "lock-session", "locks", + "t:", 0, 0, + CMD_TARGET_SESSION_USAGE, + 0, + NULL, + NULL, + cmd_lock_server_exec +}; + +const struct cmd_entry cmd_lock_client_entry = { + "lock-client", "lockc", + "t:", 0, 0, + CMD_TARGET_CLIENT_USAGE, + 0, + NULL, + NULL, + cmd_lock_server_exec +}; + /* ARGSUSED */ int -cmd_lock_server_exec(unused struct cmd *self, unused struct cmd_ctx *ctx) +cmd_lock_server_exec(struct cmd *self, unused struct cmd_ctx *ctx) { - server_lock(); + struct args *args = self->args; + struct client *c; + struct session *s; + + if (self->entry == &cmd_lock_server_entry) + server_lock(); + else if (self->entry == &cmd_lock_session_entry) { + if ((s = cmd_find_session(ctx, args_get(args, 't'))) == NULL) + return (-1); + server_lock_session(s); + } else { + if ((c = cmd_find_client(ctx, args_get(args, 't'))) == NULL) + return (-1); + server_lock_client(c); + } recalculate_sizes(); return (0); |