Wine and cyrillic input and output ?

Nikita V. Youshchenko yoush at cs.msu.su
Mon Sep 10 11:25:31 CDT 2001


> What version of xserver/fontsever are you using? I'm not using an external
> fontserver, but built-in into XFree86 instead.

I use XFree 4.1 and external xfs (because my workstation also acts as a 
truetype font server for several suns - and if xfs is already running, it 
is a waste of memory not to use it).
But it really doesn't matter. From application point of view, the source of 
font can't be determined.

Attached to this message, there is the output of wine -debugmsg +font 
notepad.exe
It shows that iso8859-1 fonts are opened ...  this may be the reason of 
the problem: iso8859 fonts have no cyrillic chars.

>> Also, I can't get any russian input (how to swithc keyboard to russian? I
>> use xkb configuration with "menu" switch key - it doesn't work for wine).
> 
> I'm using fairly old KDE 1.1.2 with KiKbd.

Does that mean that you use hacked way, when koi8-r codes are returned in 
XEvents? As far as I know, this way is wrong. The correct way is to return 
Cyrillic_* keysyms in XEvents, and setup cyrillic locale. This is required 
for modern software (such as anything based on Qt2) to work. There is a 
well-known article by Ivan Pascal that explains why.

Anyway, while running -debugmsg +key,+keyboard the following is printed if 
I try to input cyrillic A:

trace:key:X11DRV_KEYBOARD_HandleEvent state = 2001
trace:key:X11DRV_KEYBOARD_HandleEvent KeyPress : keysym=6E1 (Cyrillic_A), 
ascii
chars=1 / E1 / 'А'
trace:key:X11DRV_KEYBOARD_HandleEvent keycode 0x29 converted to vkey 0x46
trace:key:X11DRV_KEYBOARD_HandleEvent bScan = 0x21.
trace:key:queue_kbd_event  wParam=0046, lParam=00210001, InputKeyState=80
trace:key:TranslateMessage (WM_KEYDOWN, 0046, 00210001)
trace:key:TranslateMessage Translating key VK_F (0046), scancode 21
trace:key:X11DRV_ToUnicode (0046, 0021) : faked state = 1
trace:keyboard:X11DRV_ToUnicode Found keycode 41 (0x29)
trace:key:X11DRV_ToUnicode Translating char 0x46 from code page 20866 to 
unicodetrace:key:X11DRV_ToUnicode ToUnicode about to return 1 with char 46
trace:key:TranslateMessage 1 -> PostMessage(WM_CHAR)
trace:key:TranslateMessage (WM_CHAR, 0046, 00210001)
trace:key:X11DRV_KEYBOARD_HandleEvent state = 2001
trace:key:X11DRV_KEYBOARD_HandleEvent KeyRelease : keysym=6E1 (Cyrillic_A), 
ascii chars=1 / E1 / 'А'
trace:key:X11DRV_KEYBOARD_HandleEvent keycode 0x29 converted to vkey 0x46
trace:key:X11DRV_KEYBOARD_HandleEvent bScan = 0x21.
trace:key:queue_kbd_event  wParam=0046, lParam=c0210001, InputKeyState=0
trace:key:TranslateMessage (WM_KEYUP, 0046, C0210001)

And english F is inputed instead of russian A.

> 1. Run charmap.exe with wine and try to figure out which font faces Wine
> uses. It's my primary tool for checking Wine and fonts.

There are plenty of fonts, and many of them have russian characters.

>> Maybe something wtong is in registry created by winesetup?
> 
> Very unlikely.

I thought about it because created ~/.wine/system.reg contained the 
following lines:
[System\\CurrentControlSet\\Control\\Nls\\Codepage] 970847224
"ACP"="1252"
"OEMCP"="437"
I replaced those with
"ACP"="1251"
"OEMCP"="866"
But seems that nothing changed.

Nikita
-------------- next part --------------
A non-text attachment was scrubbed...
Name: LOG.bz2
Type: application/x-bzip2
Size: 4098 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-users/attachments/20010910/5d5ba001/LOG.bin


More information about the wine-users mailing list