diff --git a/src/xkbcomp/compat.c b/src/xkbcomp/compat.c index dfc6941..bcdc2ee 100644 --- a/src/xkbcomp/compat.c +++ b/src/xkbcomp/compat.c @@ -282,7 +282,7 @@ ClearCompatInfo(CompatInfo *info) FreeActionInfo(info->act); info->act = NULL; info->keymap = NULL; - ClearVModInfo(&info->vmods, keymap); + ClearVModInfo(&info->vmods); } static SymInterpInfo * diff --git a/src/xkbcomp/vmod.c b/src/xkbcomp/vmod.c index c70b884..9ee5d39 100644 --- a/src/xkbcomp/vmod.c +++ b/src/xkbcomp/vmod.c @@ -25,27 +25,25 @@ ********************************************************/ #include "xkbcomp-priv.h" -#include "text.h" #include "expr.h" #include "vmod.h" void InitVModInfo(VModInfo *info, struct xkb_keymap *keymap) { - ClearVModInfo(info, keymap); -} - -void -ClearVModInfo(VModInfo *info, struct xkb_keymap *keymap) -{ - xkb_mod_index_t i; - xkb_mod_mask_t bit; + xkb_group_index_t i; info->defined = info->available = 0; - for (i = 0, bit = 1; i < XkbNumVirtualMods; i++, bit <<= 1) + for (i = 0; i < XkbNumVirtualMods; i++) if (keymap->vmod_names[i]) - info->defined |= bit; + info->defined |= (1 << i); +} + +void +ClearVModInfo(VModInfo *info) +{ + info->defined = info->available = 0; } /***====================================================================***/ diff --git a/src/xkbcomp/vmod.h b/src/xkbcomp/vmod.h index 5748d01..a711b9b 100644 --- a/src/xkbcomp/vmod.h +++ b/src/xkbcomp/vmod.h @@ -36,7 +36,7 @@ void InitVModInfo(VModInfo *info, struct xkb_keymap *keymap); void -ClearVModInfo(VModInfo *info, struct xkb_keymap *keymap); +ClearVModInfo(VModInfo *info); bool HandleVModDef(VModDef *stmt, struct xkb_keymap *keymap,