mirror of
https://github.com/tmate-io/tmate.git
synced 2024-11-08 01:04:06 +01:00
Sync OpenBSD patchset 904:
Use the tsl and fsl terminfo(5) capabilities to update terminal title and automatically fill them in on terminals with the XT capability (which means their title setting is xterm-compatible). From hsim at gmx.li.
This commit is contained in:
parent
046e8363b4
commit
4fcbf4b872
@ -1,4 +1,4 @@
|
||||
/* $Id: options-table.c,v 1.7 2011-04-18 21:07:58 nicm Exp $ */
|
||||
/* $Id: options-table.c,v 1.8 2011-05-18 20:28:40 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2011 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -354,7 +354,7 @@ const struct options_table_entry session_options_table[] = {
|
||||
|
||||
{ .name = "terminal-overrides",
|
||||
.type = OPTIONS_TABLE_STRING,
|
||||
.default_str = "*88col*:colors=88,*256col*:colors=256"
|
||||
.default_str = "*88col*:colors=88,*256col*:colors=256,xterm*:XT"
|
||||
},
|
||||
|
||||
{ .name = "update-environment",
|
||||
|
6
tmux.1
6
tmux.1
@ -1,4 +1,4 @@
|
||||
.\" $Id: tmux.1,v 1.310 2011-04-25 20:35:22 tcunha Exp $
|
||||
.\" $Id: tmux.1,v 1.311 2011-05-18 20:28:40 tcunha Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
.\"
|
||||
@ -14,7 +14,7 @@
|
||||
.\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
.\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
.\"
|
||||
.Dd $Mdocdate: April 24 2011 $
|
||||
.Dd $Mdocdate: May 8 2011 $
|
||||
.Dt TMUX 1
|
||||
.Os
|
||||
.Sh NAME
|
||||
@ -2149,7 +2149,7 @@ The default value forcibly corrects the
|
||||
.Ql colors
|
||||
entry for terminals which support 88 or 256 colours:
|
||||
.Bd -literal -offset indent
|
||||
"*88col*:colors=88,*256col*:colors=256"
|
||||
"*88col*:colors=88,*256col*:colors=256,xterm*:XT"
|
||||
.Ed
|
||||
.It Ic update-environment Ar variables
|
||||
Set a space-separated string containing a list of environment variables to be
|
||||
|
9
tmux.h
9
tmux.h
@ -1,4 +1,4 @@
|
||||
/* $Id: tmux.h,v 1.621 2011-04-25 20:33:42 tcunha Exp $ */
|
||||
/* $Id: tmux.h,v 1.622 2011-05-18 20:28:41 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -201,6 +201,7 @@ enum tty_code_code {
|
||||
TTYC_EL, /* clr_eol, ce */
|
||||
TTYC_EL1, /* clr_bol, cb */
|
||||
TTYC_ENACS, /* ena_acs, eA */
|
||||
TTYC_FSL, /* from_status_line, fsl */
|
||||
TTYC_HOME, /* cursor_home, ho */
|
||||
TTYC_HPA, /* column_address, ch */
|
||||
TTYC_ICH, /* parm_ich, IC */
|
||||
@ -313,17 +314,19 @@ enum tty_code_code {
|
||||
TTYC_SETAB, /* set_a_background, AB */
|
||||
TTYC_SETAF, /* set_a_foreground, AF */
|
||||
TTYC_SGR0, /* exit_attribute_mode, me */
|
||||
TTYC_SITM, /* enter_italics_mode, it */
|
||||
TTYC_SMACS, /* enter_alt_charset_mode, as */
|
||||
TTYC_SMCUP, /* enter_ca_mode, ti */
|
||||
TTYC_SMIR, /* enter_insert_mode, im */
|
||||
TTYC_SMKX, /* keypad_xmit, ks */
|
||||
TTYC_SMSO, /* enter_standout_mode, so */
|
||||
TTYC_SMUL, /* enter_underline_mode, us */
|
||||
TTYC_SITM, /* enter_italics_mode, it */
|
||||
TTYC_TSL, /* to_status_line, tsl */
|
||||
TTYC_VPA, /* row_address, cv */
|
||||
TTYC_XENL, /* eat_newline_glitch, xn */
|
||||
TTYC_XT, /* xterm(1)-compatible title, XT */
|
||||
};
|
||||
#define NTTYCODE (TTYC_XENL + 1)
|
||||
#define NTTYCODE (TTYC_XT + 1)
|
||||
|
||||
/* Termcap types. */
|
||||
enum tty_code_type {
|
||||
|
21
tty-term.c
21
tty-term.c
@ -1,4 +1,4 @@
|
||||
/* $Id: tty-term.c,v 1.47 2011-04-09 07:48:58 nicm Exp $ */
|
||||
/* $Id: tty-term.c,v 1.48 2011-05-18 20:28:43 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -63,6 +63,7 @@ const struct tty_term_code_entry tty_term_codes[NTTYCODE] = {
|
||||
{ TTYC_EL, TTYCODE_STRING, "el" },
|
||||
{ TTYC_EL1, TTYCODE_STRING, "el1" },
|
||||
{ TTYC_ENACS, TTYCODE_STRING, "enacs" },
|
||||
{ TTYC_FSL, TTYCODE_STRING, "fsl" },
|
||||
{ TTYC_HOME, TTYCODE_STRING, "home" },
|
||||
{ TTYC_HPA, TTYCODE_STRING, "hpa" },
|
||||
{ TTYC_ICH, TTYCODE_STRING, "ich" },
|
||||
@ -175,15 +176,17 @@ const struct tty_term_code_entry tty_term_codes[NTTYCODE] = {
|
||||
{ TTYC_SETAB, TTYCODE_STRING, "setab" },
|
||||
{ TTYC_SETAF, TTYCODE_STRING, "setaf" },
|
||||
{ TTYC_SGR0, TTYCODE_STRING, "sgr0" },
|
||||
{ TTYC_SITM, TTYCODE_STRING, "sitm" },
|
||||
{ TTYC_SMACS, TTYCODE_STRING, "smacs" },
|
||||
{ TTYC_SMCUP, TTYCODE_STRING, "smcup" },
|
||||
{ TTYC_SMIR, TTYCODE_STRING, "smir" },
|
||||
{ TTYC_SMKX, TTYCODE_STRING, "smkx" },
|
||||
{ TTYC_SMSO, TTYCODE_STRING, "smso" },
|
||||
{ TTYC_SMUL, TTYCODE_STRING, "smul" },
|
||||
{ TTYC_SITM, TTYCODE_STRING, "sitm" },
|
||||
{ TTYC_TSL, TTYCODE_STRING, "tsl" },
|
||||
{ TTYC_VPA, TTYCODE_STRING, "vpa" },
|
||||
{ TTYC_XENL, TTYCODE_FLAG, "xenl" },
|
||||
{ TTYC_XT, TTYCODE_FLAG, "XT" },
|
||||
};
|
||||
|
||||
char *
|
||||
@ -255,7 +258,7 @@ tty_term_override(struct tty_term *term, const char *overrides)
|
||||
entstr[strlen(entstr) - 1] = '\0';
|
||||
removeflag = 1;
|
||||
} else
|
||||
continue;
|
||||
val = xstrdup("");
|
||||
|
||||
for (i = 0; i < NTTYCODE; i++) {
|
||||
ent = &tty_term_codes[i];
|
||||
@ -428,6 +431,18 @@ tty_term_find(char *name, int fd, const char *overrides, char **cause)
|
||||
for (; acs[0] != '\0' && acs[1] != '\0'; acs += 2)
|
||||
term->acs[(u_char) acs[0]][0] = acs[1];
|
||||
|
||||
/* On terminals with xterm titles (XT), fill in tsl and fsl. */
|
||||
if (tty_term_flag(term, TTYC_XT) &&
|
||||
!tty_term_has(term, TTYC_TSL) &&
|
||||
!tty_term_has(term, TTYC_FSL)) {
|
||||
code = &term->codes[TTYC_TSL];
|
||||
code->value.string = xstrdup("\033]0;");
|
||||
code->type = TTYCODE_STRING;
|
||||
code = &term->codes[TTYC_FSL];
|
||||
code->value.string = xstrdup("\007");
|
||||
code->type = TTYCODE_STRING;
|
||||
}
|
||||
|
||||
return (term);
|
||||
|
||||
error:
|
||||
|
11
tty.c
11
tty.c
@ -1,4 +1,4 @@
|
||||
/* $Id: tty.c,v 1.208 2011-04-09 07:48:58 nicm Exp $ */
|
||||
/* $Id: tty.c,v 1.209 2011-05-18 20:28:43 tcunha Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
@ -369,14 +369,13 @@ tty_pututf8(struct tty *tty, const struct grid_utf8 *gu)
|
||||
void
|
||||
tty_set_title(struct tty *tty, const char *title)
|
||||
{
|
||||
if (strstr(tty->termname, "xterm") == NULL &&
|
||||
strstr(tty->termname, "rxvt") == NULL &&
|
||||
strcmp(tty->termname, "screen") != 0)
|
||||
if (!tty_term_has(tty->term, TTYC_TSL) ||
|
||||
!tty_term_has(tty->term, TTYC_FSL))
|
||||
return;
|
||||
|
||||
tty_puts(tty, "\033]0;");
|
||||
tty_putcode(tty, TTYC_TSL);
|
||||
tty_puts(tty, title);
|
||||
tty_putc(tty, '\007');
|
||||
tty_putcode(tty, TTYC_FSL);
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user