From 95744963335389d670997fe943c0859449eddc3e Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 7 Oct 2021 07:52:13 +0000 Subject: Handle splitw -I correctly when used from an attached client, GitHub issue 2917. --- cmd-split-window.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'cmd-split-window.c') diff --git a/cmd-split-window.c b/cmd-split-window.c index 92f515ca..0f82e648 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -163,16 +163,22 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item) environ_free(sc.environ); return (CMD_RETURN_ERROR); } - if (input && window_pane_start_input(new_wp, item, &cause) != 0) { - server_client_remove_pane(new_wp); - layout_close_pane(new_wp); - window_remove_pane(wp->window, new_wp); - cmdq_error(item, "%s", cause); - free(cause); - if (sc.argv != NULL) - cmd_free_argv(sc.argc, sc.argv); - environ_free(sc.environ); - return (CMD_RETURN_ERROR); + if (input) { + switch (window_pane_start_input(new_wp, item, &cause)) { + case -1: + server_client_remove_pane(new_wp); + layout_close_pane(new_wp); + window_remove_pane(wp->window, new_wp); + cmdq_error(item, "%s", cause); + free(cause); + if (sc.argv != NULL) + cmd_free_argv(sc.argc, sc.argv); + environ_free(sc.environ); + return (CMD_RETURN_ERROR); + case 1: + input = 0; + break; + } } if (!args_has(args, 'd')) cmd_find_from_winlink_pane(current, wl, new_wp, 0); -- cgit v1.2.3