From 20a2b75666b5343b65c1dc78f11b206a4558d931 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Fri, 26 Oct 2007 23:50:29 +0000 Subject: [PATCH] (add_font_name_to_list): Avoid vertical fonts. (font_matches_spec): Remove debug output. (add_font_entity_to_list): Avoid using substituted fonts. --- src/w32font.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/w32font.c b/src/w32font.c index 16ae98f13bb..5c3f6b7af08 100644 --- a/src/w32font.c +++ b/src/w32font.c @@ -639,8 +639,14 @@ add_font_name_to_list (logical_font, physical_font, font_type, list_object) LPARAM list_object; { Lisp_Object* list = (Lisp_Object *) list_object; - Lisp_Object family = intern_downcase (logical_font->elfLogFont.lfFaceName, - strlen (logical_font->elfLogFont.lfFaceName)); + Lisp_Object family; + + /* Skip vertical fonts (intended only for printing) */ + if (logical_font->elfLogFont.lfFaceName[0] == '@') + return 1; + + family = intern_downcase (logical_font->elfLogFont.lfFaceName, + strlen (logical_font->elfLogFont.lfFaceName)); if (! memq_no_quit (family, *list)) *list = Fcons (family, *list); @@ -785,10 +791,7 @@ font_matches_spec (type, font, spec) int slant = XINT (val); if ((slant > 150 && !font->ntmTm.tmItalic) || (slant <= 150 && font->ntmTm.tmItalic)) - { - OutputDebugString ("italic mismatch"); return 0; - } } /* Check extra parameters. */ @@ -944,7 +947,11 @@ add_font_entity_to_list (logical_font, physical_font, font_type, lParam) if (logfonts_match (&logical_font->elfLogFont, &match_data->pattern) && font_matches_spec (font_type, physical_font, - match_data->orig_font_spec)) + match_data->orig_font_spec) + /* Avoid Windows substitution so we can control substitution with + alternate-fontname-alist. */ + && !strnicmp (&logical_font->elfFullName, + &match_data->pattern.lfFaceName, LF_FACESIZE)) { Lisp_Object entity = w32_enumfont_pattern_entity (match_data->frame, logical_font, -- 2.39.5