[PATCH v3 0/4] MR1089: win32u/font: Add font links for MS Gothic, MingLiU, Microsoft JhengHei.
More font links are added to avoid issues related to missing font links. Data comes from: https://testbot.winehq.org/JobDetails.pl?Key=125079 Test program in the tests above: [font_link_reg.c](/uploads/9d4a722450f0dd88344a2b098770aaa0/font_link_reg.c) -- v3: win32u: Add font links for MS Gothic. win32u: Add font links for MingLiU. win32u: Add font links for Microsoft JhengHei. win32u: Add locale_dependent member to struct system_link_reg. https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/win32u/font.c | 69 ++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index 5762d55eab5..eddee9968f4 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -1619,6 +1619,9 @@ static const char system_link_ms_ui_gothic[] = static const struct system_link_reg { const WCHAR *font_name; + BOOL locale_dependent; + const char *link_non_cjk; + DWORD link_non_cjk_len; const char *link_sc; DWORD link_sc_len; const char *link_tc; @@ -1627,43 +1630,34 @@ static const struct system_link_reg DWORD link_jp_len; const char *link_kr; DWORD link_kr_len; - const char *link_non_cjk; - DWORD link_non_cjk_len; } default_system_link[] = { { - tahomaW, + tahomaW, TRUE, + system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), system_link_tahoma_sc, sizeof(system_link_tahoma_sc), system_link_tahoma_tc, sizeof(system_link_tahoma_tc), system_link_tahoma_jp, sizeof(system_link_tahoma_jp), system_link_tahoma_kr, sizeof(system_link_tahoma_kr), - system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), }, { - microsoft_sans_serifW, + microsoft_sans_serifW, TRUE, + system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), system_link_tahoma_sc, sizeof(system_link_tahoma_sc), system_link_tahoma_tc, sizeof(system_link_tahoma_tc), system_link_tahoma_jp, sizeof(system_link_tahoma_jp), system_link_tahoma_kr, sizeof(system_link_tahoma_kr), - system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), }, { - lucida_sans_unicodeW, + lucida_sans_unicodeW, TRUE, + system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), system_link_tahoma_sc, sizeof(system_link_tahoma_sc), system_link_tahoma_tc, sizeof(system_link_tahoma_tc), system_link_tahoma_jp, sizeof(system_link_tahoma_jp), system_link_tahoma_kr, sizeof(system_link_tahoma_kr), - system_link_tahoma_non_cjk, sizeof(system_link_tahoma_non_cjk), - }, - { - ms_ui_gothicW, - system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic), - system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic), - system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic), - system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic), - system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic), }, + { ms_ui_gothicW, FALSE, system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic) }, }; static void populate_system_links( const WCHAR *name, const WCHAR * const *values ) @@ -2772,27 +2766,30 @@ static void update_font_system_link_info(void) { const struct system_link_reg *link_reg = &default_system_link[i]; - switch (ansi_cp.CodePage) + link = link_reg->link_non_cjk; + len = link_reg->link_non_cjk_len; + + if (link_reg->locale_dependent) { - case 932: - link = link_reg->link_jp; - len = link_reg->link_jp_len; - break; - case 936: - link = link_reg->link_sc; - len = link_reg->link_sc_len; - break; - case 949: - link = link_reg->link_kr; - len = link_reg->link_kr_len; - break; - case 950: - link = link_reg->link_tc; - len = link_reg->link_tc_len; - break; - default: - link = link_reg->link_non_cjk; - len = link_reg->link_non_cjk_len; + switch (ansi_cp.CodePage) + { + case 932: + link = link_reg->link_jp; + len = link_reg->link_jp_len; + break; + case 936: + link = link_reg->link_sc; + len = link_reg->link_sc_len; + break; + case 949: + link = link_reg->link_kr; + len = link_reg->link_kr_len; + break; + case 950: + link = link_reg->link_tc; + len = link_reg->link_tc_len; + break; + } } set_multi_value_key(hkey, link_reg->font_name, link, len); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/win32u/font.c | 62 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index eddee9968f4..97c9153c006 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -1510,6 +1510,16 @@ static const WCHAR p_ming_li_uW[] = {'P','M','i','n','g','L','i','U',0}; static const WCHAR batangW[] = {'B','a','t','a','n','g',0}; +static const WCHAR microsoft_jheng_heiW[] = + {'M','i','c','r','o','s','o','f','t',' ','J','h','e','n','g','H','e','i',0}; +static const WCHAR microsoft_jheng_hei_boldW[] = + {'M','i','c','r','o','s','o','f','t',' ','J','h','e','n','g','H','e','i',' ','B','o','l','d',0}; +static const WCHAR microsoft_jheng_hei_uiW[] = + {'M','i','c','r','o','s','o','f','t',' ','J','h','e','n','g','H','e','i',' ','U','I',0}; +static const WCHAR microsoft_jheng_hei_ui_boldW[] = + {'M','i','c','r','o','s','o','f','t',' ','J','h','e','n','g','H','e','i',' ','U','I',' ','B','o','l','d',0}; +static const WCHAR microsoft_jheng_hei_ui_lightW[] = + {'M','i','c','r','o','s','o','f','t',' ','J','h','e','n','g','H','e','i',' ','U','I',' ','L','i','g','h','t',0}; static const WCHAR * const font_links_list[] = { @@ -1616,6 +1626,51 @@ static const char system_link_ms_ui_gothic[] = "MALGUN.TTF,Malgun Gothic\0" "SEGUISYM.TTF,Segoe UI Symbol\0"; +static const char system_link_microsoft_jheng_hei[] = + "SEGOEUI.TTF,Segoe UI\0" + "MINGLIU.TTC,MingLiU\0" + "MSYH.TTC,Microsoft YaHei\0" + "MEIRYO.TTC,Meiryo\0" + "MALGUN.TTF,Malgun Gothic\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_microsoft_jheng_hei_bold[] = + "SEGOEUIB.TTF,Segoe UI Bold\0" + "MINGLIU.TTC,MingLiU\0" + "MSYHBD.TTC,Microsoft YaHei Bold\0" + "MEIRYOB.TTC,Meiryo Bold\0" + "MALGUNBD.TTF,Malgun Gothic Bold\0" + "YUGOTHB.TTC,Yu Gothic UI Bold\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_microsoft_jheng_hei_ui[] = + "SEGOEUI.TTF,Segoe UI\0" + "MINGLIU.TTC,MingLiU\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "MEIRYO.TTC,Meiryo UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_microsoft_jheng_hei_ui_bold[] = + "SEGOEUIB.TTF,Segoe UI Bold\0" + "MINGLIU.TTC,MingLiU\0" + "MSYHBD.TTC,Microsoft YaHei UI Bold\0" + "MEIRYOB.TTC,Meiryo UI Bold\0" + "MALGUNBD.TTF,Malgun Gothic Bold\0" + "YUGOTHB.TTC,Yu Gothic UI Bold\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_microsoft_jheng_hei_ui_light[] = + "SEGOEUIL.TTF,Segoe UI Light\0" + "MINGLIU.TTC,MingLiU\0" + "MSYHL.TTC,Microsoft YaHei UI Light\0" + "MEIRYO.TTC,Meiryo UI\0" + "MALGUNSL.TTF,Malgun Gothic Semilight\0" + "YUGOTHL.TTC,Yu Gothic UI Light\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + static const struct system_link_reg { const WCHAR *font_name; @@ -1657,7 +1712,12 @@ default_system_link[] = system_link_tahoma_jp, sizeof(system_link_tahoma_jp), system_link_tahoma_kr, sizeof(system_link_tahoma_kr), }, - { ms_ui_gothicW, FALSE, system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic) }, + { ms_ui_gothicW, FALSE, system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic) }, + { microsoft_jheng_heiW, FALSE, system_link_microsoft_jheng_hei, sizeof(system_link_microsoft_jheng_hei) }, + { microsoft_jheng_hei_boldW, FALSE, system_link_microsoft_jheng_hei_bold, sizeof(system_link_microsoft_jheng_hei_bold) }, + { microsoft_jheng_hei_uiW, FALSE, system_link_microsoft_jheng_hei_ui, sizeof(system_link_microsoft_jheng_hei_ui) }, + { microsoft_jheng_hei_ui_boldW, FALSE, system_link_microsoft_jheng_hei_ui_bold, sizeof(system_link_microsoft_jheng_hei_ui_bold) }, + { microsoft_jheng_hei_ui_lightW, FALSE, system_link_microsoft_jheng_hei_ui_light, sizeof(system_link_microsoft_jheng_hei_ui_light) }, }; static void populate_system_links( const WCHAR *name, const WCHAR * const *values ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/win32u/font.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index 97c9153c006..5ba111436d7 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -1506,8 +1506,18 @@ static const WCHAR sim_sunW[] = {'S','i','m','S','u','n',0}; static const WCHAR gulimW[] = {'G','u','l','i','m',0}; +static const WCHAR ming_li_uW[] = + {'M','i','n','g','L','i','U',0}; static const WCHAR p_ming_li_uW[] = {'P','M','i','n','g','L','i','U',0}; +static const WCHAR ming_li_u_hkscsW[] = + {'M','i','n','g','L','i','U','_','H','K','S','C','S',0}; +static const WCHAR ming_li_u_ext_bW[] = + {'M','i','n','g','L','i','U','-','E','x','t','B',0}; +static const WCHAR p_ming_li_u_ext_bW[] = + {'P','M','i','n','g','L','i','U','-','E','x','t','B',0}; +static const WCHAR ming_li_u_hkscs_ext_bW[] = + {'M','i','n','g','L','i','U','_','H','K','S','C','S','-','E','x','t','B',0}; static const WCHAR batangW[] = {'B','a','t','a','n','g',0}; static const WCHAR microsoft_jheng_heiW[] = @@ -1671,6 +1681,77 @@ static const char system_link_microsoft_jheng_hei_ui_light[] = "YUGOTHL.TTC,Yu Gothic UI Light\0" "SEGUISYM.TTF,Segoe UI Symbol\0"; +static const char system_link_ming_li_u[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS Mincho\0" + "BATANG.TTC,BatangChe\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_p_ming_li_u[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS PMincho\0" + "BATANG.TTC,Batang\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_ming_li_u_hkscs[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "MINGLIU.TTC,MingLiU\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS Mincho\0" + "BATANG.TTC,BatangChe\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_ming_li_u_ext_b[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "MINGLIU.TTC,MingLiU\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS Mincho\0" + "BATANG.TTC,BatangChe\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_p_ming_li_u_ext_b[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "MINGLIU.TTC,PMingLiU\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS PMincho\0" + "BATANG.TTC,Batang\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_ming_li_u_hkscs_ext_b[] = + "MICROSS.TTF,Microsoft Sans Serif\0" + "MINGLIU.TTC,MingLiU_HKSCS\0" + "MINGLIU.TTC,MingLiU\0" + "SIMSUN.TTC,SimSun\0" + "MSMINCHO.TTC,MS Mincho\0" + "BATANG.TTC,BatangChe\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + static const struct system_link_reg { const WCHAR *font_name; @@ -1718,6 +1799,12 @@ default_system_link[] = { microsoft_jheng_hei_uiW, FALSE, system_link_microsoft_jheng_hei_ui, sizeof(system_link_microsoft_jheng_hei_ui) }, { microsoft_jheng_hei_ui_boldW, FALSE, system_link_microsoft_jheng_hei_ui_bold, sizeof(system_link_microsoft_jheng_hei_ui_bold) }, { microsoft_jheng_hei_ui_lightW, FALSE, system_link_microsoft_jheng_hei_ui_light, sizeof(system_link_microsoft_jheng_hei_ui_light) }, + { ming_li_uW, FALSE, system_link_ming_li_u, sizeof(system_link_ming_li_u) }, + { p_ming_li_uW, FALSE, system_link_p_ming_li_u, sizeof(system_link_p_ming_li_u) }, + { ming_li_u_hkscsW, FALSE, system_link_ming_li_u_hkscs, sizeof(system_link_ming_li_u_hkscs) }, + { ming_li_u_ext_bW, FALSE, system_link_ming_li_u_ext_b, sizeof(system_link_ming_li_u_ext_b) }, + { p_ming_li_u_ext_bW, FALSE, system_link_p_ming_li_u_ext_b, sizeof(system_link_p_ming_li_u_ext_b) }, + { ming_li_u_hkscs_ext_bW, FALSE, system_link_ming_li_u_hkscs_ext_b, sizeof(system_link_ming_li_u_hkscs_ext_b) }, }; static void populate_system_links( const WCHAR *name, const WCHAR * const *values ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
From: Ziqing Hui <zhui(a)codeweavers.com> --- dlls/win32u/font.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/dlls/win32u/font.c b/dlls/win32u/font.c index 5ba111436d7..9ead47e1983 100644 --- a/dlls/win32u/font.c +++ b/dlls/win32u/font.c @@ -1500,6 +1500,10 @@ static const WCHAR microsoft_sans_serifW[] = {'M','i','c','r','o','s','o','f','t',' ','S','a','n','s',' ','S','e','r','i','f',0}; static const WCHAR tahomaW[] = {'T','a','h','o','m','a',0}; +static const WCHAR ms_gothicW[] = + {'M','S',' ','G','o','t','h','i','c',0}; +static const WCHAR ms_p_gothicW[] = + {'M','S',' ','P','G','o','t','h','i','c',0}; static const WCHAR ms_ui_gothicW[] = {'M','S',' ','U','I',' ','G','o','t','h','i','c',0}; static const WCHAR sim_sunW[] = @@ -1626,9 +1630,30 @@ static const char system_link_tahoma_non_cjk[] = "MALGUN.TTF,Malgun Gothic\0" "SEGUISYM.TTF,Segoe UI Symbol\0"; +static const char system_link_ms_gothic[] = + "MINGLIU.TTC,MingLiU\0" + "SIMSUN.TTC,SimSun\0" + "GULIM.TTC,GulimChe\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + +static const char system_link_ms_p_gothic[] = + "MINGLIU.TTC,PMingLiU\0" + "SIMSUN.TTC,SimSun\0" + "GULIM.TTC,Gulim\0" + "YUGOTHM.TTC,Yu Gothic UI\0" + "MSJH.TTC,Microsoft JhengHei UI\0" + "MSYH.TTC,Microsoft YaHei UI\0" + "MALGUN.TTF,Malgun Gothic\0" + "SEGUISYM.TTF,Segoe UI Symbol\0"; + static const char system_link_ms_ui_gothic[] = "MICROSS.TTF,Microsoft Sans Serif\0" - "MINGLIU.TTC,PMingLiU\0""SIMSUN.TTC,SimSun\0" + "MINGLIU.TTC,PMingLiU\0" + "SIMSUN.TTC,SimSun\0" "GULIM.TTC,Gulim\0" "YUGOTHM.TTC,Yu Gothic UI\0" "MSJH.TTC,Microsoft JhengHei UI\0" @@ -1793,6 +1818,8 @@ default_system_link[] = system_link_tahoma_jp, sizeof(system_link_tahoma_jp), system_link_tahoma_kr, sizeof(system_link_tahoma_kr), }, + { ms_gothicW, FALSE, system_link_ms_gothic, sizeof(system_link_ms_gothic) }, + { ms_p_gothicW, FALSE, system_link_ms_p_gothic, sizeof(system_link_ms_p_gothic) }, { ms_ui_gothicW, FALSE, system_link_ms_ui_gothic, sizeof(system_link_ms_ui_gothic) }, { microsoft_jheng_heiW, FALSE, system_link_microsoft_jheng_hei, sizeof(system_link_microsoft_jheng_hei) }, { microsoft_jheng_hei_boldW, FALSE, system_link_microsoft_jheng_hei_bold, sizeof(system_link_microsoft_jheng_hei_bold) }, -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
Hi, It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated. The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=125183 Your paranoid android. === debian11 (build log) === Task: Could not create the win32 wineprefix: Failed to disable the crash dialogs: Task: WineTest did not produce the win32 report
This merge request was approved by Huw Davies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1089
participants (4)
-
Huw Davies (@huw) -
Marvin -
Ziqing Hui -
Ziqing Hui (@zhui)