diff --git a/src/xkbcomp/expr.c b/src/xkbcomp/expr.c index c8197d1..a66729b 100644 --- a/src/xkbcomp/expr.c +++ b/src/xkbcomp/expr.c @@ -81,7 +81,7 @@ SimpleLookup(struct xkb_context *ctx, const void *priv, xkb_atom_t field, return false; } -bool +static bool LookupModIndex(struct xkb_context *ctx, const void *priv, xkb_atom_t field, enum expr_value_type type, xkb_mod_index_t *val_rtrn) { diff --git a/src/xkbcomp/expr.h b/src/xkbcomp/expr.h index a5abce1..14a6179 100644 --- a/src/xkbcomp/expr.h +++ b/src/xkbcomp/expr.h @@ -32,10 +32,6 @@ ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr, const char **elem_rtrn, const char **field_rtrn, ExprDef **index_rtrn); -bool -LookupModIndex(struct xkb_context *ctx, const void *priv, xkb_atom_t field, - enum expr_value_type type, xkb_mod_index_t *val_rtrn); - bool ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr, xkb_mod_mask_t *mask_rtrn); diff --git a/src/xkbcomp/symbols.c b/src/xkbcomp/symbols.c index 06661ae..592e991 100644 --- a/src/xkbcomp/symbols.c +++ b/src/xkbcomp/symbols.c @@ -1209,7 +1209,8 @@ HandleModMapDef(SymbolsInfo *info, ModMapDef *def) bool ok; struct xkb_context *ctx = info->keymap->ctx; - if (!LookupModIndex(ctx, NULL, def->modifier, EXPR_TYPE_INT, &ndx)) { + ndx = ModNameToIndex(xkb_atom_text(ctx, def->modifier)); + if (ndx == XKB_MOD_INVALID) { log_err(info->keymap->ctx, "Illegal modifier map definition; " "Ignoring map for non-modifier \"%s\"\n",