"Andy Rysin" arysin@yahoo.com wrote:
Also I had to modify unicode/cp20866.c (KOI8-R) to allow conversion of additional 4 pair of letters in Ukrainian language (KOI8-U, RFC2319) as well as one additional pair of letters for Belorussian language (AKA KOI8-RU, which does not have RFC though). Strictly speaking KOI8-R is a subset (if not to take to account pseudographics) of KOI8-U wich is a subset of KOI8-RU. That's why I applied it to cp20866.c instead of creating smth new. (I took it from my patches for linux kernel nls system)
You can't modify cp*.c files, they are auto generated from the unicode.org file set. You need to send your patch to the unicode.org maintainers and hopefully it will be included in the next Unicode Standard release.
Another problem is that I could not test it practiacally because for some reason Win32 programs under wine does not input cyrillic letters, but if I swicth to X program and then back it stops input at all if layout is cyrillic. If I swicth back to latin everything's ok.
It's a known problem, that Wine's x11 keyboard driver does not work with "non-sticky" switches. I have tested cyrillic input with XFree86 3.3.6, 4.0.3 and 4.1.0 with KDE and KiKbd, all works fine for me.
Proper support for non-sticky modifiers, dead-keys and the real keyboard layout support requires almost complete keyboard driver rewrite.
BTW, why not to take layouts from X system itself? Those wich are under /etc/X11/xkb/symbols
Because XFree86 is not the only X11 implementation out there.
-- Dmitry.