(fontset_find_font): Fix previous change.
authorKenichi Handa <handa@m17n.org>
Thu, 9 Jul 2009 01:06:18 +0000 (01:06 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 9 Jul 2009 01:06:18 +0000 (01:06 +0000)
src/ChangeLog
src/fontset.c

index e768928..fec0b8e 100644 (file)
@@ -1,3 +1,7 @@
+2009-07-09  Kenichi Handa  <handa@m17n.org>
+
+       * fontset.c (fontset_find_font): Fix previous change.
+
 2009-07-08  Michael Albinus  <michael.albinus@gmx.de>
 
        * dbusbind.c (xd_initialize, Fdbus_call_method, xd_read_message)
index 20b7c1a..b030887 100644 (file)
@@ -575,25 +575,25 @@ fontset_find_font (fontset, c, face, id, fallback)
       Lisp_Object font_def;
       Lisp_Object font_entity, font_object;
 
+      found_index = i;
       if (i == 0)
        {
-         /* Try the element matching with the charset ID at first.  */
-         found_index = charset_matched;
          if (charset_matched > 0)
            {
+             /* Try the element matching with the charset ID at first.  */
+             found_index = charset_matched;
+             /* Make this negative so that we don't come here in the
+                next loop.  */
              charset_matched = - charset_matched;
+             /* We must try the first element in the next loop.  */
              i--;
            }
        }
-      else if (i != - charset_matched)
-       {
-         found_index = i;
-       }
-      else
+      else if (i == - charset_matched)
        {
          /* We have already tried this element and the followings
-            that have the same font specifications.  So, skip them
-            all.  */
+            that have the same font specifications in the first
+            iteration.  So, skip them all.  */
          rfont_def = AREF (vec, i);
          font_def = RFONT_DEF_FONT_DEF (rfont_def);
          for (; i + 1 < ASIZE (vec); i++)
@@ -610,7 +610,7 @@ fontset_find_font (fontset, c, face, id, fallback)
       rfont_def = AREF (vec, found_index);
       if (NILP (rfont_def))
        {
-         if (charset_matched < 0)
+         if (i < 0)
            continue;
          /* This is a sign of not to try the other fonts.  */
          return Qt;