Package: kbd
Version: 1.15.3-9
Severity: normal
Tags: patch

Hello,

kbd currently has no support for the KT_DEAD2 keysyms. The attached
patch adds it by simply using a dead2_ prefix (just like KT_DEAD keysyms
use the dead_ prefix).

(Yes, a different prefix is needed, because dead_acute is very different
from dead2_acute, dead_acute is actually dead2_apostrophe).

Samuel

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.0.4 (SMP w/8 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages kbd depends on:
ii  libc6     2.13-35
ii  lsb-base  4.1+Debian8

Versions of packages kbd recommends:
ii  console-data   2:1.12-2
ii  console-setup  1.87

kbd suggests no packages.

-- no debconf information
diff -ur kbd-1.15.3-orig/src/dumpkeys.c kbd-1.15.3/src/dumpkeys.c
--- kbd-1.15.3-orig/src/dumpkeys.c      2011-04-26 22:29:35.000000000 +0200
+++ kbd-1.15.3/src/dumpkeys.c   2012-11-24 15:52:01.979514481 +0100
@@ -153,6 +153,9 @@
        else if (!numeric && t == KT_META && v < 128 && v < syms[0].size &&
                 (p = syms[0].table[v])[0])
                printf("Meta_%-11s", p);
+       else if (!numeric && t == KT_DEAD2 && v < 256 && v < syms[0].size &&
+                (p = syms[0].table[v])[0])
+               printf("dead2_%-10s", p);
        else
                printf("0x%04x         %s", code, plus ? "" : " ");
 }
diff -ur kbd-1.15.3-orig/src/ksyms.c kbd-1.15.3/src/ksyms.c
--- kbd-1.15.3-orig/src/ksyms.c 2011-04-26 22:29:35.000000000 +0200
+++ kbd-1.15.3/src/ksyms.c      2012-11-24 15:51:37.859997948 +0100
@@ -1788,6 +1788,14 @@
                /* fall through to error printf */
        }
 
+       if (!strncmp(s, "dead2_", 6)) {
+               keycode = ksymtocode(s+6, TO_8BIT);
+               if (KTYP(keycode) == KT_LATIN)
+                       return K(KT_DEAD2, KVAL(keycode));
+
+               /* fall through to error printf */
+       }
+
        for (i = 0; i < syms_size; i++) {
                jmax = ((i == 0 && direction == TO_UNICODE) ? 128 : 
syms[i].size);
                for (j = 0; j < jmax; j++)

Reply via email to