On Sat, Oct 29, 2005 at 05:25:00PM +0100, Martin Orr wrote: > First some observations about reproducing this bug. If > charset "iso-8859-7" > is added as the first line of the provided keymap, loadkeys accepts it. > This is why the gr-utf8 keymap in console-tools works - it has a > charset line at the top. > > Now why the bug happens. > The 430_read_keymaps_fmt patch, added in 0.2.3dbs-57, introduces the > prefer_unicode variable in lib/ksyms.c. This variable is used instead > of checking whether the console is in UTF-8 mode; however it is never > set anywhere. If this variable is unconditionally set to 1, the keymap > supplied by the reporter is loaded correctly. > > However setting prefer_unicode either to 1 or 0 unconditionally is > presumably not the correct behaviour. It should be 1 iff the console is > in UTF-8 mode or the user specified the -u flag. Since > kbdtools/loadkeys.c calls set_charset("unicode") in either of these > cases, set_charset would appear to be the place to set the > prefer_unicode variable. > > The following patch does that: > diff -Naru2 console-tools-0.2.3.orig/lib/ksyms.c > console-tools-0.2.3/lib/ksyms.c > --- console-tools-0.2.3.orig/lib/ksyms.c 2005-10-29 > 17:06:31.000000000 +0100 > +++ console-tools-0.2.3/lib/ksyms.c 2005-10-29 17:07:45.000000000 +0100 > @@ -1669,6 +1669,9 @@ > int i; > > - if (!strcasecmp(charset, "unicode")) > + if (!strcasecmp(charset, "unicode")) { > + prefer_unicode = 1; > return 0; > + } > + prefer_unicode = 0; > > for (i = 1; i < sizeof(charsets)/sizeof(charsets[0]); i++) {
You are fully right. I applied a very similar patch for the kbd package, but it looks like the 430_read_keymaps_fmt patch I sent to Alastair was buggy (or maybe I fixed kbd after sending it, I do not remember). Denis -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]