keymap: move ModNameToIndex from text.c and use it in keymap.c
authorRan Benita <ran234@gmail.com>
Sat, 19 Apr 2014 12:56:27 +0000 (15:56 +0300)
committerRan Benita <ran234@gmail.com>
Sat, 19 Apr 2014 13:12:26 +0000 (16:12 +0300)
Signed-off-by: Ran Benita <ran234@gmail.com>
src/keymap-priv.c
src/keymap.c
src/keymap.h
src/text.c
src/text.h
src/xkbcomp/expr.c
src/xkbcomp/symbols.c

index 2b3f8cd..73d722f 100644 (file)
@@ -121,3 +121,17 @@ XkbEscapeMapName(char *name)
         name++;
     }
 }
+
+xkb_mod_index_t
+XkbModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
+                  enum mod_type type)
+{
+    xkb_mod_index_t i;
+    const struct xkb_mod *mod;
+
+    darray_enumerate(i, mod, keymap->mods)
+        if ((mod->type & type) && name == mod->name)
+            return i;
+
+    return XKB_MOD_INVALID;
+}
index 892b7cf..7ae0818 100644 (file)
@@ -284,19 +284,13 @@ xkb_keymap_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx)
 XKB_EXPORT xkb_mod_index_t
 xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name)
 {
-    xkb_mod_index_t i;
     xkb_atom_t atom;
-    const struct xkb_mod *mod;
 
     atom = xkb_atom_lookup(keymap->ctx, name);
     if (atom == XKB_ATOM_NONE)
         return XKB_MOD_INVALID;
 
-    darray_enumerate(i, mod, keymap->mods)
-        if (mod->name == atom)
-            return i;
-
-    return XKB_MOD_INVALID;
+    return XkbModNameToIndex(keymap, atom, MOD_BOTH);
 }
 
 /**
index 39ac420..604f6c0 100644 (file)
@@ -426,6 +426,10 @@ XkbResolveKeyAlias(struct xkb_keymap *keymap, xkb_atom_t name);
 void
 XkbEscapeMapName(char *name);
 
+xkb_mod_index_t
+XkbModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
+                  enum mod_type type);
+
 xkb_layout_index_t
 wrap_group_into_range(int32_t group,
                       xkb_layout_index_t num_groups,
index f3a09e8..2c58b66 100644 (file)
@@ -218,20 +218,6 @@ ModIndexText(const struct xkb_keymap *keymap, xkb_mod_index_t ndx)
     return xkb_atom_text(keymap->ctx, darray_item(keymap->mods, ndx).name);
 }
 
-xkb_mod_index_t
-ModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
-               enum mod_type type)
-{
-    xkb_mod_index_t i;
-    const struct xkb_mod *mod;
-
-    darray_enumerate(i, mod, keymap->mods)
-        if ((mod->type & type) && name == mod->name)
-            return i;
-
-    return XKB_MOD_INVALID;
-}
-
 const char *
 ActionTypeText(enum xkb_action_type type)
 {
index 29f73ab..5b28e1f 100644 (file)
@@ -53,10 +53,6 @@ ModMaskText(const struct xkb_keymap *keymap, xkb_mod_mask_t mask);
 const char *
 ModIndexText(const struct xkb_keymap *keymap, xkb_mod_index_t ndx);
 
-xkb_mod_index_t
-ModNameToIndex(const struct xkb_keymap *keymap, xkb_atom_t name,
-               enum mod_type type);
-
 const char *
 ActionTypeText(enum xkb_action_type type);
 
index 6d3e466..4c31205 100644 (file)
@@ -112,7 +112,7 @@ LookupModMask(struct xkb_context *ctx, const void *priv, xkb_atom_t field,
         return true;
     }
 
-    ndx = ModNameToIndex(keymap, field, mod_type);
+    ndx = XkbModNameToIndex(keymap, field, mod_type);
     if (ndx == XKB_MOD_INVALID)
         return false;
 
@@ -665,7 +665,7 @@ ExprResolveMod(struct xkb_keymap *keymap, const ExprDef *def,
     }
 
     name = def->ident.ident;
-    ndx = ModNameToIndex(keymap, name, mod_type);
+    ndx = XkbModNameToIndex(keymap, name, mod_type);
     if (ndx == XKB_MOD_INVALID) {
         log_err(keymap->ctx,
                 "Cannot resolve virtual modifier: "
index 940428f..541d320 100644 (file)
@@ -1139,7 +1139,7 @@ HandleModMapDef(SymbolsInfo *info, ModMapDef *def)
     bool ok;
     struct xkb_context *ctx = info->ctx;
 
-    ndx = ModNameToIndex(info->keymap, def->modifier, MOD_REAL);
+    ndx = XkbModNameToIndex(info->keymap, def->modifier, MOD_REAL);
     if (ndx == XKB_MOD_INVALID) {
         log_err(info->ctx,
                 "Illegal modifier map definition; "