xserver-multidpi/xkb
Peter Hutterer ae986d1c73 xkb: fix core keyboard map generation. #14373
According to Section 12.4 of the XKB Protocol Spec, if a key only has a single
group but the keyboard has multiple groups defined, the core description of
the key is a duplication of the single group across all symbols. i.e.
G1L1 G1L2 G1L1 G1L2 G1L3 G1L4 G1L3 G1L4

The previous code generated G1L1 G1L2 G1L3 G1L4 G1L3 G1L4, leading to
"invented" groups when the process is reversed.

Note that this creates wrong key types on reconstruction from core to xkb,
i.e. any single-group key with a key type that is not one of the canonical
four (Sec 12.2.3), will get the assigned type on group 1, and a canonical type
for the other gruops.

X.Org Bug 14373 <http://bugs.freedesktop.org/show_bug.cgi?id=14373>
2008-09-26 09:33:39 +09:30
..
ddxBeep.c Merge branch 'master' into mpx 2008-03-04 18:11:10 +10:30
ddxCtrls.c XKB: Remove a bunch of mad ifdefs 2008-02-17 22:52:07 +02:00
ddxDevBtn.c Merge branch 'master' into mpx 2008-01-03 17:04:54 +10:30
ddxFakeBtn.c Merge branch 'master' into mpx 2008-01-03 17:04:54 +10:30
ddxFakeMtn.c Merge branch 'master' into mpx 2008-01-03 17:04:54 +10:30
ddxInit.c Death to RCS tags. 2007-06-29 14:06:52 -04:00
ddxKeyClick.c XKB: Remove a bunch of mad ifdefs 2008-02-17 22:52:07 +02:00
ddxKillSrv.c XKB: Actions: Don't run certain actions on the core keyboard 2007-12-05 19:37:48 +00:00
ddxLEDs.c Death to RCS tags. 2007-06-29 14:06:52 -04:00
ddxList.c Merge branch 'master' into mpx 2008-03-04 18:11:10 +10:30
ddxLoad.c Unifdef __osf__ 2008-07-23 13:38:38 -04:00
ddxPrivate.c Static markup and dead code cull over xkb/. 2007-03-20 18:37:02 -04:00
ddxVT.c Static markup and dead code cull over xkb/. 2007-03-20 18:37:02 -04:00
Makefile.am Fix distcheck. 2008-03-05 23:57:15 -05:00
maprules.c Move strcasecmp(), strcasencmp() and strcasestr() prototypes to os.h 2008-08-10 23:07:46 +02:00
README.compiled R6.6 is the Xorg base-line 2003-11-14 15:54:54 +00:00
xkb.c xkb: fix use of uninitialized variable. 2008-09-22 08:37:29 +09:30
xkb.h XKB: Move headers into the server tree 2008-02-17 22:52:07 +02:00
xkbAccessX.c xkb: don't send core events on SlowKeys. 2008-07-28 09:04:48 +09:30
xkbActions.c Prepare for array-index based devPrivates. 2008-08-28 18:05:40 -04:00
XKBAlloc.c XKB: Move headers into the server tree 2008-02-17 22:52:07 +02:00
xkbDflts.h Static markup and dead code cull over xkb/. 2007-03-20 18:37:02 -04:00
xkbEvents.c Fix "warning: unused variable `s'". 2008-06-13 22:48:17 -04:00
xkbfmisc.c XKB: Fix initial map setting on startup 2008-03-04 03:50:25 +02:00
XKBGAlloc.c XKB: Remove usage of client-side types 2008-02-17 22:52:07 +02:00
xkbgeom.h XKB: Remove usage of client-side types 2008-02-17 22:52:07 +02:00
xkbInit.c Unifdef __osf__ 2008-07-23 13:38:38 -04:00
xkbLEDs.c xkb: fix crash caused by uninitialised variable. 2008-05-22 16:00:21 +09:30
XKBMAlloc.c XKB: Remove a bunch of mad ifdefs 2008-02-17 22:52:07 +02:00
XKBMisc.c Fix "warning: the address of ‘newTypes’ will always evaluate as ‘true’". 2008-06-13 22:49:47 -04:00
xkbout.c XKB: Ditch XkbFileInfo 2008-02-17 22:52:08 +02:00
xkbPrKeyEv.c Merge branch 'master' into mpx 2008-03-04 18:11:10 +10:30
xkbPrOtherEv.c XkbProcessOtherEvent: Don't depend on now-removed header 2008-02-17 22:52:08 +02:00
xkbSwap.c Merge branch 'master' into mpx 2008-03-04 18:11:10 +10:30
xkbtext.c XKB: Remove usage of client-side types 2008-02-17 22:52:07 +02:00
xkbUtils.c xkb: fix core keyboard map generation. #14373 2008-09-26 09:33:39 +09:30
xkmread.c XKB: Ditch XkbFileInfo 2008-02-17 22:52:08 +02:00

The X server uses this directory to store the compiled version of the
current keymap and/or any scratch keymaps used by clients.  The X server
or some other tool might destroy or replace the files in this directory,
so it is not a safe place to store compiled keymaps for long periods of
time.  The default keymap for any server is usually stored in:
     X<num>-default.xkm
where <num> is the display number of the server in question, which makes
it possible for several servers *on the same host* to share the same 
directory.

Unless the X server is modified, sharing this directory between servers on
different hosts could cause problems.