aboutsummaryrefslogtreecommitdiff
path: root/tty-term.c
diff options
context:
space:
mode:
authornicm <nicm>2020-01-28 11:39:51 +0000
committernicm <nicm>2020-01-28 11:39:51 +0000
commita6129e99749d2bbc8b4a991c7b5d09300aa55f39 (patch)
treefcfccf41c309a9db3a8b3af30bc629bdb9169f4c /tty-term.c
parent84995ae1726589b5fb04e002e43496775e0ebfcd (diff)
downloadrtmux-a6129e99749d2bbc8b4a991c7b5d09300aa55f39.tar.gz
rtmux-a6129e99749d2bbc8b4a991c7b5d09300aa55f39.tar.bz2
rtmux-a6129e99749d2bbc8b4a991c7b5d09300aa55f39.zip
If we can identify the terminal as iTerm2 or as tmux, we can be sure
they support 256 and RGB colours, so set those flags too.
Diffstat (limited to 'tty-term.c')
-rw-r--r--tty-term.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/tty-term.c b/tty-term.c
index 164ab2f1..ef7d7905 100644
--- a/tty-term.c
+++ b/tty-term.c
@@ -522,11 +522,16 @@ tty_term_find(char *name, int fd, char **cause)
goto error;
}
- /* Figure out if we have 256 colours (or more). */
- if (tty_term_number(term, TTYC_COLORS) >= 256 ||
- tty_term_has(term, TTYC_RGB))
+ /* Set flag if terminal has 256 colours. */
+ if (tty_term_number(term, TTYC_COLORS) >= 256)
term->flags |= TERM_256COLOURS;
+ /* Set flag if terminal has RGB colours. */
+ if ((tty_term_flag(term, TTYC_TC) || tty_term_has(term, TTYC_RGB)) ||
+ (tty_term_has(term, TTYC_SETRGBF) &&
+ tty_term_has(term, TTYC_SETRGBB)))
+ term->flags |= TERM_RGBCOLOURS;
+
/*
* Terminals without xenl (eat newline glitch) wrap at at $COLUMNS - 1
* rather than $COLUMNS (the cursor can never be beyond $COLUMNS - 1).
@@ -561,22 +566,7 @@ tty_term_find(char *name, int fd, char **cause)
code->type = TTYCODE_STRING;
}
- /*
- * On terminals with RGB colour (Tc or RGB), fill in setrgbf and
- * setrgbb if they are missing.
- */
- if ((tty_term_flag(term, TTYC_TC) || tty_term_flag(term, TTYC_RGB)) &&
- !tty_term_has(term, TTYC_SETRGBF) &&
- !tty_term_has(term, TTYC_SETRGBB)) {
- code = &term->codes[TTYC_SETRGBF];
- code->value.string = xstrdup("\033[38;2;%p1%d;%p2%d;%p3%dm");
- code->type = TTYCODE_STRING;
- code = &term->codes[TTYC_SETRGBB];
- code->value.string = xstrdup("\033[48;2;%p1%d;%p2%d;%p3%dm");
- code->type = TTYCODE_STRING;
- }
-
- /* Log it. */
+ /* Log the capabilities. */
for (i = 0; i < tty_term_ncodes(); i++)
log_debug("%s%s", name, tty_term_describe(term, i));