"Phil Krylov" <[EMAIL PROTECTED]> wrote: > But ru_RU.UTF-8 works with the following patch to keyboard.c (but it > won't work on XFree86 3.x): > > --- keyboard.c 2003-08-12 19:23:29.000000000 +0400 > +++ keyboard.c-mine 2003-08-12 19:39:21.000000000 +0400 > @@ -1840,7 +1840,7 @@ INT X11DRV_ToUnicode(UINT virtKey, UINT > else TRACE("Found keycode %d (0x%2X)\n",e.keycode,e.keycode); > > if (xic) > - ret = XmbLookupString(xic, &e, lpChar, sizeof(lpChar), &keysym, NULL); > + ret = Xutf8LookupString(xic, &e, lpChar, sizeof(lpChar), &keysym, NULL); > else > ret = XLookupString(&e, lpChar, sizeof(lpChar), &keysym, NULL);
It must be a bug in the XmbLookupString implementation of XFree86. It seems that it doesn't respect UTF-8 locale, while works fine in others. Could you try to investigate what really returns XmbLookupString for UTF-8 locale? -- Dmitry.