mirror of
https://github.com/tmux/tmux.git
synced 2025-11-05 18:36:10 +00:00
Sync OpenBSD patchset 801:
Unify the way sessions are used by callbacks - store the address and use the reference count, then check it is still on the global sessions list in the callback.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: cmd-choose-window.c,v 1.23 2010-12-06 22:52:20 nicm Exp $ */
|
||||
/* $Id: cmd-choose-window.c,v 1.24 2010-12-22 15:28:50 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@@ -129,20 +129,19 @@ void
|
||||
cmd_choose_window_callback(void *data, int idx)
|
||||
{
|
||||
struct cmd_choose_window_data *cdata = data;
|
||||
struct session *s = cdata->session;
|
||||
struct cmd_list *cmdlist;
|
||||
struct cmd_ctx ctx;
|
||||
char *target, *template, *cause;
|
||||
|
||||
if (idx == -1)
|
||||
return;
|
||||
if (!session_alive(s))
|
||||
return;
|
||||
if (cdata->client->flags & CLIENT_DEAD)
|
||||
return;
|
||||
if (cdata->session->flags & SESSION_DEAD)
|
||||
return;
|
||||
if (cdata->client->session != cdata->session)
|
||||
return;
|
||||
|
||||
xasprintf(&target, "%s:%d", cdata->session->name, idx);
|
||||
xasprintf(&target, "%s:%d", s->name, idx);
|
||||
template = cmd_template_replace(cdata->template, target, 1);
|
||||
xfree(target);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user