=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-find.c,v retrieving revision 1.48 retrieving revision 1.49 diff -c -r1.48 -r1.49 *** src/usr.bin/tmux/cmd-find.c 2017/04/21 20:26:34 1.48 --- src/usr.bin/tmux/cmd-find.c 2017/04/21 22:00:06 1.49 *************** *** 1,4 **** ! /* $OpenBSD: cmd-find.c,v 1.48 2017/04/21 20:26:34 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-find.c,v 1.49 2017/04/21 22:00:06 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 749,756 **** fs->s = s; fs->w = w; ! if (cmd_find_best_winlink_with_window(fs) != 0) return (-1); fs->wp = fs->w->active; cmd_find_log_state(__func__, fs); --- 749,758 ---- fs->s = s; fs->w = w; ! if (cmd_find_best_winlink_with_window(fs) != 0) { ! cmd_find_clear_state(fs, 0); return (-1); + } fs->wp = fs->w->active; cmd_find_log_state(__func__, fs); *************** *** 764,773 **** cmd_find_clear_state(fs, 0); fs->w = w; ! if (cmd_find_best_session_with_window(fs) != 0) return (-1); ! if (cmd_find_best_winlink_with_window(fs) != 0) return (-1); fs->wp = fs->w->active; cmd_find_log_state(__func__, fs); --- 766,779 ---- cmd_find_clear_state(fs, 0); fs->w = w; ! if (cmd_find_best_session_with_window(fs) != 0) { ! cmd_find_clear_state(fs, 0); return (-1); ! } ! if (cmd_find_best_winlink_with_window(fs) != 0) { ! cmd_find_clear_state(fs, 0); return (-1); + } fs->wp = fs->w->active; cmd_find_log_state(__func__, fs); *************** *** 796,803 **** { if (cmd_find_from_window(fs, wp->window) != 0) return (-1); ! if (window_pane_outside(wp)) return (-1); fs->wp = wp; cmd_find_log_state(__func__, fs); --- 802,811 ---- { if (cmd_find_from_window(fs, wp->window) != 0) return (-1); ! if (window_pane_outside(wp)) { ! cmd_find_clear_state(fs, 0); return (-1); + } fs->wp = wp; cmd_find_log_state(__func__, fs); *************** *** 811,818 **** cmd_find_clear_state(fs, 0); fs->s = cmd_find_best_session(NULL, 0, fs->flags); ! if (fs->s == NULL) return (-1); fs->wl = fs->s->curw; fs->idx = fs->wl->idx; fs->w = fs->wl->window; --- 819,828 ---- cmd_find_clear_state(fs, 0); fs->s = cmd_find_best_session(NULL, 0, fs->flags); ! if (fs->s == NULL) { ! cmd_find_clear_state(fs, 0); return (-1); + } fs->wl = fs->s->curw; fs->idx = fs->wl->idx; fs->w = fs->wl->window; *************** *** 832,839 **** return (-1); fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl); ! if (fs->wp == NULL) return (-1); fs->w = fs->wl->window; cmd_find_log_state(__func__, fs); --- 842,851 ---- return (-1); fs->wp = cmd_mouse_pane(m, &fs->s, &fs->wl); ! if (fs->wp == NULL) { ! cmd_find_clear_state(fs, 0); return (-1); + } fs->w = fs->wl->window; cmd_find_log_state(__func__, fs); *************** *** 902,907 **** --- 914,920 ---- */ goto unknown_pane; } + cmd_find_clear_state(fs, 0); return (-1); } fs->wl = fs->s->curw; *************** *** 1083,1090 **** if (pane != NULL) pane = cmd_find_map_table(cmd_find_pane_table, pane); ! log_debug("target %s (flags %#x): session=%s, window=%s, pane=%s", ! target, flags, session == NULL ? "none" : session, window == NULL ? "none" : window, pane == NULL ? "none" : pane); /* No pane is allowed if want an index. */ --- 1096,1103 ---- if (pane != NULL) pane = cmd_find_map_table(cmd_find_pane_table, pane); ! log_debug("%s: target %s (flags %#x): session=%s, window=%s, pane=%s", ! __func__, target, flags, session == NULL ? "none" : session, window == NULL ? "none" : window, pane == NULL ? "none" : pane); /* No pane is allowed if want an index. */