summaryrefslogtreecommitdiffstats
path: root/cmd-new-session.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-08-23 17:37:48 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-08-23 17:37:48 +0000
commita910b38a353d73bf581900a6b117406020dbf2d9 (patch)
tree4f319cde7870e21cac6dce9895d59ff9087835da /cmd-new-session.c
parentc7394ac4e0f7e6e034fbb4b050de6f713bb9f6e0 (diff)
Some code tidying.
Diffstat (limited to 'cmd-new-session.c')
-rw-r--r--cmd-new-session.c52
1 files changed, 26 insertions, 26 deletions
diff --git a/cmd-new-session.c b/cmd-new-session.c
index 73698d24..8cf30bc3 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -114,6 +114,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
{
struct cmd_new_session_data *data = self->data;
struct session *s;
+ struct window *w;
struct environ env;
struct termios tio;
const char *update;
@@ -186,18 +187,22 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
}
}
- /* Find new session size and options. */
+ /* Get the new session working directory. */
+ if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL)
+ cwd = ctx->cmdclient->cwd;
+ else
+ cwd = options_get_string(&global_s_options, "default-path");
+
+ /* Find new session size. */
if (detached) {
sx = 80;
sy = 25;
+ } else if (ctx->cmdclient != NULL) {
+ sx = ctx->cmdclient->tty.sx;
+ sy = ctx->cmdclient->tty.sy;
} else {
- if (ctx->cmdclient != NULL) {
- sx = ctx->cmdclient->tty.sx;
- sy = ctx->cmdclient->tty.sy;
- } else {
- sx = ctx->curclient->tty.sx;
- sy = ctx->curclient->tty.sy;
- }
+ sx = ctx->curclient->tty.sx;
+ sy = ctx->curclient->tty.sy;
}
if (sy > 0 && options_get_number(&global_s_options, "status"))
sy--;
@@ -205,10 +210,8 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
sx = 1;
if (sy == 0)
sy = 1;
- if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL)
- cwd = ctx->cmdclient->cwd;
- else
- cwd = options_get_string(&global_s_options, "default-path");
+
+ /* Figure out the command for the new window. */
if (data->cmd != NULL)
cmd = data->cmd;
else
@@ -231,26 +234,23 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
}
environ_free(&env);
+ /* Set the initial window name if one given. */
if (data->winname != NULL) {
- xfree(s->curw->window->name);
- s->curw->window->name = xstrdup(data->winname);
- options_set_number(
- &s->curw->window->options, "automatic-rename", 0);
+ w = s->curw->window;
+
+ xfree(w->name);
+ w->name = xstrdup(data->winname);
+
+ options_set_number(&w->options, "automatic-rename", 0);
}
- /*
- * If a command client exists, it is either taking this session (and
- * needs to get MSG_READY and stay around), or -d is given and it needs
- * to exit.
+ /*
+ * Set the client to the new session. If a command client exists, it is
+ * taking this session and needs to get MSG_READY and stay around.
*/
- if (ctx->cmdclient != NULL) {
- if (!detached)
- server_write_client(ctx->cmdclient, MSG_READY, NULL, 0);
- }
-
- /* Set the client to the new session. */
if (!detached) {
if (ctx->cmdclient != NULL) {
+ server_write_client(ctx->cmdclient, MSG_READY, NULL, 0);
ctx->cmdclient->session = s;
server_redraw_client(ctx->cmdclient);
} else {