=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-find.c,v retrieving revision 1.30 retrieving revision 1.31 diff -c -r1.30 -r1.31 *** src/usr.bin/tmux/cmd-find.c 2016/01/19 15:59:12 1.30 --- src/usr.bin/tmux/cmd-find.c 2016/01/19 16:01:30 1.31 *************** *** 1,4 **** ! /* $OpenBSD: cmd-find.c,v 1.30 2016/01/19 15:59:12 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: cmd-find.c,v 1.31 2016/01/19 16:01:30 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 923,937 **** return (0); } /* * Split target into pieces and resolve for the given type. Fills in the given * state. Returns 0 on success or -1 on error. */ int ! cmd_find_target(struct cmd_find_state *fs, struct cmd_q *cmdq, ! const char *target, enum cmd_find_type type, int flags) { - struct cmd_find_state current; struct mouse_event *m; char *colon, *period, *copy = NULL; const char *session, *window, *pane; --- 923,949 ---- return (0); } + /* Find current state. */ + int + cmd_find_current(struct cmd_find_state *fs, struct cmd_q *cmdq, int flags) + { + cmd_find_clear_state(fs, cmdq, flags); + if (cmd_find_current_session(fs) != 0) { + if (~flags & CMD_FIND_QUIET) + cmdq_error(cmdq, "no current session"); + return (-1); + } + return (0); + } + /* * Split target into pieces and resolve for the given type. Fills in the given * state. Returns 0 on success or -1 on error. */ int ! cmd_find_target(struct cmd_find_state *fs, struct cmd_find_state *current, ! struct cmd_q *cmdq, const char *target, enum cmd_find_type type, int flags) { struct mouse_event *m; char *colon, *period, *copy = NULL; const char *session, *window, *pane; *************** *** 951,965 **** fs->current = &marked_pane; else if (cmd_find_valid_state(&cmdq->current)) fs->current = &cmdq->current; ! else { ! cmd_find_clear_state(¤t, cmdq, flags); ! if (cmd_find_current_session(¤t) != 0) { ! if (~flags & CMD_FIND_QUIET) ! cmdq_error(cmdq, "no current session"); ! goto error; ! } ! fs->current = ¤t; ! } /* An empty or NULL target is the current. */ if (target == NULL || *target == '\0') --- 963,970 ---- 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')