keymap: continue reading keymap after invalid scancodes

Reading of keymaps is aborted when EINVAL is returned from EVIOCGETKEYCODE.
Scan codes are not always continuous ranges of values starting at 0, so this
can result in not getting the full keymap for a device. Instead, continue
processing if EINVAL is returned.
This commit is contained in:
Seth Forshee 2011-03-24 16:33:54 +01:00 committed by Martin Pitt
parent 864fde8a08
commit 641842bce2
1 changed files with 3 additions and 2 deletions

View File

@ -141,8 +141,9 @@ static int dump_table(int fd) {
int keycode;
if ((keycode = evdev_get_keycode(fd, scancode, 1)) < 0) {
if (keycode != -2)
r = -1;
if (keycode == -2)
continue;
r = -1;
break;
}