On Thu, Apr 16, 2009 at 04:07:58AM +0400, Alexey Gladkov wrote: > Your patch still does not work for me. > > $ kbd_mode -a > $ export LANG=ru_RU.koi8r > $ setfont data/consolefonts/koi8r-8x16 > # loadkeys data/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map > > When typing characters are visible correctly. > > But with your patch: > > # src/loadkeys data/keymaps/i386/qwerty/ruwin_cplk-KOI8-R.map Do you do this right after the above commands, or after you restored Unicode mode? I guess it’s the latter; at least as far as I can see, the two commands behave identically when they are run in immediate succession. > When I typing the characters displayed incorrectly. Oh, alright! This is the problem: There is no way to automatically figure out that this keymap is written in the koi8-r encoding, so the characters are taken from the wrong charset tables (the ones in ksyms.c and *.syms.h) and converted into Unicode. The patched version of loadkeys seems to do the right thing when you add charset "koi8-r" at the beginning of ruwin_cplk-KOI8-R.map. Can you confirm this? > How do you test this patch? Pretty much the way you do: loadkeys, typing some things, verifying that dumpkeys doesn’t show different results (and if so, whether the differences are intended by my patch). > Can you show how loadkeys with this patch to be used in the examples? I’d say it should be used just the same way as before, just that it should work regardless of the input file’s encoding. As long as this keymap file has a “charset” specification, that is; I have to admit that I didn’t consider that so many .map files don’t feature such a line. Still, this shouldn’t be a regression: When the input encoding and the console mode (XLATE/Unicode) are compatible, my patch shouldn’t change the behaviour. > I'm not sure that understand this. Do you want to load 8-bit keymaps > for UTF locales and unicode keymaps for non-UTF locales ? Am i right ? Yup, that’s exactly what I want it to do. It strikes me as a quite sensible thing to do, given that there are a few keymaps that differ only in their encodings. The true reason why I want to push this, though, is that Debian’s version of kbd has had a similar patch since 2004. I’d like to get rid of this divergence without losing its useful features. This is why I’ve cleaned it up and why I’m discussing it with you now. Thanks for you patience :-) -- Michael Schutte