This refers to 3 lines removed during an XFree86 merge. The change was done here:
These are the three lines that need to be re-added to XKBind.c in XkbTranslateKeySym:
return _XTranslateKeySym(dpy, *sym_rtrn, mods, buffer, nbytes);
Before running the testcase, make sure that a Russian font is installed on your X Server and the Caps Lock KeySym is set up as follows:
CapsLock: Unshifted=Mode_switch, Shifted=NoSymbol, Mode Switch=NoSymbol, Shift Mode Switch=NoSymbol
To run foo (it is attached):
1) Set up the Russian font on the X Server as explained in the above paragraph.
2) Run foo - you will see Cyrillic characters at start. Hitting shift will show large Cyrillic characters.
3) Hit CapsLock - you will see large English characters when small English characters should be there. This works on Solaris.
Basically, a CapsLock KeySym set to Unshifted=Mode_switch should default to a lower case character. All characters are upper at present.
Created attachment 21992 [details]
Test program that displays the Russian CapsLock KeySym problem
Can you please send a patch to xorg-devel for review?
Mass closure: This bug has been untouched for more than six years, and is not
obviously still valid. Please reopen this bug or file a new report if you continue to experience issues with current releases.