|
@@ -140,6 +140,18 @@ static void usage(FILE *out)
|
|
|
names.options ?: "-");
|
|
|
}
|
|
|
|
|
|
+static xkb_mod_mask_t get_mod(struct xkb_keymap *map, const char *name)
|
|
|
+{
|
|
|
+ xkb_mod_index_t mod;
|
|
|
+ xkb_mod_mask_t mask = 0;
|
|
|
+
|
|
|
+ mod = xkb_keymap_mod_get_index(map, name);
|
|
|
+ if (mod != XKB_MOD_INVALID) {
|
|
|
+ mask = (1 << mod);
|
|
|
+ }
|
|
|
+ return mask;
|
|
|
+}
|
|
|
+
|
|
|
int main(int argc, char *argv[])
|
|
|
{
|
|
|
struct xkb_context *ctx;
|
|
@@ -215,14 +227,10 @@ int main(int argc, char *argv[])
|
|
|
mod, xkb_keymap_mod_get_name(map, mod));
|
|
|
}
|
|
|
|
|
|
- mod = xkb_keymap_mod_get_index(map, "Shift");
|
|
|
- shift = (1 << mod);
|
|
|
- mod = xkb_keymap_mod_get_index(map, "Control");
|
|
|
- ctrl = (1 << mod);
|
|
|
- mod = xkb_keymap_mod_get_index(map, "AltGr");
|
|
|
- altgr = (1 << mod);
|
|
|
- mod = xkb_keymap_mod_get_index(map, "NumLock");
|
|
|
- numlock = (1 << mod);
|
|
|
+ shift = get_mod(map, "Shift");
|
|
|
+ ctrl = get_mod(map, "Control");
|
|
|
+ altgr = get_mod(map, "AltGr");
|
|
|
+ numlock = get_mod(map, "NumLock");
|
|
|
|
|
|
state = xkb_state_new(map);
|
|
|
xkb_keymap_key_for_each(map, walk_map, state);
|