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]

Reply via email to