emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r101186: fontset.c (reorder_font_vect


From: Kenichi Handa
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101186: fontset.c (reorder_font_vector): Prefer a font-spec specifying :otf.
Date: Wed, 25 Aug 2010 15:10:09 +0900
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101186 [merge]
committer: Kenichi Handa <address@hidden>
branch nick: trunk
timestamp: Wed 2010-08-25 15:10:09 +0900
message:
  fontset.c (reorder_font_vector): Prefer a font-spec specifying :otf.
modified:
  src/ChangeLog
  src/fontset.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-08-25 04:39:30 +0000
+++ b/src/ChangeLog     2010-08-25 05:58:15 +0000
@@ -1,5 +1,8 @@
 2010-08-25  Kenichi Handa  <address@hidden>
 
+       * fontset.c (reorder_font_vector): Prefer a font-spec specifying
+       :otf.
+
        * composite.c (composition_compute_stop_pos): Don't break
        composition at PT.
        (composition_reseat_it): Likewise.  Fix calculation of character

=== modified file 'src/fontset.c'
--- a/src/fontset.c     2010-08-05 23:34:12 +0000
+++ b/src/fontset.c     2010-08-25 05:58:15 +0000
@@ -283,6 +283,10 @@
 #define RFONT_DEF_OBJECT(rfont_def) AREF (rfont_def, 2)
 #define RFONT_DEF_SET_OBJECT(rfont_def, object)        \
   ASET ((rfont_def), 2, (object))
+/* Score of RFONT_DEF is an integer value; the lowest 8 bits represent
+   the order of listing by font backends, the higher bits represents
+   the order given by charset priority list.  The smaller value is
+   preferable.  */
 #define RFONT_DEF_SCORE(rfont_def) XINT (AREF (rfont_def, 3))
 #define RFONT_DEF_SET_SCORE(rfont_def, score) \
   ASET ((rfont_def), 3, make_number (score))
@@ -412,8 +416,13 @@
       Lisp_Object font_def = RFONT_DEF_FONT_DEF (rfont_def);
       Lisp_Object font_spec = FONT_DEF_SPEC (font_def);
       int score = RFONT_DEF_SCORE (rfont_def) & 0xFF;
+      Lisp_Object otf_spec = Ffont_get (font_spec, QCotf);
 
-      if (! font_match_p (font_spec, font_object))
+      if (! NILP (otf_spec))
+       /* A font-spec with :otf is preferable regardless of encoding
+          and language..  */
+       ;
+      else if (! font_match_p (font_spec, font_object))
        {
          Lisp_Object encoding = FONT_DEF_ENCODING (font_def);
 


reply via email to

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