GNU bug report logs - #30874
Displaying char \x274C with Dejavu Sans Mono gives "X protocol error: BadLength (poly request too large or internal Xlib length error) on protocol request 138"

Previous Next

Package: emacs;

Reported by: Jan Synacek <jsynacek <at> redhat.com>

Date: Tue, 20 Mar 2018 10:26:01 UTC

Severity: important

Tags: fixed

Merged with 30045, 31547, 31758, 31801, 31936

Found in versions 26.1, 27.0.50, 25.3

Fixed in version 26.2

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Robert Pluim <rpluim <at> gmail.com>
To: Jan Synacek <jsynacek <at> redhat.com>
Cc: 30874 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>
Subject: Re: bug#30874: 27.0.50; Emacs crashes
Date: Tue, 03 Apr 2018 11:22:05 +0200
[Message part 1 (text/plain, inline)]
tags 30874 patch
quit

Jan Synacek <jsynacek <at> redhat.com> writes:
>
> Yes, it does fix the problem for me.

Thanks. Proposed patch for master attached. Eli, should I merge this
bugreport with 30045?  The patch fixes that crash for me as well.

Robert

[0001-Ignore-color-fonts-when-using-Xft.patch (text/x-patch, inline)]
From 1efdd2b9a5cb3880e4878dbc7c918ccac9da2393 Mon Sep 17 00:00:00 2001
From: Robert Pluim <rpluim <at> gmail.com>
Date: Tue, 3 Apr 2018 11:06:01 +0200
Subject: [PATCH] Ignore color fonts when using Xft
To: emacs-devel <at> gnu.org

* src/font.c (syms_of_font): New configuration variable
xft-ignore-color-fonts, default t.
* src/ftfont.c (ftfont_spec_pattern): Tell fontconfig to ignore
color fonts if xft-ignore-color-fonts is t.  Bug#30874
---
 etc/NEWS     | 6 ++++++
 src/font.c   | 7 +++++++
 src/ftfont.c | 7 +++++++
 3 files changed, 20 insertions(+)

diff --git a/etc/NEWS b/etc/NEWS
index fd1d04b8a0..177af9f088 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -77,6 +77,12 @@ work right without some adjustment:
 
 * Changes in Emacs 27.1
 
+---
+** New variable 'xft-ignore-color-fonts'.
+Default t means don't try to load color fonts when using Xft, as they
+often cause crashes.  Set it to nil if you really need those fonts.
+(Bug#30874)
+
 ---
 ** The new option 'tooltip-resize-echo-area' avoids truncating tooltip text
 on GUI frames when tooltips are displayed in the echo area.  Instead,
diff --git a/src/font.c b/src/font.c
index a6d3f5d479..fa89805419 100644
--- a/src/font.c
+++ b/src/font.c
@@ -5473,6 +5473,13 @@ Disabling compaction of font caches might enlarge the Emacs memory
 footprint in sessions that use lots of different fonts.  */);
   inhibit_compacting_font_caches = 0;
 
+  DEFVAR_BOOL ("xft-ignore-color-fonts",
+	       Vxft_ignore_color_fonts,
+	       doc: /*
+Non-nil means don't query fontconfig for color fonts, since they often
+cause Xft crashes.  Only has an effect in Xft builds.  Bug#30874.  */);
+  Vxft_ignore_color_fonts = 1;
+
 #ifdef HAVE_WINDOW_SYSTEM
 #ifdef HAVE_FREETYPE
   syms_of_ftfont ();
diff --git a/src/ftfont.c b/src/ftfont.c
index c2e093e633..24a92dd52e 100644
--- a/src/ftfont.c
+++ b/src/ftfont.c
@@ -764,6 +764,13 @@ ftfont_spec_pattern (Lisp_Object spec, char *otlayout, struct OpenTypeSpec **ots
   if (scalable >= 0
       && ! FcPatternAddBool (pattern, FC_SCALABLE, scalable ? FcTrue : FcFalse))
     goto err;
+#ifdef HAVE_XFT
+  /* We really don't like color fonts, they cause Xft crashes.  See
+     Bug#30874.  */
+  if (Vxft_ignore_color_fonts
+      && ! FcPatternAddBool(pattern, FC_COLOR, FcFalse))
+    goto err;
+#endif
 
   goto finish;
 
-- 
2.17.0.rc1.35.g90bbd502d


This bug report was last modified 6 years and 164 days ago.

Previous Next


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