Let the found winlink determine the session used when handling the
'a' option. This fixes several problematic scenarios:

* Command from command line: curclient would be NULL, which would
  crash the server.

* Specifying a window in another session: would have killed all the
  windows in the current session (since none is equal to the winlink
  found in the other session), and left the windows of the other
  session untouched.

  It seems to make sense to kill the "other windows" in the session
  of the specified window, not always the "current" session.
---
 trunk/cmd-kill-window.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/trunk/cmd-kill-window.c b/trunk/cmd-kill-window.c
index 9325324..abe7738 100644
--- a/trunk/cmd-kill-window.c
+++ b/trunk/cmd-kill-window.c
@@ -41,12 +41,13 @@ cmd_kill_window_exec(struct cmd *self, struct cmd_ctx *ctx)
 {
        struct args     *args = self->args;
        struct winlink  *wl, *wl2;
+       struct session  *s;
 
-       if ((wl = cmd_find_window(ctx, args_get(args, 't'), NULL)) == NULL)
+       if ((wl = cmd_find_window(ctx, args_get(args, 't'), &s)) == NULL)
                return (-1);
 
        if (args_has(args, 'a')) {
-               RB_FOREACH(wl2, winlinks, &ctx->curclient->session->windows) {
+               RB_FOREACH(wl2, winlinks, &s->windows) {
                        if (wl != wl2)
                                server_kill_window(wl2->window);
                }
-- 
1.7.10.2


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
tmux-users mailing list
tmux-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tmux-users

Reply via email to