Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 Nov 2024 22:09:47 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 280679] [termcap] [patch] bold colors broken in ncurses apps for xterm-256color
Message-ID:  <bug-280679-227-hTsxxUDfsP@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-280679-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-280679-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D280679

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 >=3D 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 expec=
ted
(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 entri=
es
# 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=3D\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

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-280679-227-hTsxxUDfsP>