http://bugs.winehq.org/show_bug.cgi?id=9812
--- Comment #38 from Marcin Grzeskowiak mgrzeskowiak@tlen.pl 2008-06-11 16:20:58 --- (In reply to comment #36)
(In reply to comment #35)
I ran cj1_demo.exe on Wine 0.9.33 with +font and it tries to create "Arial CE" font with charset 0 (ANSI) and weight > 400 (bold), so I Dmitry's patch probably won't help here.
Could you please provide an exact CreateFont call which the app performs? I'll add to the Wine test suite and see how it behaves in different Windows flavours.
I attached +font trace from cl1_demo.exe running on current Wine (checked out today). Arial CE Bold is created in line 6817 of the trace: CreateFontIndirectW (-23 0 0 0 0 0 0 0 0) L"Arial CE" Bold => 0xa50 I suppose that this font is later selected into hdc and used (see line 6850 of the trace).
I also checked registry on a Windows XP machine and it has the following font substitutes: "Arial CE,0"="Arial CE,238" "Arial CE,238"="Arial CE,238" (and similar entries for other "CE" fonts).
Wine does have them as well.
I checked system.reg after running winecfg (today's Wine) and there is only the second definition. If I add "Arial CE,0"="Arial CE,238" it is ignored by Wine - I see it in LoadSubstList trace, but not in DumpSubstList.
This looks like a potential solution for this bug, but I couldn't use such substitutions on Wine. They are disabled in LoadSubstLists function with a comment stating that "Win 2000 does not allow mapping between different charsets". Also WineEngCreateFontInstance ignores charset from FontSubst when performing fonts substitution.
I've added a test which shows that creating "Times New Roman CE" font doesn't take into account the substitution at all.
Do you mean that you tested it on Windows and Windows ignores this substitution?