compat: fix bad interpret predicate mods "all" calculation
authorRan Benita <ran234@gmail.com>
Mon, 8 Oct 2012 20:11:18 +0000 (22:11 +0200)
committerDaniel Stone <daniel@fooishbar.org>
Mon, 8 Oct 2012 23:36:48 +0000 (10:36 +1100)
Commit 9984d1d03cd78eb636c75cc2bbd2d240dc1dd72f changed the type of
interpret->mods to xkb_mod_mask_t, but this bit of code assumes that the
type is uint8_t.
This code is not usually run (for example by our tests), but when it
does keymap-dump would print out all of the modifiers (including the
virtual ones) which causes recompilation of the output to fail
miserably.

https://bugs.freedesktop.org/show_bug.cgi?id=55769

Signed-off-by: Ran Benita <ran234@gmail.com>
src/xkbcomp/compat.c

index 04ab2f9..e6905ae 100644 (file)
@@ -369,7 +369,7 @@ ResolveStateAndPredicate(ExprDef *expr, enum xkb_match_operation *pred_rtrn,
 {
     if (expr == NULL) {
         *pred_rtrn = MATCH_ANY_OR_NONE;
-        *mods_rtrn = ~0;
+        *mods_rtrn = MOD_REAL_MASK_ALL;
         return true;
     }