Module: wine Branch: master Commit: c015447d074c535349e42ac3faa2384f8b46a231 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c015447d074c535349e42ac3fa...
Author: Jactry Zeng jzeng@codeweavers.com Date: Wed Jul 8 21:54:05 2015 +0800
gdi32: Add multiple font replacement support.
---
dlls/gdi32/freetype.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index e20e390..e57d1a9 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -2292,12 +2292,24 @@ static void LoadReplaceList(void)
dlen = datalen; vlen = valuelen; - while(RegEnumValueW(hkey, i++, value, &vlen, NULL, &type, data, - &dlen) == ERROR_SUCCESS) { - TRACE("Got %s=%s\n", debugstr_w(value), debugstr_w(data)); + while(RegEnumValueW(hkey, i++, value, &vlen, NULL, &type, data, &dlen) == ERROR_SUCCESS) + { /* "NewName"="Oldname" */ if(!find_family_from_any_name(value)) - map_font_family(value, data); + { + if (type == REG_MULTI_SZ) + { + WCHAR *replace = data; + while(*replace) + { + if (map_font_family(value, replace)) + break; + replace += strlenW(replace) + 1; + } + } + else + map_font_family(value, data); + } else TRACE("%s is available. Skip this replacement.\n", debugstr_w(value));