mirror of
https://github.com/tmux/tmux.git
synced 2024-12-24 18:28:56 +00:00
Merge branch 'obsd-master' into master
This commit is contained in:
commit
fed7b29c7e
@ -75,12 +75,16 @@ cmd_display_message_exec(struct cmd *self, struct cmdq_item *item)
|
|||||||
if (args_has(args, 'I')) {
|
if (args_has(args, 'I')) {
|
||||||
if (wp == NULL)
|
if (wp == NULL)
|
||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
if (window_pane_start_input(wp, item, &cause) != 0) {
|
switch (window_pane_start_input(wp, item, &cause)) {
|
||||||
|
case -1:
|
||||||
cmdq_error(item, "%s", cause);
|
cmdq_error(item, "%s", cause);
|
||||||
free(cause);
|
free(cause);
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
|
case 1:
|
||||||
|
return (CMD_RETURN_NORMAL);
|
||||||
|
case 0:
|
||||||
|
return (CMD_RETURN_WAIT);
|
||||||
}
|
}
|
||||||
return (CMD_RETURN_WAIT);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args_has(args, 'F') && count != 0) {
|
if (args_has(args, 'F') && count != 0) {
|
||||||
|
@ -162,16 +162,22 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item)
|
|||||||
environ_free(sc.environ);
|
environ_free(sc.environ);
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
if (input && window_pane_start_input(new_wp, item, &cause) != 0) {
|
if (input) {
|
||||||
server_client_remove_pane(new_wp);
|
switch (window_pane_start_input(new_wp, item, &cause)) {
|
||||||
layout_close_pane(new_wp);
|
case -1:
|
||||||
window_remove_pane(wp->window, new_wp);
|
server_client_remove_pane(new_wp);
|
||||||
cmdq_error(item, "%s", cause);
|
layout_close_pane(new_wp);
|
||||||
free(cause);
|
window_remove_pane(wp->window, new_wp);
|
||||||
if (sc.argv != NULL)
|
cmdq_error(item, "%s", cause);
|
||||||
cmd_free_argv(sc.argc, sc.argv);
|
free(cause);
|
||||||
environ_free(sc.environ);
|
if (sc.argv != NULL)
|
||||||
return (CMD_RETURN_ERROR);
|
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'))
|
if (!args_has(args, 'd'))
|
||||||
cmd_find_from_winlink_pane(current, wl, new_wp, 0);
|
cmd_find_from_winlink_pane(current, wl, new_wp, 0);
|
||||||
|
1
tmux.1
1
tmux.1
@ -3996,6 +3996,7 @@ If set to both, a bell and a message are produced.
|
|||||||
Sets the session's conception of what characters are considered word
|
Sets the session's conception of what characters are considered word
|
||||||
separators, for the purposes of the next and previous word commands in
|
separators, for the purposes of the next and previous word commands in
|
||||||
copy mode.
|
copy mode.
|
||||||
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
Available window options are:
|
Available window options are:
|
||||||
.Pp
|
.Pp
|
||||||
|
6
window.c
6
window.c
@ -1537,7 +1537,7 @@ window_pane_input_callback(struct client *c, __unused const char *path,
|
|||||||
size_t len = EVBUFFER_LENGTH(buffer);
|
size_t len = EVBUFFER_LENGTH(buffer);
|
||||||
|
|
||||||
wp = window_pane_find_by_id(cdata->wp);
|
wp = window_pane_find_by_id(cdata->wp);
|
||||||
if (wp == NULL || closed || error != 0 || c->flags & CLIENT_DEAD) {
|
if (wp == NULL || closed || error != 0 || (c->flags & CLIENT_DEAD)) {
|
||||||
if (wp == NULL)
|
if (wp == NULL)
|
||||||
c->flags |= CLIENT_EXIT;
|
c->flags |= CLIENT_EXIT;
|
||||||
|
|
||||||
@ -1563,6 +1563,10 @@ window_pane_start_input(struct window_pane *wp, struct cmdq_item *item,
|
|||||||
*cause = xstrdup("pane is not empty");
|
*cause = xstrdup("pane is not empty");
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
if (c->flags & (CLIENT_DEAD|CLIENT_EXITED))
|
||||||
|
return (1);
|
||||||
|
if (c->session != NULL)
|
||||||
|
return (1);
|
||||||
|
|
||||||
cdata = xmalloc(sizeof *cdata);
|
cdata = xmalloc(sizeof *cdata);
|
||||||
cdata->item = item;
|
cdata->item = item;
|
||||||
|
Loading…
Reference in New Issue
Block a user