(keyboard_event) Cleanups

This commit is contained in:
twinaphex 2015-03-09 19:04:10 +01:00
parent 498d43960d
commit 2a40cd5939
2 changed files with 7 additions and 6 deletions

View File

@ -49,18 +49,20 @@ static size_t conv_utf8_utf32(uint32_t *out,
size_t ret = 0; size_t ret = 0;
while (in_size && out_chars) while (in_size && out_chars)
{ {
unsigned ones, extra, shift;
uint32_t c;
uint8_t first = *in++; uint8_t first = *in++;
unsigned ones = leading_ones(first); ones = leading_ones(first);
if (ones > 6 || ones == 1) /* Invalid or desync. */ if (ones > 6 || ones == 1) /* Invalid or desync. */
break; break;
unsigned extra = ones ? ones - 1 : ones; extra = ones ? ones - 1 : ones;
if (1 + extra > in_size) /* Overflow. */ if (1 + extra > in_size) /* Overflow. */
break; break;
unsigned shift = (extra - 1) * 6; shift = (extra - 1) * 6;
uint32_t c = (first & ((1 << (7 - ones)) - 1)) << (6 * extra); c = (first & ((1 << (7 - ones)) - 1)) << (6 * extra);
for (i = 0; i < extra; i++, in++, shift -= 6) for (i = 0; i < extra; i++, in++, shift -= 6)
c |= (*in & 0x3f) << shift; c |= (*in & 0x3f) << shift;

View File

@ -55,8 +55,7 @@ void handle_xkb(
if (*map_idx != XKB_MOD_INVALID) if (*map_idx != XKB_MOD_INVALID)
mod |= xkb_state_mod_index_is_active( mod |= xkb_state_mod_index_is_active(
xkb_state, xkb_state, *map_idx,
*map_idx,
(enum xkb_state_component)((XKB_STATE_MODS_EFFECTIVE) > 0)) ? *map_bit : 0; (enum xkb_state_component)((XKB_STATE_MODS_EFFECTIVE) > 0)) ? *map_bit : 0;
} }