diff options
author | Mike Gorse <mgorse@suse.com> | 2020-07-07 11:27:17 +0000 |
---|---|---|
committer | Mike Gorse <mgorse@suse.com> | 2020-07-07 11:27:17 +0000 |
commit | ab15c2c2f07671099a25ca7c249ac233798a7f43 (patch) | |
tree | 3c47ac1df3968543c335e018dde55a801660f39a | |
parent | b19da3777043b4fdcd09c4cdab4095eed971b2a9 (diff) | |
parent | 1161336910efaf1a71d0cb16c60eaf98d545535c (diff) | |
download | at-spi2-core-ab15c2c2f07671099a25ca7c249ac233798a7f43.tar.gz |
Merge branch 'keysym2ucs-lookup' into 'master'
Fix keysym2ucs lookup
See merge request GNOME/at-spi2-core!32
-rw-r--r-- | registryd/ucs2keysym.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/registryd/ucs2keysym.c b/registryd/ucs2keysym.c index ad237c02..43bad6dc 100644 --- a/registryd/ucs2keysym.c +++ b/registryd/ucs2keysym.c @@ -824,9 +824,7 @@ long ucs2keysym (long ucs) long keysym2ucs(long keysym) { - int min = 0; - int max = sizeof(keysymtab) / sizeof(struct codepair) - 1; - int mid; + int i; /* first check for Latin-1 characters (1:1 mapping) */ if ((keysym >= 0x0020 && keysym <= 0x007e) || @@ -837,16 +835,10 @@ long keysym2ucs(long keysym) if ((keysym & 0xff000000) == 0x01000000) return keysym & 0x00ffffff; - /* binary search in table */ - while (max >= min) { - mid = (min + max) / 2; - if (keysymtab[mid].keysym < keysym) - min = mid + 1; - else if (keysymtab[mid].keysym > keysym) - max = mid - 1; - else { + for (i = 0; i < sizeof(keysymtab) / sizeof(keysymtab[0]); i++) { + if (keysymtab[i].keysym == keysym) { /* found it */ - return keysymtab[mid].ucs; + return keysymtab[i].ucs; } } |