diff options
author | nicm <nicm> | 2020-01-28 11:39:51 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-01-28 11:39:51 +0000 |
commit | a6129e99749d2bbc8b4a991c7b5d09300aa55f39 (patch) | |
tree | fcfccf41c309a9db3a8b3af30bc629bdb9169f4c /tty-term.c | |
parent | 84995ae1726589b5fb04e002e43496775e0ebfcd (diff) | |
download | rtmux-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.c | 28 |
1 files changed, 9 insertions, 19 deletions
@@ -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)); |