aboutsummaryrefslogtreecommitdiff
path: root/cmd-rename-session.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-rename-session.c')
-rw-r--r--cmd-rename-session.c20
1 files changed, 8 insertions, 12 deletions
diff --git a/cmd-rename-session.c b/cmd-rename-session.c
index 8385434a..51b8ffc8 100644
--- a/cmd-rename-session.c
+++ b/cmd-rename-session.c
@@ -46,22 +46,18 @@ const struct cmd_entry cmd_rename_session_entry = {
static enum cmd_retval
cmd_rename_session_exec(struct cmd *self, struct cmdq_item *item)
{
- struct args *args = self->args;
- struct client *c = cmd_find_client(item, NULL, 1);
- struct session *s = item->target.s;
- char *newname;
-
- newname = format_single(item, args->argv[0], c, s, NULL, NULL);
+ struct args *args = cmd_get_args(self);
+ struct cmd_find_state *target = cmdq_get_target(item);
+ struct session *s = target->s;
+ char *newname, *tmp;
+
+ tmp = format_single_from_target(item, args->argv[0]);
+ newname = session_check_name(tmp);
+ free(tmp);
if (strcmp(newname, s->name) == 0) {
free(newname);
return (CMD_RETURN_NORMAL);
}
-
- if (!session_check_name(newname)) {
- cmdq_error(item, "bad session name: %s", newname);
- free(newname);
- return (CMD_RETURN_ERROR);
- }
if (session_find(newname) != NULL) {
cmdq_error(item, "duplicate session: %s", newname);
free(newname);