summaryrefslogtreecommitdiff
path: root/src/keysym.c
diff options
context:
space:
mode:
authorRan Benita <ran234@gmail.com>2014-02-08 17:58:39 +0200
committerRan Benita <ran234@gmail.com>2014-02-08 17:58:39 +0200
commit3d56aa3e605aae00f7988cd4483af862a155dc52 (patch)
tree89ddda68c4fb9dbf4d81dad93147773f6a1b69c5 /src/keysym.c
parent68b03097920e90c7d2d02816cf9f7be714c6821f (diff)
downloadxorg-lib-libxkbcommon-3d56aa3e605aae00f7988cd4483af862a155dc52.tar.gz
keysym: use safe keysym comparison function
Instead of thinking about signed <-> unsigned an whatnot. bsearch() is inline in glibc, so gcc optimizes this away anyway. Signed-off-by: Ran Benita <ran234@gmail.com>
Diffstat (limited to 'src/keysym.c')
-rw-r--r--src/keysym.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/keysym.c b/src/keysym.c
index f52d751..e8fa5e1 100644
--- a/src/keysym.c
+++ b/src/keysym.c
@@ -64,7 +64,11 @@ compare_by_keysym(const void *a, const void *b)
{
const xkb_keysym_t *key = a;
const struct name_keysym *entry = b;
- return *key - (int32_t) entry->keysym;
+ if (*key < entry->keysym)
+ return -1;
+ if (*key > entry->keysym)
+ return 1;
+ return 0;
}
static int