[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#443800: libx11-6: Thai XIM does not filter keys when NumLock/CapsLock is on



Package: libx11-6
Version: 2:1.0.3-7
Severity: normal

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


The Thai XIM component in libx11, activated on 'th*' locales, normally
filters input sequence according to orthographic rules. However, when
NumLock/CapsLock is on, this stops working. All sequences are passed
through.

This is caused by missing masks in _XimThaiFilter()
(modules/im/ximcp/imThaiFlt.c), as in the attached patch.

Upstream bug: https://bugs.freedesktop.org/show_bug.cgi?id=12517

- -- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

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

Versions of packages libx11-6 depends on:
ii  libc6                         2.6.1-5    GNU C Library: Shared libraries
ii  libx11-data                   2:1.0.3-7  X11 client-side library
ii  libxau6                       1:1.0.3-2  X11 authorisation library
ii  libxdmcp6                     1:1.0.2-2  X11 Display Manager Control Protoc
ii  x11-common                    1:7.3+2    X Window System (X.Org) infrastruc

libx11-6 recommends no packages.

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFG91lwqgzR7tCLR/4RAtNVAJ900aRqnLspfTgbgWdPd4AXjwxASwCfaggA
+BHDpSxWJa6d6hv1qErxMr4=
=VcS3
-----END PGP SIGNATURE-----
Index: libx11-1.0.3/modules/im/ximcp/imThaiFlt.c
===================================================================
--- libx11-1.0.3.orig/modules/im/ximcp/imThaiFlt.c	2007-09-21 22:13:25.000000000 +0700
+++ libx11-1.0.3/modules/im/ximcp/imThaiFlt.c	2007-09-21 22:15:14.000000000 +0700
@@ -1271,7 +1271,7 @@
     XwcLookupString((XIC)ic, &ev->xkey, wbuf, sizeof(wbuf) / sizeof(wbuf[0]),
 		    &symbol, NULL);
 
-    if ((ev->xkey.state & (AllMods & ~ShiftMask)) ||
+    if ((ev->xkey.state & (AllMods & ~(ShiftMask|LockMask|Mod2Mask))) ||
          ((symbol >> 8 == 0xFF) &&
          ((XK_BackSpace <= symbol && symbol <= XK_Clear) ||
            (symbol == XK_Return) ||

Reply to: