From f83762e678d9c9475bb4ed2912320d32c3c092ec Mon Sep 17 00:00:00 2001 From: Aric Stewart Date: Wed, 8 Feb 2012 08:18:27 -0600 Subject: [PATCH] gdi32: Allow font replacements to be specified either in localized name or English name. --- dlls/gdi32/freetype.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 2a997428ff5..55c82bae3ab 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -937,6 +937,21 @@ static Family *find_family_from_name(const WCHAR *name) return NULL; } +static Family *find_family_from_any_name(const WCHAR *name) +{ + Family *family; + + LIST_FOR_EACH_ENTRY(family, &font_list, Family, entry) + { + if(!strcmpiW(family->FamilyName, name)) + return family; + if(family->EnglishName && !strcmpiW(family->EnglishName, name)) + return family; + } + + return NULL; +} + static void DumpSubstList(void) { FontSubst *psub; @@ -1888,13 +1903,13 @@ static void LoadReplaceList(void) /* "NewName"="Oldname" */ WideCharToMultiByte(CP_ACP, 0, value, -1, familyA, sizeof(familyA), NULL, NULL); - if(!find_family_from_name(value)) + if(!find_family_from_any_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)) { + if(!strcmpiW(family->FamilyName, data) || (family->EnglishName && !strcmpiW(family->EnglishName, 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),