From: Martin Pitt Date: Fri, 19 Oct 2012 06:01:47 +0000 (+0200) Subject: keymap: Fix parsing of hex scan codes in tables X-Git-Tag: v195~36 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=3bb9434b69b8562117b8ec34b4498aa208907316;ds=sidebyside keymap: Fix parsing of hex scan codes in tables Commit b1f87c76b1 changed sscanf from %i to %u, as scan codes are unsigned numbers which can be > 0x7FFFFFFF. However, sscanf doesn't accept hexadecimal numbers for %u. It works fine with %i, so revert this back. --- diff --git a/src/udev/keymap/keymap.c b/src/udev/keymap/keymap.c index 0db33b9a8..a6f97ddce 100644 --- a/src/udev/keymap/keymap.c +++ b/src/udev/keymap/keymap.c @@ -204,11 +204,11 @@ static int merge_table(int fd, FILE *f) { if (*p == '#' || *p == '\n') continue; - if (sscanf(p, "%u %i", &scancode, &new_keycode) != 2) { + if (sscanf(p, "%i %i", &scancode, &new_keycode) != 2) { char t[105] = "KEY_UNKNOWN"; const struct key *k; - if (sscanf(p, "%u %100s", &scancode, t+4) != 2) { + if (sscanf(p, "%i %100s", &scancode, t+4) != 2) { fprintf(stderr, "WARNING: Parse failure at line %i, ignoring.\n", line); r = -1; continue;