changeset 103788:b4588e2be166

(fontset_find_font): Fix previous change.
author Kenichi Handa <handa@m17n.org>
date Thu, 09 Jul 2009 01:05:27 +0000
parents fb68f473a020
children efda23177269
files src/fontset.c
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/fontset.c	Wed Jul 08 14:23:57 2009 +0000
+++ b/src/fontset.c	Thu Jul 09 01:05:27 2009 +0000
@@ -575,25 +575,25 @@
       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 @@
       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;