summaryrefslogtreecommitdiffstats
path: root/cmd-split-window.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2021-10-07 10:01:10 +0100
committerThomas Adam <thomas@xteddy.org>2021-10-07 10:01:10 +0100
commitfed7b29c7e4995eb60ad765c4ff9439f68261c83 (patch)
treeb27293999c7df89ed14984abe9e532b6b4e135f4 /cmd-split-window.c
parent537441742836b4366c47ad60c19e04463bfd02e3 (diff)
parent5f63181ed5a9d409fcb0955217fbe4c1a40dd9ff (diff)
Merge branch 'obsd-master' into master
Diffstat (limited to 'cmd-split-window.c')
-rw-r--r--cmd-split-window.c26
1 files changed, 16 insertions, 10 deletions
diff --git a/cmd-split-window.c b/cmd-split-window.c
index 74c8b5ab..888d4106 100644
--- a/cmd-split-window.c
+++ b/cmd-split-window.c
@@ -162,16 +162,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);