=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-new-session.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- src/usr.bin/tmux/cmd-new-session.c 2010/04/06 21:35:44 1.29 +++ src/usr.bin/tmux/cmd-new-session.c 2010/06/27 02:56:59 1.30 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-new-session.c,v 1.29 2010/04/06 21:35:44 nicm Exp $ */ +/* $OpenBSD: cmd-new-session.c,v 1.30 2010/06/27 02:56:59 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -18,8 +18,10 @@ #include +#include #include #include +#include #include "tmux.h" @@ -125,8 +127,9 @@ 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 @@ /* 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) {