summaryrefslogtreecommitdiff
path: root/extras/keymap/keymap.c
diff options
context:
space:
mode:
authorSeth Forshee <seth.forshee@canonical.com>2011-03-24 16:33:54 +0100
committerMartin Pitt <martin.pitt@ubuntu.com>2011-03-24 16:33:54 +0100
commit641842bce295ec17cca52d34cfaa6765e097bb18 (patch)
tree108cf11b5dbfd5fae24fc95c8cc848ef54198bad /extras/keymap/keymap.c
parent864fde8a087c0edbc0ee3aca83f9289fc32cfcee (diff)
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.
Diffstat (limited to 'extras/keymap/keymap.c')
-rw-r--r--extras/keymap/keymap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/extras/keymap/keymap.c b/extras/keymap/keymap.c
index 719c30e600..eabd1e44d8 100644
--- a/extras/keymap/keymap.c
+++ b/extras/keymap/keymap.c
@@ -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;
}