[Bug 280679] [termcap] [patch] bold colors broken in ncurses apps for xterm-256color
Date: Thu, 21 Nov 2024 22:09:47 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=280679
Jan Beich <jbeich@FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bapt@FreeBSD.org
--- Comment #5 from Jan Beich <jbeich@FreeBSD.org> ---
(In reply to Cullum Smith from comment #4)
> FreeBSD's terminfo seems to have a termcap compatibility layer
ncurses in FreeBSD >= 14 enabled terminfo support (base 61f66a1f4403) but due
to POLA (backlash?) still uses homegrown termcap database by default. Users
seeking advanced terminfo-only features (or Linux-style defaults) are expected
(base b75fb12b6827) to install misc/terminfo-db.
CC @bapt as misc/terminfo-db looks barely documented anywhere.
> special handling in 256-color mode.
0-7 are regular colors, compatible with vt100-color.
8-15 are bright colors, compatible with xterm-16color.
From xterm-256color source:
# This implementation uses a 256-element color map where the first 16 entries
# are shared with the aixterm-compatible colors (and in turn the first 8 are
# shared with the ANSI colors). The three levels (256, 16, 8) account for the
# use of a conditional expression in setaf/setab which reduces the number of
# characters sent to the screen for typical applications.
From xterm(1) manpage:
boldColors (class ColorMode)
Specifies whether to combine bold attribute with colors like
the IBM PC, i.e., map colors 0 through 7 to colors 8 through
15. These normally are the brighter versions of the first 8
colors, hence bold. The default is "true".
> setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
terminfo(5) manpage explains the syntax. Basically, 0-7 colors use \E[3<arg>m,
8-15 colors use \E[9<arg-8>m while the rest use \E[38;5;<arg>m
$ tput setaf 6 | od -a
0000000 esc [ 3 6 m
0000005
$ tput setaf 14 | od -a
0000000 esc [ 9 6 m
0000005
$ tput setaf 22 | od -a
0000000 esc [ 3 8 ; 5 ; 2 2 m
0000012
--
You are receiving this mail because:
You are the assignee for the bug.