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

Previous Next

Package: emacs;

Reported by: Sebastian Tennant <sdt <at> sebyte.me>

Date: Fri, 17 Mar 2023 09:42:02 UTC

Severity: normal

Found in version 28.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Sebastian Tennant <sdt <at> sebyte.me>
Cc: 62237 <at> debbugs.gnu.org
Subject: bug#62237: 28.1 or higher: 24-bit true color breaks colours in Emacsen built without X under GNU Screen
Date: Fri, 17 Mar 2023 14:15:34 +0200
> From: Sebastian Tennant <sdt <at> sebyte.me>
> Date: Fri, 17 Mar 2023 09:41:36 +0000
> 
> Summary: Support for 24-bit true colour, added in Emacs 28.1, breaks
>          colours in Emacsen built without X support and running under
>          GNU Screen (v4.08.00).
> 
> Steps to reproduce:
> 
>  1. Build Emacs >= 28.1 without X support.  The two configurations I have
>     tested are below:
> 
>      ./configure\                          ./configure\
>        --prefix=[…]\                          --prefix=[…]\
>        --enable-check-lisp-object-type\       --enable-check-lisp-object-type\
>        --disable-acl\                         --disable-acl\
>        --without-dbus\                        --without-all\
>        --without-gconf\                       --without-x\
>        --without-gif\                         --with-file-notification=yes\
>        --without-gsettings\                   --with-gnutls\
>        --without-jpeg\                        --with-gpm\
>        --without-modules\                     --with-json\
>        --without-png\                         --with-mailutils\
>        --without-rsvg\                        --with-modules\
>        --without-selinux\                     --with-native-compilation\
>        --without-sound\                       --with-libsystemd\
>        --without-tiff\                        --with-small-ja-dic\
>        --without-x\                           --with-sqlite3\
>        --without-xpm\                         --with-threads\
>                                               --with-xml2\
>                                               --with-zlib\
> 
>  2. Launch a terminal program (e.g. GNOME Terminal) and run GNU Screen
>     (bypassing any .screenrc):
> 
>      $ touch foo
>      $ screen -c foo
> 
>  3. Run Emacs with 24-bit true colour active and observe the broken colours:
> 
>      $ COLORTERM=truecolor ./src/emacs -Q
> 
>     Screenshot: https://download.sebyte.me/misc/truecolor-active.png
> 
>  4. Run Emacs with 24-bit true colour inactive and observe the correct colours:
> 
>      $ COLORTERM= ./src/emacs -Q
> 
>     Screenshot: https://download.sebyte.me/misc/truecolor-inactive.png

Thanks for the report, but it lacks several crucial details for us to
investigate the problem.

First, if you can build the latest emacs-29 branch of the Emacs Git
repository, please try that and tell whether the problem persists or
have been solved in the meantime.

If the problem persists in Emacs 29, then please tell why you need to
use COLORTERM=truecolor at all.  Emacs uses that as fallback, in case
all the other known methods of specifying true color via terminfo
didn't work.  This fallback relies on an assumption regarding the
commands to send to the terminal to turn on and off the colors, see
the file term.c in the Emacs source tree around line 4160.  The other
known methods of specifying support for true color use
'setf24'/'setb24' capabilities, or the 'RGB' flag is set by terminfo.

So setting COLORTERM=truecolor is the responsibility of the user: the
user should _only_ set it if the text-mode terminal actually supports
true color using the commands Emacs expects to work in that case, but
Emacs cannot detect that without COLORTERM=truecolor being set.  Is
that your case?

Finally, please show the display produced by "M-x list-colors-display"
in both cases: when COLORTERM=truecolor is and isn't set.  It is
important for us to know how many colors Emacs uses in each situation.

Thanks.




This bug report was last modified 2 years and 57 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.