# HG changeset patch # User Jason Rumney # Date 1193442629 0 # Node ID 2060802cc53f30d154b036430394268b406ab8e2 # Parent 6277bc0e513a8b1c8ba49b11159fc984b0d34a0e (add_font_name_to_list): Avoid vertical fonts. (font_matches_spec): Remove debug output. (add_font_entity_to_list): Avoid using substituted fonts. diff -r 6277bc0e513a -r 2060802cc53f src/w32font.c --- a/src/w32font.c Tue Oct 23 04:40:55 2007 +0000 +++ b/src/w32font.c Fri Oct 26 23:50:29 2007 +0000 @@ -639,8 +639,14 @@ 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 @@ 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 @@ 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,