mirror of https://github.com/tmux/tmux.git
Add an option (default off) to control the passthrough escape sequence.
Like set-clipboard and allow-rename it is safer to forbid this by default.pull/3160/head
parent
190b88fcab
commit
eabbc80b75
6
input.c
6
input.c
|
@ -2235,15 +2235,19 @@ input_enter_dcs(struct input_ctx *ictx)
|
||||||
static int
|
static int
|
||||||
input_dcs_dispatch(struct input_ctx *ictx)
|
input_dcs_dispatch(struct input_ctx *ictx)
|
||||||
{
|
{
|
||||||
|
struct window_pane *wp = ictx->wp;
|
||||||
struct screen_write_ctx *sctx = &ictx->ctx;
|
struct screen_write_ctx *sctx = &ictx->ctx;
|
||||||
u_char *buf = ictx->input_buf;
|
u_char *buf = ictx->input_buf;
|
||||||
size_t len = ictx->input_len;
|
size_t len = ictx->input_len;
|
||||||
const char prefix[] = "tmux;";
|
const char prefix[] = "tmux;";
|
||||||
const u_int prefixlen = (sizeof prefix) - 1;
|
const u_int prefixlen = (sizeof prefix) - 1;
|
||||||
|
|
||||||
|
if (wp == NULL)
|
||||||
|
return (0);
|
||||||
if (ictx->flags & INPUT_DISCARD)
|
if (ictx->flags & INPUT_DISCARD)
|
||||||
return (0);
|
return (0);
|
||||||
|
if (!options_get_number(ictx->wp->options, "allow-passthrough"))
|
||||||
|
return (0);
|
||||||
log_debug("%s: \"%s\"", __func__, buf);
|
log_debug("%s: \"%s\"", __func__, buf);
|
||||||
|
|
||||||
if (len >= prefixlen && strncmp(buf, prefix, prefixlen) == 0)
|
if (len >= prefixlen && strncmp(buf, prefix, prefixlen) == 0)
|
||||||
|
|
|
@ -301,7 +301,7 @@ const struct options_table_entry options_table[] = {
|
||||||
.choices = options_table_extended_keys_list,
|
.choices = options_table_extended_keys_list,
|
||||||
.default_num = 0,
|
.default_num = 0,
|
||||||
.text = "Whether to request extended key sequences from terminals "
|
.text = "Whether to request extended key sequences from terminals "
|
||||||
"that support it."
|
"that support it."
|
||||||
},
|
},
|
||||||
|
|
||||||
{ .name = "focus-events",
|
{ .name = "focus-events",
|
||||||
|
@ -800,6 +800,14 @@ const struct options_table_entry options_table[] = {
|
||||||
"linked to ('off')."
|
"linked to ('off')."
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ .name = "allow-passthrough",
|
||||||
|
.type = OPTIONS_TABLE_FLAG,
|
||||||
|
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
|
||||||
|
.default_num = 0,
|
||||||
|
.text = "Whether applications are allowed to use the escape sequence "
|
||||||
|
"to bypass tmux."
|
||||||
|
},
|
||||||
|
|
||||||
{ .name = "allow-rename",
|
{ .name = "allow-rename",
|
||||||
.type = OPTIONS_TABLE_FLAG,
|
.type = OPTIONS_TABLE_FLAG,
|
||||||
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
|
.scope = OPTIONS_TABLE_WINDOW|OPTIONS_TABLE_PANE,
|
||||||
|
@ -988,7 +996,7 @@ const struct options_table_entry options_table[] = {
|
||||||
.choices = options_table_pane_border_lines_list,
|
.choices = options_table_pane_border_lines_list,
|
||||||
.default_num = PANE_LINES_SINGLE,
|
.default_num = PANE_LINES_SINGLE,
|
||||||
.text = "Type of characters used to draw pane border lines. Some of "
|
.text = "Type of characters used to draw pane border lines. Some of "
|
||||||
"these are only supported on terminals with UTF-8 support."
|
"these are only supported on terminals with UTF-8 support."
|
||||||
},
|
},
|
||||||
|
|
||||||
{ .name = "pane-border-status",
|
{ .name = "pane-border-status",
|
||||||
|
@ -1040,7 +1048,7 @@ const struct options_table_entry options_table[] = {
|
||||||
.choices = options_table_popup_border_lines_list,
|
.choices = options_table_popup_border_lines_list,
|
||||||
.default_num = BOX_LINES_SINGLE,
|
.default_num = BOX_LINES_SINGLE,
|
||||||
.text = "Type of characters used to draw popup border lines. Some of "
|
.text = "Type of characters used to draw popup border lines. Some of "
|
||||||
"these are only supported on terminals with UTF-8 support."
|
"these are only supported on terminals with UTF-8 support."
|
||||||
},
|
},
|
||||||
|
|
||||||
{ .name = "remain-on-exit",
|
{ .name = "remain-on-exit",
|
||||||
|
@ -1170,7 +1178,7 @@ const struct options_table_entry options_table[] = {
|
||||||
.scope = OPTIONS_TABLE_WINDOW,
|
.scope = OPTIONS_TABLE_WINDOW,
|
||||||
.default_num = 1,
|
.default_num = 1,
|
||||||
.text = "Whether xterm-style function key sequences should be sent. "
|
.text = "Whether xterm-style function key sequences should be sent. "
|
||||||
"This option is no longer used."
|
"This option is no longer used."
|
||||||
},
|
},
|
||||||
|
|
||||||
/* Hook options. */
|
/* Hook options. */
|
||||||
|
@ -1218,8 +1226,8 @@ const struct options_table_entry options_table[] = {
|
||||||
OPTIONS_TABLE_HOOK("client-active", ""),
|
OPTIONS_TABLE_HOOK("client-active", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-attached", ""),
|
OPTIONS_TABLE_HOOK("client-attached", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-detached", ""),
|
OPTIONS_TABLE_HOOK("client-detached", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-focus-in", ""),
|
OPTIONS_TABLE_HOOK("client-focus-in", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-focus-out", ""),
|
OPTIONS_TABLE_HOOK("client-focus-out", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-resized", ""),
|
OPTIONS_TABLE_HOOK("client-resized", ""),
|
||||||
OPTIONS_TABLE_HOOK("client-session-changed", ""),
|
OPTIONS_TABLE_HOOK("client-session-changed", ""),
|
||||||
OPTIONS_TABLE_PANE_HOOK("pane-died", ""),
|
OPTIONS_TABLE_PANE_HOOK("pane-died", ""),
|
||||||
|
|
7
tmux.1
7
tmux.1
|
@ -4406,6 +4406,13 @@ The default is on.
|
||||||
Available pane options are:
|
Available pane options are:
|
||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width Ds -compact
|
.Bl -tag -width Ds -compact
|
||||||
|
.It Xo Ic allow-passthrough
|
||||||
|
.Op Ic on | off
|
||||||
|
.Xc
|
||||||
|
Allow programs in the pane to bypass
|
||||||
|
.Nm
|
||||||
|
using a terminal escape sequence (\eePtmux;...\ee\e\e).
|
||||||
|
.Pp
|
||||||
.It Xo Ic allow-rename
|
.It Xo Ic allow-rename
|
||||||
.Op Ic on | off
|
.Op Ic on | off
|
||||||
.Xc
|
.Xc
|
||||||
|
|
Loading…
Reference in New Issue