mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-07 16:54:01 +01:00
Sync OpenBSD patchset 802:
Use pointer rather than index for the client's last session.
This commit is contained in:
parent
64d16cf2d6
commit
bb728b89a7
@ -1,4 +1,4 @@
|
||||
/* $Id: cmd-new-session.c,v 1.79 2010-12-11 18:42:20 nicm Exp $ */
|
||||
/* $Id: cmd-new-session.c,v 1.80 2010-12-22 15:31:00 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -122,7 +122,7 @@ int
|
||||
cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
|
||||
{
|
||||
struct cmd_new_session_data *data = self->data;
|
||||
struct session *s, *groupwith;
|
||||
struct session *s, *old_s, *groupwith;
|
||||
struct window *w;
|
||||
struct window_pane *wp;
|
||||
struct environ env;
|
||||
@ -279,17 +279,16 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
|
||||
if (!detached) {
|
||||
if (ctx->cmdclient != NULL) {
|
||||
server_write_client(ctx->cmdclient, MSG_READY, NULL, 0);
|
||||
if (ctx->cmdclient->session != NULL) {
|
||||
session_index(ctx->cmdclient->session,
|
||||
&ctx->cmdclient->last_session);
|
||||
}
|
||||
|
||||
old_s = ctx->cmdclient->session;
|
||||
if (old_s != NULL)
|
||||
ctx->cmdclient->last_session = old_s;
|
||||
ctx->cmdclient->session = s;
|
||||
server_redraw_client(ctx->cmdclient);
|
||||
} else {
|
||||
if (ctx->curclient->session != NULL) {
|
||||
session_index(ctx->curclient->session,
|
||||
&ctx->curclient->last_session);
|
||||
}
|
||||
old_s = ctx->curclient->session;
|
||||
if (old_s != NULL)
|
||||
ctx->curclient->last_session = old_s;
|
||||
ctx->curclient->session = s;
|
||||
server_redraw_client(ctx->curclient);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: cmd-switch-client.c,v 1.22 2010-12-11 18:42:20 nicm Exp $ */
|
||||
/* $Id: cmd-switch-client.c,v 1.23 2010-12-22 15:31:00 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -159,9 +159,8 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_ctx *ctx)
|
||||
return (-1);
|
||||
}
|
||||
} else if (data->flag_last) {
|
||||
if (c->last_session != UINT_MAX &&
|
||||
c->last_session < ARRAY_LENGTH(&sessions))
|
||||
s = ARRAY_ITEM(&sessions, c->last_session);
|
||||
if (c->last_session != NULL && session_alive(c->last_session))
|
||||
s = c->last_session;
|
||||
if (s == NULL) {
|
||||
ctx->error(ctx, "can't find last session");
|
||||
return (-1);
|
||||
@ -172,7 +171,7 @@ cmd_switch_client_exec(struct cmd *self, struct cmd_ctx *ctx)
|
||||
return (-1);
|
||||
|
||||
if (c->session != NULL)
|
||||
session_index(c->session, &c->last_session);
|
||||
c->last_session = c->session;
|
||||
c->session = s;
|
||||
|
||||
recalculate_sizes();
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: server-client.c,v 1.47 2010-12-11 18:42:20 nicm Exp $ */
|
||||
/* $Id: server-client.c,v 1.48 2010-12-22 15:31:00 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -77,7 +77,7 @@ server_client_create(int fd)
|
||||
c->title = NULL;
|
||||
|
||||
c->session = NULL;
|
||||
c->last_session = UINT_MAX;
|
||||
c->last_session = NULL;
|
||||
c->tty.sx = 80;
|
||||
c->tty.sy = 24;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Id: server-fn.c,v 1.114 2010-12-11 18:42:20 nicm Exp $ */
|
||||
/* $Id: server-fn.c,v 1.115 2010-12-22 15:31:00 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -399,7 +399,7 @@ server_destroy_session(struct session *s)
|
||||
c->session = NULL;
|
||||
c->flags |= CLIENT_EXIT;
|
||||
} else {
|
||||
c->last_session = UINT_MAX;
|
||||
c->last_session = NULL;
|
||||
c->session = s_new;
|
||||
server_redraw_client(c);
|
||||
}
|
||||
|
4
tmux.h
4
tmux.h
@ -1,4 +1,4 @@
|
||||
/* $Id: tmux.h,v 1.588 2010-12-22 15:28:51 tcunha Exp $ */
|
||||
/* $Id: tmux.h,v 1.589 2010-12-22 15:31:00 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -1153,7 +1153,7 @@ struct client {
|
||||
struct mode_key_data prompt_mdata;
|
||||
|
||||
struct session *session;
|
||||
u_int last_session;
|
||||
struct session *last_session;
|
||||
|
||||
int references;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user