]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow selection of font for symbols as in Emacs 24.x
authorEli Zaretskii <eliz@gnu.org>
Sat, 8 Oct 2016 19:03:51 +0000 (22:03 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 8 Oct 2016 19:03:51 +0000 (22:03 +0300)
* src/fontset.c (syms_of_fontset) <use-default-font-for-symbols>:
New boolean variable.
(face_for_char): Use it to fall back to pre-Emacs 25.1 behavior
when selecting fonts for displaying symbol and punctuation
characters.  (Bug#24644)

* etc/NEWS: Mention the new variable.

etc/NEWS
src/fontset.c

index 274226b9fd9362722894ec26f8c6cc0ed2011061..8c27289d5e0301ff4b51b78c416acc3cf49f4bfb 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -24,8 +24,19 @@ This is a bug-fix release with (almost) no new features.
 `find-function-after-hook'.
 
 +++
-*** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
-The Info-quoted and tex-verbatim faces now default to inheriting from it.
+** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
+The Info-quoted and tex-verbatim faces now default to inheriting from
+it.
+
+---
+** New variable 'use-default-font-for-symbols' for backward compatibility.
+This variable allows to get back pre-Emacs 25 behavior whereby the
+font for displaying symbol and punctuation characters was always
+selected according to your fontset setup.  Emacs 25 by default tries
+to use the default face's font for such characters, disregarding the
+fontsets if the default font supports these characters.  Set this
+variable to nil to disable the new behavior and get back the old
+behavior.
 
 \f
 * Installation Changes in Emacs 25.1
index dc037a807cd2cd8d7e684aabb0c4361640248436..74e7df5ae0968f19dd7523d530153a9d9abb31f1 100644 (file)
@@ -883,7 +883,8 @@ face_for_char (struct frame *f, struct face *face, int c,
   if (ASCII_CHAR_P (c) || CHAR_BYTE8_P (c))
     return face->ascii_face->id;
 
-  if (c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol))
+  if (use_default_font_for_symbols  /* let the user disable this feature */
+      && c > 0 && EQ (CHAR_TABLE_REF (Vchar_script_table, c), Qsymbol))
     {
       /* Fonts often have characters for punctuation and other
          symbols, even if they don't match the 'symbol' script.  So
@@ -2112,6 +2113,16 @@ This affects how a composite character which contains
 such a character is displayed on screen.  */);
   Vuse_default_ascent = Qnil;
 
+  DEFVAR_BOOL ("use-default-font-for-symbols", use_default_font_for_symbols,
+              doc: /*
+If non-nil, use the default face's font for symbols and punctuation.
+
+By default, Emacs will try to use the default face's font for
+displaying symbol and punctuation characters, disregarding the
+fontsets, if the default font can display the character.
+Set this to nil to make Emacs honor the fontsets instead.  */);
+  use_default_font_for_symbols = 1;
+
   DEFVAR_LISP ("ignore-relative-composition", Vignore_relative_composition,
               doc: /*
 Char table of characters which are not composed relatively.