changeset 102943:67e0d4d902b4

(font_delete_unmatched): Preserve the order of list elements. (font_select_entity): Suppress the code to optimize for the same kind of fonts. (font_load_for_lface): Get a font that supports at least ASCII characters.
author Kenichi Handa <handa@m17n.org>
date Mon, 13 Apr 2009 12:33:02 +0000
parents 7aca9a846e08
children 44a517fa4d12
files src/font.c
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/font.c	Sun Apr 12 19:31:36 2009 +0000
+++ b/src/font.c	Mon Apr 13 12:33:02 2009 +0000
@@ -2752,7 +2752,7 @@
       if (prop < FONT_SPEC_MAX)
 	val = Fcons (entity, val);
     }
-  return val;
+  return Fnreverse (val);
 }
 
 
@@ -3223,6 +3223,11 @@
       int j;
 
       font_entity = AREF (entities, i);
+#if 0
+      /* The following code is intended to avoid checking of
+	 font_has_char repeatedly for bitmap fonts that differs only
+	 in pixelsize.  But, it doesn't work well if fontconfig is
+	 configured to find BDF/PFC fonts.  */
       if (i > 0)
 	{
 	  for (j = FONT_FOUNDRY_INDEX; j <= FONT_REGISTRY_INDEX; j++)
@@ -3233,6 +3238,7 @@
 	}
       for (j = FONT_FOUNDRY_INDEX; j <= FONT_REGISTRY_INDEX; j++)
 	props[j] = AREF (font_entity, j);
+#endif
       result = font_has_char (f, font_entity, c);
       if (result > 0)
 	return font_entity;
@@ -3455,7 +3461,8 @@
 {
   Lisp_Object entity;
 
-  entity = font_find_for_lface (f, attrs, spec, -1);
+  /* We assume that a font that supports 'A' supports ASCII chars.  */
+  entity = font_find_for_lface (f, attrs, spec, 'A');
   if (NILP (entity))
     {
       /* No font is listed for SPEC, but each font-backend may have