From 07a71fd432df5873515da82d2d620ec0d986b558 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 27 Jun 2010 02:56:59 +0000 Subject: 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. --- cmd-new-session.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'cmd-new-session.c') diff --git a/cmd-new-session.c b/cmd-new-session.c index 5e175bea..290d5a3b 100644 --- a/cmd-new-session.c +++ b/cmd-new-session.c @@ -18,8 +18,10 @@ #include +#include #include #include +#include #include "tmux.h" @@ -125,8 +127,9 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) struct window_pane *wp; struct environ env; struct termios tio, *tiop; - const char *update; - char *overrides, *cmd, *cwd, *cause; + struct passwd *pw; + const char *update, *cwd; + char *overrides, *cmd, *cause; int detached, idx; u_int sx, sy, i; @@ -198,8 +201,13 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) /* 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"); + else { + pw = getpwuid(getuid()); + if (pw->pw_dir != NULL && *pw->pw_dir != '\0') + cwd = pw->pw_dir; + else + cwd = "/"; + } /* Find new session size. */ if (detached) { -- cgit