From afa4e3ed9c9928c20b8007634538649422f920b5 Mon Sep 17 00:00:00 2001 From: nicm Date: Fri, 21 Apr 2017 17:22:20 +0000 Subject: [PATCH] Add cmd_find_from_winlink_pane and use it in a couple of places, and make functions that can't fail void. --- cmd-find.c | 22 ++++++++++++++++++---- cmd-split-window.c | 7 +------ server-client.c | 6 +----- tmux.h | 6 ++++-- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/cmd-find.c b/cmd-find.c index 68c15f15..ea8c1e83 100644 --- a/cmd-find.c +++ b/cmd-find.c @@ -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) diff --git a/cmd-split-window.c b/cmd-split-window.c index 4d061d94..cb39d8f8 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -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); diff --git a/server-client.c b/server-client.c index d5717ae6..29ee4caa 100644 --- a/server-client.c +++ b/server-client.c @@ -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)) diff --git a/tmux.h b/tmux.h index 5d614d38..f0453b99 100644 --- a/tmux.h +++ b/tmux.h @@ -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);