{
struct in_sdl_state *state = drv_data;
keybits_t mask;
- int i, sym, bit, b;
+ int i, sym, bit, b = 0;
collect_events(state, NULL, NULL);
if ((mask & 1) == 0)
continue;
sym = i * KEYBITS_WORD_BITS + bit;
- result[sym] = binds[sym];
+ result[b++] = binds[sym];
}
}
- return 0;
+ return b;
}
for (i = 0; i < in_dev_count; i++) {
in_dev_t *dev = &in_devices[i];
if (dev->probed && dev->binds != NULL)
- ret |= DRV(dev->drv_id).update_kbd(dev->drv_data, dev->kbd_binds, result);
+ ret += DRV(dev->drv_id).update_kbd(dev->drv_data, dev->kbd_binds, result+ret);
}
return ret;