=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-find.c,v retrieving revision 1.62 retrieving revision 1.63 diff -c -r1.62 -r1.63 *** src/usr.bin/tmux/cmd-find.c 2018/05/03 16:56:59 1.62 --- src/usr.bin/tmux/cmd-find.c 2018/05/04 08:21:42 1.63 *************** *** 1,4 **** ! /* $OpenBSD: cmd-find.c,v 1.62 2018/05/03 16:56:59 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-find.c,v 1.63 2018/05/04 08:21:42 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 83,88 **** --- 83,89 ---- char tmp[256]; long long pid; u_int session; + struct session *s; envent = environ_find(c->environ, "TMUX"); if (envent == NULL) *************** *** 92,99 **** return (NULL); if (pid != getpid()) return (NULL); ! log_debug("client %p TMUX %s (session @%u)", c, envent->value, session); ! return (session_find_by_id(session)); } /* Find pane containing client if any. */ --- 93,105 ---- return (NULL); if (pid != getpid()) return (NULL); ! log_debug("%s: client %p TMUX %s (session $%u)", __func__, c, ! envent->value, session); ! ! s = session_find_by_id(session); ! if (s != NULL) ! log_debug("%s: session $%u still exists", __func__, s->id); ! return (s); } /* Find pane containing client if any. */ *************** *** 109,114 **** --- 115,122 ---- if (strcmp(wp->tty, c->ttyname) == 0) break; } + if (wp != NULL) + log_debug("%s: got pane %%%u (%s)", __func__, wp->id, wp->tty); return (wp); } *************** *** 167,172 **** --- 175,182 ---- struct session *s_loop, *s; u_int i; + log_debug("%s: %u sessions to try", __func__, ssize); + s = NULL; if (slist != NULL) { for (i = 0; i < ssize; i++) { *************** *** 190,195 **** --- 200,207 ---- u_int ssize; struct session *s; + log_debug("%s: window is @%u", __func__, fs->w->id); + ssize = 0; RB_FOREACH(s, sessions, &sessions) { if (!session_has(s, fs->w)) *************** *** 219,224 **** --- 231,238 ---- { struct winlink *wl, *wl_loop; + log_debug("%s: window is @%u", __func__, fs->w->id); + wl = NULL; if (fs->s->curw != NULL && fs->s->curw->window == fs->w) wl = fs->s->curw; *************** *** 706,712 **** cmd_find_log_state(const char *prefix, struct cmd_find_state *fs) { if (fs->s != NULL) ! log_debug("%s: s=$%u", prefix, fs->s->id); else log_debug("%s: s=none", prefix); if (fs->wl != NULL) { --- 720,726 ---- cmd_find_log_state(const char *prefix, struct cmd_find_state *fs) { if (fs->s != NULL) ! log_debug("%s: s=$%u %s", prefix, fs->s->id, fs->s->name); else log_debug("%s: s=none", prefix); if (fs->wl != NULL) { *************** *** 895,900 **** --- 909,917 ---- break; } if (wl != NULL) { + log_debug("%s: session $%u has pane %%%u", __func__, + s->id, wp->id); + fs->s = s; fs->wl = s->curw; /* use current session */ fs->w = fs->wl->window;