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


Message #59 received at 62237 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: sdt <at> sebyte.me, 62237 <at> debbugs.gnu.org
Subject: Re: bug#62237: 28.1 or higher: 24-bit true color breaks colours in
 Emacsen built without X under GNU Screen
Date: Sat, 18 Mar 2023 12:44:45 +0100
>>>>> On Sat, 18 Mar 2023 12:37:30 +0200, Eli Zaretskii <eliz <at> gnu.org> 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

I guess we could do something with not checking COLORTERM under screen
instead.

Robert
-- 

diff --git i/src/dispnew.c w/src/dispnew.c
index 87ec83acdf3..f165c604ae9 100644
--- i/src/dispnew.c
+++ w/src/dispnew.c
@@ -6586,6 +6586,21 @@ init_display_interactive (void)
       exit (1);
     }
 
+  if (!NILP (Vterm_strip_prefixes))
+    {
+      Lisp_Object prefixes = Vterm_strip_prefixes;
+      FOR_EACH_TAIL (prefixes)
+	{
+	  char *c_prefix = SSDATA (XCAR (prefixes));
+	  int len = strlen (c_prefix);
+	  if (strncmp (terminal_type, c_prefix, len) == 0)
+	    {
+	      terminal_type += len;
+	      break;
+	    }
+	}
+    }
+
   {
     struct terminal *t;
     struct frame *f = XFRAME (selected_frame);
@@ -6817,6 +6832,11 @@ syms_of_display (void)
 Possible values are t (below the tool bar), nil (above the tool bar).
 This option affects only builds where the tool bar is not external.  */);
 
+  DEFVAR_LISP ("term-strip-prefixes", Vterm_strip_prefixes,
+	       doc: /* List of prefixes to try to strip from the TERM environment variable.
+This will strip the first matching prefix only.  */);
+  Vterm_strip_prefixes = Fcons (build_string ("screen."), Qnil);
+
   pdumper_do_now_and_after_load (syms_of_display_for_pdumper);
 }
 





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.