summaryrefslogtreecommitdiffstats
path: root/cmd-new-window.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2010-06-27 02:56:59 +0000
committerNicholas Marriott <nicm@openbsd.org>2010-06-27 02:56:59 +0000
commit07a71fd432df5873515da82d2d620ec0d986b558 (patch)
treea4a9064b09cfc31f1ec1f49adb7e1f7b8308eaed /cmd-new-window.c
parent26524c99f68959b5a0d1698529f332934061d424 (diff)
Store the current working directory in the session, change the default-path
option to default to empty and make that mean that the stored session CWD is used.
Diffstat (limited to 'cmd-new-window.c')
-rw-r--r--cmd-new-window.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/cmd-new-window.c b/cmd-new-window.c
index 32c42eb4..b44be0b2 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -176,10 +176,13 @@ cmd_new_window_exec(struct cmd *self, struct cmd_ctx *ctx)
cmd = data->cmd;
if (cmd == NULL)
cmd = options_get_string(&s->options, "default-command");
- if (ctx->cmdclient == NULL || ctx->cmdclient->cwd == NULL)
- cwd = options_get_string(&s->options, "default-path");
- else
- cwd = ctx->cmdclient->cwd;
+ cwd = options_get_string(&s->options, "default-path");
+ if (*cwd == '\0') {
+ if (ctx->cmdclient != NULL && ctx->cmdclient->cwd != NULL)
+ cwd = ctx->cmdclient->cwd;
+ else
+ cwd = s->cwd;
+ }
if (idx == -1)
idx = -1 - options_get_number(&s->options, "base-index");