From e992ac0a639d01df8f04c18061b0d73f792ff2c2 Mon Sep 17 00:00:00 2001
From: Eli Zaretskii <eliz@gnu.org>
Date: Wed, 16 Nov 2016 18:11:33 +0200
Subject: Fix sluggish display of symbols in UTF-8 language environment

* lisp/international/fontset.el (setup-default-fontset): Make sure
Symbola and FreeMono are set up in the default fontset as belonging
to the "iso10646-1" registry.  In the UTF-8 locale, this avoids a
long and futile search for a suitable font, whose side effect is a
lot of consing, which then hits the font-cache compacting issue,
and causes very sluggish redisplay of characters displayed by
these fonts.  All this happens because the default for the
registry is "iso8859-1".  (Bug#24953)
---
 lisp/international/fontset.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 612c0a08ad7..659f03a2a67 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -812,10 +812,11 @@
              (#x1F700 . #x1F77F)	;; Alchemical Symbols
              (#x1F780 . #x1F7FF)	;; Geometric Shapes Extended
              (#x1F800 . #x1F8FF)))	;; Supplemental Arrows-C
-    (set-fontset-font "fontset-default" symbol-subgroup "Symbola" nil 'prepend))
+    (set-fontset-font "fontset-default" symbol-subgroup
+                      '("Symbola" . "iso10646-1") nil 'prepend))
   ;; Box Drawing and Block Elements
   (set-fontset-font "fontset-default" '(#x2500 . #x259F)
-                    "FreeMono" nil 'prepend)
+                    '("FreeMono" . "iso10646-1") nil 'prepend)
 
   ;; Since standard-fontset-spec on X uses fixed-medium font, which
   ;; gets mapped to a iso8859-1 variant, we would like to prefer its
-- 
cgit v1.2.1