Add cmd_find_from_winlink_pane and use it in a couple of places, and

make functions that can't fail void.
pull/871/merge
nicm 2017-04-21 17:22:20 +00:00
parent 92a77e7654
commit afa4e3ed9c
4 changed files with 24 additions and 17 deletions

View File

@ -879,7 +879,7 @@ cmd_find_log_state(const char *prefix, struct cmd_find_state *fs)
}
/* Find state from a session. */
int
void
cmd_find_from_session(struct cmd_find_state *fs, struct session *s)
{
cmd_find_clear_state(fs, NULL, 0);
@ -890,11 +890,10 @@ cmd_find_from_session(struct cmd_find_state *fs, struct session *s)
fs->wp = fs->w->active;
cmd_find_log_state(__func__, fs);
return (0);
}
/* Find state from a winlink. */
int
void
cmd_find_from_winlink(struct cmd_find_state *fs, struct winlink *wl)
{
cmd_find_clear_state(fs, NULL, 0);
@ -905,7 +904,6 @@ cmd_find_from_winlink(struct cmd_find_state *fs, struct winlink *wl)
fs->wp = wl->window->active;
cmd_find_log_state(__func__, fs);
return (0);
}
/* Find state from a session and window. */
@ -942,6 +940,22 @@ cmd_find_from_window(struct cmd_find_state *fs, struct window *w)
return (0);
}
/* Find state from a winlink and pane. */
void
cmd_find_from_winlink_pane(struct cmd_find_state *fs, struct winlink *wl,
struct window_pane *wp)
{
cmd_find_clear_state(fs, NULL, 0);
fs->s = wl->session;
fs->wl = wl;
fs->idx = fs->wl->idx;
fs->w = fs->wl->window;
fs->wp = wp;
cmd_find_log_state(__func__, fs);
}
/* Find state from a pane. */
int
cmd_find_from_pane(struct cmd_find_state *fs, struct window_pane *wp)

View File

@ -172,12 +172,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item)
if (to_free != NULL)
free((void *)to_free);
cmd_find_clear_state(&fs, NULL, 0);
fs.s = s;
fs.wl = wl;
fs.w = w;
fs.wp = new_wp;
cmd_find_log_state(__func__, &fs);
cmd_find_from_winlink_pane(&fs, wl, new_wp);
hooks_insert(s->hooks, item, &fs, "after-split-window");
return (CMD_RETURN_NORMAL);

View File

@ -946,11 +946,7 @@ retry:
/* Find default state if the pane is known. */
if (KEYC_IS_MOUSE(key) && m->valid && wp != NULL) {
cmd_find_clear_state(&fs, NULL, 0);
fs.s = s;
fs.wl = fs.s->curw;
fs.w = fs.wl->window;
fs.wp = wp;
cmd_find_from_winlink_pane(&fs, s->curw, wp);
cmd_find_log_state(__func__, &fs);
if (!cmd_find_valid_state(&fs))

6
tmux.h
View File

@ -1744,15 +1744,17 @@ int cmd_find_valid_state(struct cmd_find_state *);
void cmd_find_copy_state(struct cmd_find_state *,
struct cmd_find_state *);
void cmd_find_log_state(const char *, struct cmd_find_state *);
int cmd_find_from_session(struct cmd_find_state *,
void cmd_find_from_session(struct cmd_find_state *,
struct session *);
int cmd_find_from_winlink(struct cmd_find_state *,
void cmd_find_from_winlink(struct cmd_find_state *,
struct winlink *);
int cmd_find_from_session_window(struct cmd_find_state *,
struct session *, struct window *);
int cmd_find_from_window(struct cmd_find_state *, struct window *);
int cmd_find_from_pane(struct cmd_find_state *,
struct window_pane *);
void cmd_find_from_winlink_pane(struct cmd_find_state *,
struct winlink *, struct window_pane *);
/* cmd.c */
int cmd_pack_argv(int, char **, char *, size_t);