From 33532613a8572b6dcae51bfe3bbd23f021d0d085 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Thu, 4 Aug 2011 16:15:58 +0100 Subject: [PATCH] gdi32: Don't load a font replacement if any face of the real family exists. --- dlls/gdi32/freetype.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index cfe8c375ad..426dc05f5a 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -1613,19 +1613,24 @@ static void LoadReplaceList(void) /* "NewName"="Oldname" */ WideCharToMultiByte(CP_ACP, 0, value, -1, familyA, sizeof(familyA), NULL, NULL); - /* Find the old family and hence all of the font files - in that family */ - LIST_FOR_EACH(family_elem_ptr, &font_list) { - family = LIST_ENTRY(family_elem_ptr, Family, entry); - if(!strcmpiW(family->FamilyName, data)) { - LIST_FOR_EACH(face_elem_ptr, &family->faces) { - face = LIST_ENTRY(face_elem_ptr, Face, entry); - TRACE("mapping %s %s to %s\n", debugstr_w(family->FamilyName), - debugstr_w(face->StyleName), familyA); - /* Now add a new entry with the new family name */ - AddFontToList(face->file, face->font_data_ptr, face->font_data_size, familyA, family->FamilyName, ADDFONT_FORCE_BITMAP | (face->external ? ADDFONT_EXTERNAL_FONT : 0)); + if(!find_family_from_name(value)) + { + /* Find the old family and hence all of the font files + in that family */ + LIST_FOR_EACH(family_elem_ptr, &font_list) { + family = LIST_ENTRY(family_elem_ptr, Family, entry); + if(!strcmpiW(family->FamilyName, data)) { + LIST_FOR_EACH(face_elem_ptr, &family->faces) { + face = LIST_ENTRY(face_elem_ptr, Face, entry); + TRACE("mapping %s %s to %s\n", debugstr_w(family->FamilyName), + debugstr_w(face->StyleName), familyA); + /* Now add a new entry with the new family name */ + AddFontToList(face->file, face->font_data_ptr, face->font_data_size, + familyA, family->FamilyName, + ADDFONT_FORCE_BITMAP | (face->external ? ADDFONT_EXTERNAL_FONT : 0)); + } + break; } - break; } } /* reset dlen and vlen */ -- 2.32.0.93.g670b81a890