emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] trunk r114089: * fontset.c (face_for_char): Check char in


From: Jan D.
Subject: [Emacs-diffs] trunk r114089: * fontset.c (face_for_char): Check char in the current face font first
Date: Sun, 01 Sep 2013 09:59:11 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114089
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/15138
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Sun 2013-09-01 11:59:19 +0200
message:
  * fontset.c (face_for_char): Check char in the current face font first
  if HAVE_NS.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/fontset.c                  fontset.c-20091113204419-o5vbwnq5f7feedwu-1079
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-08-31 09:22:53 +0000
+++ b/src/ChangeLog     2013-09-01 09:59:19 +0000
@@ -1,3 +1,8 @@
+2013-09-01  Jan Djärv  <address@hidden>
+
+       * fontset.c (face_for_char): Check char in the current face font first
+       if HAVE_NS (Bug#15138).
+
 2013-08-31  Martin Rudalics  <address@hidden>
 
        * window.c (temp_output_buffer_show): Make sure window returned

=== modified file 'src/fontset.c'
--- a/src/fontset.c     2013-08-03 03:29:03 +0000
+++ b/src/fontset.c     2013-09-01 09:59:19 +0000
@@ -944,6 +944,19 @@
   if (ASCII_CHAR_P (c) || face->fontset < 0)
     return face->ascii_face->id;
 
+#ifdef HAVE_NS
+  if (face->font)
+    {
+      /* Fonts often have characters in other scripts, like symbol, even if 
they
+         don't match script: symbol.  So check if the character is present
+         in the current face first.  Only enable for NS for now, but should
+         perhaps be general?  */
+      Lisp_Object font_object;
+      XSETFONT (font_object, face->font);
+      if (font_has_char (f, font_object, c)) return face->id;
+    }
+#endif
+
   eassert (fontset_id_valid_p (face->fontset));
   fontset = FONTSET_FROM_ID (face->fontset);
   eassert (!BASE_FONTSET_P (fontset));


reply via email to

[Prev in Thread] Current Thread [Next in Thread]