Package: kbd
Version: 1.14.1-4.1
Severity: normal
Tags: patch

When testing the new french dvorak 'bépo' layout (see bug #514906),
I've noticed that uppercase accented characters aren't used in the console
when CapsLock is active, so I get for instance : BéPOè instead of BÉPOÈ.

looking at loadkeys's code, it seems only basic latin letters are allowed to
work with CapsLock (ASCII codes, under 0x7F), and can be extended to iso8859-X 
codes (codes under 0xFF), see patch. I've tested this patch with this
bépo layout, it works.

-- System Information:
Debian Release: 5.0
  APT prefers testing
  APT policy: (990, 'testing'), (800, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages kbd depends on:
ii  console-common                0.7.80     basic infrastructure for text cons
ii  console-setup                 1.28       Set up the font and the keyboard o
ii  libc6                         2.7-18     GNU C Library: Shared libraries
ii  lsb-base                      3.2-20     Linux Standard Base 3.2 init scrip

Versions of packages kbd recommends:
ii  console-data      2:1.07-11              keymaps, fonts, charset maps, fall
ii  console-setup     1.28                   Set up the font and the keyboard o

kbd suggests no packages.

-- no debconf information
diff -Naur kbd-1.14.1/src/ksyms.c kbd-1.14.1bepo/src/ksyms.c
--- kbd-1.14.1/src/ksyms.c	2009-02-07 11:08:57.000000000 +0100
+++ kbd-1.14.1bepo/src/ksyms.c	2009-02-09 16:49:58.000000000 +0100
@@ -1866,7 +1866,7 @@
 {
 	if (KTYP(code) == KT_LATIN)
 		return K(KT_LETTER, KVAL(code));
-	if (KTYP(code) >= syms_size && (code ^ 0xf000) < 0x80)
+	if (KTYP(code) >= syms_size && (code ^ 0xf000) < 0xFF)
 		return K(KT_LETTER, code ^ 0xf000);
 	return add_number(code);
 }

Reply via email to