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++) {
--
Martin Orr
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]