summaryrefslogtreecommitdiffstats
path: root/tty-term.c
diff options
context:
space:
mode:
Diffstat (limited to 'tty-term.c')
-rw-r--r--tty-term.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/tty-term.c b/tty-term.c
index 59a1bbba..f1e6d878 100644
--- a/tty-term.c
+++ b/tty-term.c
@@ -60,6 +60,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" },
@@ -172,15 +173,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 *
@@ -252,7 +255,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];
@@ -423,6 +426,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: