=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-find.c,v retrieving revision 1.33 retrieving revision 1.34 diff -c -r1.33 -r1.34 *** src/usr.bin/tmux/cmd-find.c 2016/10/10 21:51:39 1.33 --- src/usr.bin/tmux/cmd-find.c 2016/10/13 10:01:49 1.34 *************** *** 1,4 **** ! /* $OpenBSD: cmd-find.c,v 1.33 2016/10/10 21:51:39 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-find.c,v 1.34 2016/10/13 10:01:49 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 803,808 **** --- 803,817 ---- fs->idx = -1; } + /* Check if state is empty/ */ + int + cmd_find_empty_state(struct cmd_find_state *fs) + { + if (fs->s == NULL && fs->wl == NULL && fs->w == NULL && fs->wp == NULL) + return (1); + return (0); + } + /* Check if a state if valid. */ int cmd_find_valid_state(struct cmd_find_state *fs) *************** *** 959,970 **** cmd_find_clear_state(fs, cmdq, flags); /* Find current state. */ ! if (server_check_marked() && (flags & CMD_FIND_DEFAULT_MARKED)) fs->current = &marked_pane; ! else if (cmd_find_valid_state(&cmdq->current)) fs->current = &cmdq->current; ! else fs->current = current; /* An empty or NULL target is the current. */ if (target == NULL || *target == '\0') --- 968,986 ---- cmd_find_clear_state(fs, cmdq, flags); /* Find current state. */ ! if (server_check_marked() && (flags & CMD_FIND_DEFAULT_MARKED)) { fs->current = &marked_pane; ! log_debug(" current is marked pane"); ! } else if (cmd_find_valid_state(&cmdq->current)) { fs->current = &cmdq->current; ! log_debug(" current is from queue"); ! } else { fs->current = current; + log_debug(" current is from argument"); + } + if (!cmd_find_empty_state(fs->current) && + !cmd_find_valid_state(fs->current)) + fatalx("invalid current find state"); /* An empty or NULL target is the current. */ if (target == NULL || *target == '\0')