Subject: bug#62237: 28.1 or higher: 24-bit true color breaks colours in Emacsen built without X under GNU Screen

From: Eli Zaretskii <[email-masked]>
Date: Mon, 20 Mar 2023 14:15:35 +0200

> From: Robert Pluim <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Mon, 20 Mar 2023 09:36:39 +0100
> 
> >>>>> On Sat, 18 Mar 2023 15:29:52 +0200, Eli Zaretskii <[email-masked]> said:
> 
>     >> From: Robert Pluim <[email-masked]>
>     >> Cc: [email-masked],  [email-masked]
>     >> Date: Sat, 18 Mar 2023 12:44:45 +0100
>     >> 
>     >> >>>>> On Sat, 18 Mar 2023 12:37:30 +0200, Eli Zaretskii <[email-masked]> said:
>     >> 
>     Eli> Then I guess we should install your proposed fix in init_tty.
>     >> 
>     >> In emacs-29? That seems a bit radical. Patch below in any case
> 
>     Eli> Yes, I think in emacs-29.  Why "radical"?
> 
> Changing the interpretation of the userʼs TERM seems pretty radical to
> me, even if it will tend to improve usersʼ experience.

If screen.FOO is not recognizable while FOO is, then we cannot
possibly break anything by this change, however radical.  (But it
sounds like I misunderstood what is going on here, see below.)

>     >> I guess we could do something with not checking COLORTERM under screen
>     >> instead.
> 
>     Eli> That's a separate issue, from where I stand.  Users can unset
>     Eli> COLORTERM, but their true terminal type will still be "hidden" behind
>     Eli> the "screen." prefix, won't it?  The terminal type is about more than
>     Eli> just the colors.  Or does terminfo know about this "screen." business?
> 
> I have both a 'screen.xterm-256color' and a 'xterm-256color' terminfo
> file. I donʼt think terminfo does any prefix stripping, as thereʼs a
> whole bunch of screen.$TERM files, which would be unnecessary if
> stripping were happening.

Are the screen.$TERM files different from the corresponding $TERM
ones?  If so, what are the differences?

And if screen.$TERM files are available in the terminfo DB, then why
did you suggest to do something in init_tty in the first place?

Also, what about the lisp/term/ files -- are we loading the right
files when TERM -s set to screen.SOMETHING? should we?

> Perhaps the best thing to do is put an entry in etc/PROBLEMS?

About what?  If screen.FOO files are available, then everything should
already work correctly OOTB, no?  Or what am I missing here?