summaryrefslogtreecommitdiffstats
path: root/cmd-lock-server.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-lock-server.c')
-rw-r--r--cmd-lock-server.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/cmd-lock-server.c b/cmd-lock-server.c
index 524fa451..a0df95b0 100644
--- a/cmd-lock-server.c
+++ b/cmd-lock-server.c
@@ -57,25 +57,22 @@ const struct cmd_entry cmd_lock_client_entry = {
.args = { "t:", 0, 0 },
.usage = CMD_TARGET_CLIENT_USAGE,
- .flags = CMD_AFTERHOOK,
+ .flags = CMD_AFTERHOOK|CMD_CLIENT_TFLAG,
.exec = cmd_lock_server_exec
};
static enum cmd_retval
cmd_lock_server_exec(struct cmd *self, struct cmdq_item *item)
{
- struct args *args = self->args;
- struct client *c;
+ struct cmd_find_state *target = cmdq_get_target(item);
+ struct client *tc = cmdq_get_target_client(item);
- if (self->entry == &cmd_lock_server_entry)
+ if (cmd_get_entry(self) == &cmd_lock_server_entry)
server_lock();
- else if (self->entry == &cmd_lock_session_entry)
- server_lock_session(item->target.s);
- else {
- if ((c = cmd_find_client(item, args_get(args, 't'), 0)) == NULL)
- return (CMD_RETURN_ERROR);
- server_lock_client(c);
- }
+ else if (cmd_get_entry(self) == &cmd_lock_session_entry)
+ server_lock_session(target->s);
+ else
+ server_lock_client(tc);
recalculate_sizes();
return (CMD_RETURN_NORMAL);