state: make mod_index_is_consumed() return -1 on invalid input
authorRan Benita <ran234@gmail.com>
Sat, 13 Oct 2012 11:13:55 +0000 (13:13 +0200)
committerRan Benita <ran234@gmail.com>
Sat, 13 Oct 2012 11:13:55 +0000 (13:13 +0200)
Like all the other functions.

Signed-off-by: Ran Benita <ran234@gmail.com>
src/state.c
xkbcommon/xkbcommon.h

index 1511342..4c159fc 100644 (file)
@@ -1052,8 +1052,8 @@ xkb_state_mod_index_is_consumed(struct xkb_state *state, xkb_keycode_t kc,
 {
     const struct xkb_key *key = XkbKey(state->keymap, kc);
 
-    if (!key)
-        return 0;
+    if (!key || idx >= xkb_keymap_num_mods(state->keymap))
+        return -1;
 
     return !!((1 << idx) & key_get_consumed(state, key));
 }
index 2cbf2cc..299b61c 100644 (file)
@@ -890,8 +890,8 @@ xkb_state_mod_indices_are_active(struct xkb_state *state,
 /**
  * Returns 1 if the modifier specified by 'idx' is used in the
  * translation of the keycode 'key' to the key symbols obtained by
- * pressing it (as in xkb_key_get_syms), given the current state.
- * Returns 0 otherwise.
+ * pressing it (as in xkb_state_key_get_syms), given the current state,
+ * 0 otherwise, or -1 if the index is invalid in the keymap.
  */
 int
 xkb_state_mod_index_is_consumed(struct xkb_state *state, xkb_keycode_t key,