summaryrefslogtreecommitdiff
path: root/src/term.c
diff options
context:
space:
mode:
authorRami Ylimäki <rami.ylimaki@vincit.fi>2017-02-18 13:04:55 +0200
committerEli Zaretskii <eliz@gnu.org>2017-02-18 13:04:55 +0200
commite463e5762bbe628be3d15da066a90f079a8468b3 (patch)
tree2aa517f3626acbe0dbc73dc7ad5a8ec7d81656c9 /src/term.c
parent464a51ed46990554bed8a9443168c976d6c3c6d3 (diff)
downloademacs-e463e5762bbe628be3d15da066a90f079a8468b3.tar.gz
Support 24-bit direct colors on text terminals
* src/term.c (init_tty): Use 24-bit terminal colors if corresponding foreground and background functions are present in terminal type definition. * src/tparam.h: Define prototype for tigetstr. * lisp/term/tty-colors.el (tty-color-define): Convert color palette index to pixel value on 16.7M color terminals. (tty-color-24bit): New function to convert color palette index to pixel value on 16.7M color terminals. (tty-color-desc): Don't approximate colors on 16.7M color terminals. * lisp/term/xterm.el (xterm-register-default-colors): Define all named TTY colors on 16.7M color terminals. * doc/misc/efaq.texi (Colors on a TTY): Add instructions on how to enable direct color TTY mode. * etc/NEWS: Mention direct color TTY mode and point to FAQ.
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/term.c b/src/term.c
index b0ff9cb546d..35fa8c931c1 100644
--- a/src/term.c
+++ b/src/term.c
@@ -4131,6 +4131,20 @@ use the Bourne shell command 'TERM=...; export TERM' (C-shell:\n\
tty->TN_max_colors = tgetnum ("Co");
+#ifdef TERMINFO
+ /* Non-standard support for 24-bit colors. */
+ {
+ const char* fg = tigetstr ("setf24");
+ const char* bg = tigetstr ("setb24");
+ if (fg && bg && fg != (char *)-1 && bg != (char *)-1)
+ {
+ tty->TS_set_foreground = fg;
+ tty->TS_set_background = bg;
+ tty->TN_max_colors = 16777216;
+ }
+ }
+#endif
+
tty->TN_no_color_video = tgetnum ("NC");
if (tty->TN_no_color_video == -1)
tty->TN_no_color_video = 0;