# HG changeset patch # User Kenichi Handa # Date 1239625982 0 # Node ID 67e0d4d902b4d5feb10b8298cffa3dd55a116feb # Parent 7aca9a846e08ffcddf1fff914943ee25b47f6659 (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. diff -r 7aca9a846e08 -r 67e0d4d902b4 src/font.c --- 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