Subject: Re: bug#33398: 26.1, netbsd-8; Hi Lock Faces, Hi Green B, default setting suggestion

From: Juri Linkov <[email-masked]>
Date: Sun, 25 Nov 2018 22:25:25 +0200

>> >>  (defface hi-pink
>> >> -  '((((background dark)) (:background "pink" :foreground "black"))
>> >> -    (t (:background "pink")))
>> >> +  '((((min-colors 88) (background dark))
>> >> +     (:background "pink" :foreground "black"))
>> >> +    (((background dark)) (:background "red" :foreground "black"))
>> >> +    (((min-colors 88)) (:background "pink"))
>> >> +    (t (:background "red")))
>> >>    "Face for hi-lock mode."
>> >>    :group 'hi-lock-faces)
>> >
>> > Thanks for working on this, but unfortunately changing the default
>> > colors for Emacs faces is not that easy (which is why we do that only
>> > very rarely).
>> 
>> I understand that face changing is very sensitive area, so I don't insist
>> on these changes if the result is worse.  What I was trying to do is to
>> add 2 more default colors: the current 4 is too small number of the default
>> background colors, so adding 2 colors will at least cover all available
>> 6 non-black-white colors on a 8-color TTY.
>
> Then I don't understand why you also changed the faces we had
> already.  Leaving them alone will lower the risk that someone will
> become annoyed by the changes.

The problem is that the condition '(t (:background "pink"))' is
automatically translated to "magenta" on a 8-color TTY.  And in the
'hi-blue' face '(t (:background "light blue"))' is translated to "cyan".

So to add a new face with a "blue" background on a 8-color TTY
with the condition '(t (:background "blue"))' we have no suitable name
for a new face, become the most suitable name 'hi-blue' is already
taken by the existing face that is displayed as "cyan".

The same problem is with 'hi-pink' that is currently translated to
"magenta", not to "red" on a 8-color TTY.

>> emacs -Q -nw --color=8 -f list-colors-display
>> 
>> displays a list of 8 colors, good.  But running
>> 
>> emacs -Q -nw --color=16 -f list-colors-display
>> 
>> displays a list of 256 colors, the same number of colors properly displayed by
>> 
>> emacs -Q -nw --color=256 -f list-colors-display
>> 
>> Is this a bug in Emacs?
>
> Not a bug, a subtlety: the only numeric argument you can reliably
> submit to --color= is 8, because it alone has a standard set of
> termcap/terminfo commands to set and reset colors.  Maybe we should
> amend the documentation so that people don't expect other numbers to
> work.

Currently it's documented in (info "(emacs) Colors X")

‘--color=MODE’
...
     ‘NUM’
          ...
          Depending on your terminal’s capabilities, Emacs might be able
          to turn on a color mode for 8, 16, 88, or 256 as the value of NUM.

I guess the key point is "Depending on your terminal’s capabilities".
This might explain why values other than 8 and 256 are not supported.