X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Flinux%2Fin_evdev.c;h=df4036831cf56967381267dcc70d6e825f8d5fc8;hb=b60b8745c02ebe6fb6584161b4ee5feae1716000;hp=7866015212c45c64b89e377eb3a426c77a2fca5f;hpb=205bc4565ca1db7e2983f8fae2daa28a9a20d3cf;p=picodrive.git diff --git a/platform/linux/in_evdev.c b/platform/linux/in_evdev.c index 7866015..df40368 100644 --- a/platform/linux/in_evdev.c +++ b/platform/linux/in_evdev.c @@ -126,11 +126,17 @@ static const char * const in_evdev_keys[KEY_CNT] = { static void in_evdev_probe(void) { + long keybits[KEY_CNT / sizeof(long) / 8]; + long absbits[(ABS_MAX+1) / sizeof(long) / 8]; int i; + // the kernel might support and return less keys then we know about, + // so make sure the buffers are clear. + memset(keybits, 0, sizeof(keybits)); + memset(absbits, 0, sizeof(absbits)); + for (i = 0;; i++) { - int keybits[KEY_CNT / sizeof(int)], absbits[(ABS_MAX+1)/sizeof(int)]; int support = 0, count = 0; in_evdev_t *dev; int u, ret, fd;