https://bugs.winehq.org/show_bug.cgi?id=51685
Bug ID: 51685 Summary: In Wine gdiplus:font fails to find "MS Shell Dlg" in Arabic, Japanese and Chinese locales Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: gdiplus Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
When running in Wine, gdiplus:font fails in the Arabic, Japanese and Chinese locales:
font.c:890: Test failed: Expected 0, got 14
https://test.winehq.org/data/patterns.html#gdiplus:font
In all three cases the failure happens because GdipCreateFontFamilyFromName() fails to find an "MS Shell Dlg" font: is_font_installed_proc() is never called and EnumFontFamiliesW(..."MS Shell Dlg"...) returns non-zero.
https://bugs.winehq.org/show_bug.cgi?id=51685
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase
--- Comment #1 from François Gouget fgouget@codeweavers.com --- As is probably obvious to specialists, I think the cause of the failure is the selection of the "MS Shell Dlg" substitute:
LANG=ar_MA.UTF-8 picks "Microsoft Sans Serif" as the substitute and fails:
005c:trace:font:load_gdi_font_subst Got L"MS Shell Dlg"=L"Microsoft Sans Serif" 005c:trace:font:load_gdi_font_subst Got L"MS Shell Dlg 2"=L"Tahoma" ... 0034:trace:font:load_system_links L"Microsoft Sans Serif": L"MSGOTHIC.TTC,MS UI Gothic" 0034:trace:font:find_face_from_filename looking for file L"MSGOTHIC.TTC" name L"MS UI Gothic"
I don't have any "*msgothic*" file so I don't think I have the "MS UI Gothic" font (and find_face_from_filename() does not find it).
LANG=ja_JP.UTF-8 picks "MS UI Gothic" as the substitute and fails:
0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg"=L"MS UI Gothic" 0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg 2"=L"Tahoma"
Still no "*msgothic*" file...
LANG=zh_CN.UTF-8 picks "SimSun" as the substitute and fails:
0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg"=L"SimSun" 0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg 2"=L"Tahoma"
It then goes looking for a "SIMSUN.TTC" file which I don't have.
LANG=(en_US|fr_FR|de_DE).UTF-8 pick Tahoma as the substitute and succeed:
0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg"=L"Tahoma" 0034:trace:font:load_gdi_font_subst Got L"MS Shell Dlg 2"=L"Tahoma"
So it looks like the issue is Wine picks a nonexistent font as the substitute for "MS Shell Dlg". Is there some open-source font I'm missing for these locales? Or at least some freely redistributable one?
https://bugs.winehq.org/show_bug.cgi?id=51685
--- Comment #2 from Rafał Mużyło galtgendo@o2.pl --- Personally, I'm not aware of a proper open-source substitute for MS UI Gothic.
Some fonts claim to be, but it falls to the metrics - the Google/Adobe font may have the glyph coverage, but that particular Microsoft font had a certain quirk: while most CJK were fixed double-width, double-width space (U+3000) was significantly narrower.
Besides that, it is indeed a bit awkward that for many CJK apps an explicit Fonts/Substitutes entry is necessary, but that's how system font links currently are implemented.
https://bugs.winehq.org/show_bug.cgi?id=51685
François Gouget fgouget@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|In Wine gdiplus:font fails |In Wine gdiplus:font and |to find "MS Shell Dlg" in |user32:sysparams fail to |Arabic, Japanese and |find "MS Shell Dlg" in |Chinese locales |Arabic, Japanese and | |Chinese locales
--- Comment #3 from François Gouget fgouget@codeweavers.com --- In gdiplus:font status 14 corresponds to FontFamilyNotFound.
user32:sysparams fails in Wine because "MS Shell Dlg" is not enumerated which sounds like it is probably related to this issue:
sysparams.c:2726: Test failed: font MS Shell Dlg should be enumerated sysparams.c:2727: Test failed: font MS Shell Dlg should be enumerated sysparams.c:2728: Test failed: font MS Shell Dlg should be enumerated sysparams.c:2729: Test failed: font MS Shell Dlg should be enumerated sysparams.c:2730: Test failed: font MS Shell Dlg should be enumerated ...x5
Notes: * On Windows user32:sysparams also fails but does not complain that MS Shell Dlg was not enumerated. * user32:sysparams also complains that MS Shell Dlg was not enumerated in the Hebrew locale despite not failing in gdiplus:font.
https://bugs.winehq.org/show_bug.cgi?id=51685
--- Comment #4 from François Gouget fgouget@codeweavers.com --- The user32:sysparams failure does not seem to be happening anymore. I'm not sure what changed or when it got fixed.
https://bugs.winehq.org/show_bug.cgi?id=51685
Bartosz gang65@poczta.onet.pl changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gang65@poczta.onet.pl
--- Comment #5 from Bartosz gang65@poczta.onet.pl --- Please retest the issue with latest wine. The issue could be already fixed.
https://bugs.winehq.org/show_bug.cgi?id=51685
--- Comment #6 from François Gouget fgouget@codeweavers.com --- The gdiplus:font failures are still present: https://testbot.winehq.org/FailureDetails.pl?Key=43
https://bugs.winehq.org/show_bug.cgi?id=51685
Esme Povirk madewokherd@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |madewokherd@gmail.com