On Tue, Mar 07, 2006 at 09:29:14PM +0900, Byeong-Sik Jeon wrote:
ChangeLog: Improved create_child_font_list(), get_nearest_charset(), more using font-linking mechanism.
If lfCharSet == DEFAULT_CHARSET, then ALL font(LOGFONT) can see current locale letter, (have to exist least one font corresponding current locale ).
- If lfCharSet == DEFAULT_CHARSET then use the current locale codepage.
and If selected font is not support current ansi codepage, then it fixup the problem in "create_child_font_list()" function.
I'm slightly confused about what you're trying to do here. Could you try to explain it again please?
--- 003/dlls/gdi/freetype.c 2006-03-07 20:29:58.000000000 +0900 +++ 004/dlls/gdi/freetype.c 2006-03-07 20:30:31.000000000 +0900
if(!TranslateCharsetInfo((DWORD*)(INT)font->charset, &csi, TCI_SRCCHARSET))
return FALSE;
TRACE("found entry in system list\n");
fs.fsCsb[0] = fs.fsCsb[1] = 0; LIST_FOR_EACH_ENTRY(font_link, &system_links, SYSTEM_LINKS, entry) {
if(!strcmpW(font_link->font_name, font->name))
if(!strcmpiW(font_link->font_name, font->name)) {
TRACE("found entry in system list\n");
Moving this TRACE is clearly not correct.
Thanks, Huw.
2006-03-07 (화), 14:34 +0000, Huw D M Davies 쓰시길:
On Tue, Mar 07, 2006 at 09:29:14PM +0900, Byeong-Sik Jeon wrote:
ChangeLog: Improved create_child_font_list(), get_nearest_charset(), more using font-linking mechanism.
If lfCharSet == DEFAULT_CHARSET, then ALL font(LOGFONT) can see current locale letter, (have to exist least one font corresponding current locale ).
- If lfCharSet == DEFAULT_CHARSET then use the current locale codepage.
and If selected font is not support current ansi codepage, then it fixup the problem in "create_child_font_list()" function.
I'm slightly confused about what you're trying to do here. Could you try to explain it again please?
Sorry, my poor english...
assume "Arial.ttf" is exist in the system. ------------------------------------------ string = "Hello. 안녕하세요. 安寕"; /* include non-western character */
logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfFaceName = "Arial"; hfont = CreateFontIndirect(&logfont); SelectObject(hdc, hfont);
TextOut(hdc, 10, 10, string, strlen(string)); -------------------------------------------- at this case, now Wine print out broken shape, because glyph missing on Arial.ttf.
font-linking mechanism help this situation. but need to ------------------------------- [HKLM\...\SystemLink] "Arial"="......" -------------------------------- New get_nearest_charset(), create_child_font_list() solve this situation without any additional config file change.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext... ---------------------------------- Windows NT/2000/XP: DEFAULT_CHARSET is set to a value based on the current system locale. For example, when the system locale is English (United States), it is set as ANSI_CHARSET. ---------------------------------- Korean locale => HANGEUL_CHARSET, Japanese locale => SHIFTJIS_CHARSET. .... but, Arial.ttf is missing these charset, therefore incorrect operation in the get_nearest_charset().
Sorry again. Please see the code....
Moving this TRACE is clearly not correct.
Yes. I mistake...
Hi.
I found another registry key in my korean MS Windows XP. ----------------------------------------------------- [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc]
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc \Associated Charset] "ANSI(00)"="YES" "OEM(FF)"="YES" "SYMBOL(02)"="NO"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FontAssoc \Associated DefaultFonts] "AssocSystemFont"="gulim.ttc" "FontPackage"="GulimChe" "FontPackageDontCare"="굴림" "FontPackageRoman"="바탕" "FontPackageSwiss"="굴림" "FontPackageModern"="바탕" "FontPackageScript"="바탕" "FontPackageDecorative"="굴림" --------------------------------------------------------------- I think that create_child_font_list(), WineEngCreateFontInstance() have to this key. and then I can remove "defSystem" in all my patch(4/5 and 5/5).
I working. but, create_child_font_list(), WineEngCreateFontInstance() will not create directly this key.
I want your advice. Thanks.
2006-03-08 (수), 01:41 +0900, Byeong-Sik Jeon 쓰시길:
2006-03-07 (화), 14:34 +0000, Huw D M Davies 쓰시길:
On Tue, Mar 07, 2006 at 09:29:14PM +0900, Byeong-Sik Jeon wrote:
ChangeLog: Improved create_child_font_list(), get_nearest_charset(), more using font-linking mechanism.
If lfCharSet == DEFAULT_CHARSET, then ALL font(LOGFONT) can see current locale letter, (have to exist least one font corresponding current locale ).
- If lfCharSet == DEFAULT_CHARSET then use the current locale codepage.
and If selected font is not support current ansi codepage, then it fixup the problem in "create_child_font_list()" function.
I'm slightly confused about what you're trying to do here. Could you try to explain it again please?
Sorry, my poor english...
assume "Arial.ttf" is exist in the system.
string = "Hello. 안녕하세요. 安寕"; /* include non-western character */
logfont.lfCharSet = DEFAULT_CHARSET; logfont.lfFaceName = "Arial"; hfont = CreateFontIndirect(&logfont); SelectObject(hdc, hfont);
TextOut(hdc, 10, 10, string, strlen(string));
at this case, now Wine print out broken shape, because glyph missing on Arial.ttf.
font-linking mechanism help this situation. but need to
[HKLM\...\SystemLink] "Arial"="......"
New get_nearest_charset(), create_child_font_list() solve this situation without any additional config file change.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/fontext...
Windows NT/2000/XP: DEFAULT_CHARSET is set to a value based on the current system locale. For example, when the system locale is English (United States), it is set as ANSI_CHARSET.
Korean locale => HANGEUL_CHARSET, Japanese locale => SHIFTJIS_CHARSET. .... but, Arial.ttf is missing these charset, therefore incorrect operation in the get_nearest_charset().
Sorry again. Please see the code....
Moving this TRACE is clearly not correct.
Yes. I mistake...