diff options
| author | Jan Beich | 2020-06-14 03:51:24 +0000 |
|---|---|---|
| committer | Eli Zaretskii | 2020-06-20 11:16:14 +0300 |
| commit | 50f489b5dc59ba8eacd6dc5bdee98da690a61f2f (patch) | |
| tree | 0d14e5c3931116e3bc2f98a45dc8c24dee7cf429 | |
| parent | ed08512978812220045ff12941d78b99ed32323f (diff) | |
| download | emacs-50f489b5dc59ba8eacd6dc5bdee98da690a61f2f.tar.gz emacs-50f489b5dc59ba8eacd6dc5bdee98da690a61f2f.zip | |
Add fallback for 24-bit terminal color via COLORTERM=truecolor
* src/term.c (init_tty): When COLORTERM=truecolor is defined,
override setaf/setab/colors terminfo capabilities with 24-bit
color support.
* doc/misc/efaq.texi (Colors on a TTY): Mention the possibility to
enable 24-bit color via the COLORTERM environment variable.
(Bug#41846)
Copyright-paperwork-exempt: yes
| -rw-r--r-- | doc/misc/efaq.texi | 4 | ||||
| -rw-r--r-- | src/term.c | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi index f5f01848f77..8f7ed715b52 100644 --- a/doc/misc/efaq.texi +++ b/doc/misc/efaq.texi | |||
| @@ -1595,6 +1595,10 @@ xterm-direct2 xterm with direct-color indexing (old) | |||
| 1595 | xterm-direct xterm with direct-color indexing | 1595 | xterm-direct xterm with direct-color indexing |
| 1596 | @end example | 1596 | @end example |
| 1597 | 1597 | ||
| 1598 | If Terminfo database is not available, but 24-bit direct color mode is | ||
| 1599 | supported, it can still be enabled by defining the environment | ||
| 1600 | variable @env{COLORTERM} to @samp{truecolor}. | ||
| 1601 | |||
| 1598 | Terminals with @samp{RGB} capability treat pixels #000001 - #000007 as | 1602 | Terminals with @samp{RGB} capability treat pixels #000001 - #000007 as |
| 1599 | indexed colors to maintain backward compatibility with applications | 1603 | indexed colors to maintain backward compatibility with applications |
| 1600 | that are unaware of direct color mode. Therefore the seven darkest | 1604 | that are unaware of direct color mode. Therefore the seven darkest |
diff --git a/src/term.c b/src/term.c index 94bf013f4a0..5cbb092ad17 100644 --- a/src/term.c +++ b/src/term.c | |||
| @@ -4168,6 +4168,15 @@ use the Bourne shell command 'TERM=...; export TERM' (C-shell:\n\ | |||
| 4168 | could return 32767. */ | 4168 | could return 32767. */ |
| 4169 | tty->TN_max_colors = 16777216; | 4169 | tty->TN_max_colors = 16777216; |
| 4170 | } | 4170 | } |
| 4171 | /* Fall back to xterm+direct (semicolon version) if requested | ||
| 4172 | by the COLORTERM environment variable. */ | ||
| 4173 | else if ((bg = getenv("COLORTERM")) != NULL | ||
| 4174 | && strcasecmp(bg, "truecolor") == 0) | ||
| 4175 | { | ||
| 4176 | tty->TS_set_foreground = "\033[%?%p1%{8}%<%t3%p1%d%e38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%d%;m"; | ||
| 4177 | tty->TS_set_background = "\033[%?%p1%{8}%<%t4%p1%d%e48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%d%;m"; | ||
| 4178 | tty->TN_max_colors = 16777216; | ||
| 4179 | } | ||
| 4171 | } | 4180 | } |
| 4172 | #endif | 4181 | #endif |
| 4173 | 4182 | ||