version 1.31, 2010/12/11 18:39:25 |
version 1.32, 2010/12/20 00:17:22 |
|
|
cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) |
cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx) |
{ |
{ |
struct cmd_new_session_data *data = self->data; |
struct cmd_new_session_data *data = self->data; |
struct session *s, *groupwith; |
struct session *s, *old_s, *groupwith; |
struct window *w; |
struct window *w; |
struct window_pane *wp; |
struct window_pane *wp; |
struct environ env; |
struct environ env; |
|
|
if (!detached) { |
if (!detached) { |
if (ctx->cmdclient != NULL) { |
if (ctx->cmdclient != NULL) { |
server_write_client(ctx->cmdclient, MSG_READY, NULL, 0); |
server_write_client(ctx->cmdclient, MSG_READY, NULL, 0); |
if (ctx->cmdclient->session != NULL) { |
|
session_index(ctx->cmdclient->session, |
old_s = ctx->cmdclient->session; |
&ctx->cmdclient->last_session); |
if (old_s != NULL) |
} |
ctx->cmdclient->last_session = old_s; |
ctx->cmdclient->session = s; |
ctx->cmdclient->session = s; |
server_redraw_client(ctx->cmdclient); |
server_redraw_client(ctx->cmdclient); |
} else { |
} else { |
if (ctx->curclient->session != NULL) { |
old_s = ctx->curclient->session; |
session_index(ctx->curclient->session, |
if (old_s != NULL) |
&ctx->curclient->last_session); |
ctx->curclient->last_session = old_s; |
} |
|
ctx->curclient->session = s; |
ctx->curclient->session = s; |
server_redraw_client(ctx->curclient); |
server_redraw_client(ctx->curclient); |
} |
} |