From 7395a3b3278acf50a66294d2f799a9e62b146b2d Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Mon, 13 Apr 2009 12:33:02 +0000 Subject: [PATCH] (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. --- src/font.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/font.c b/src/font.c index bb83fe938a0..58518727bd6 100644 --- a/src/font.c +++ b/src/font.c @@ -2752,7 +2752,7 @@ font_delete_unmatched (list, spec, size) if (prop < FONT_SPEC_MAX) val = Fcons (entity, val); } - return val; + return Fnreverse (val); } @@ -3223,6 +3223,11 @@ font_select_entity (frame, entities, attrs, pixel_size, c) 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 @@ font_select_entity (frame, entities, attrs, pixel_size, c) } 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 @@ font_load_for_lface (f, attrs, spec) { 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 -- 2.11.4.GIT