"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.



Reply via email to