gdi32: Implement automatic font substitution

Huang, Zhangrong hzhrong at
Wed Jul 2 07:59:49 CDT 2008

>     * Append all fonts on child_list so that if a character is not available in the font,
>     * other fonts will be automatically used. This is how Windows does to get a CJK character
>     * when a latin font is specified.

That's not correct, actually Windows does this by using FontLink
registry, so does wine now. Your patch seems to break FontLink.
"Automatic font substitution" often means wine will choose the CJK
replacement font which user doesn't prefer to.

On CJK env, if a latin font doesn't not have a FontLink, it will
fallback to use the FontLink of "Microsoft Sans Serif", so user can
set preferred font there.

2008/7/2 Liu Qishuai <lqs.buaa at>:
> 2008/7/2 Dan Kegel <dank at>:
>> Can you write a conformance test that verifies this behavior?
> Sorry, I don't know how to write a test yet. Maybe I will write a test later.
>> Also, can you identify a bug in bugzilla this will fix?
> Such as bug 4065, 10864, 14151.

Please set the following registry key, it should fix those bugs:

NT\\CurrentVersion\\FontLink\\SystemLink] 1208451304
"Microsoft Sans
Serif"=str(7):"simsun.ttc,SimSun\0gulim.ttc,Gulim\0msgothic.ttc,MS UI
UI Gothic\0mingliu.ttc,PMingLiU\0"

Maybe we need a patch to set up the default FontLink of "Microsoft
Sans Serif" and "Tahoma" now, since FontLink works fine on WIne.

$ apt-get moo
 / | ||
 * /\---/\
 ~~ ~~
...."Have you mooed today?"...

More information about the wine-devel mailing list