diff options
Diffstat (limited to 'nx-X11/programs/xterm/unicode/precompose.c.tail')
-rw-r--r-- | nx-X11/programs/xterm/unicode/precompose.c.tail | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/nx-X11/programs/xterm/unicode/precompose.c.tail b/nx-X11/programs/xterm/unicode/precompose.c.tail new file mode 100644 index 000000000..0ceca9b6c --- /dev/null +++ b/nx-X11/programs/xterm/unicode/precompose.c.tail @@ -0,0 +1,23 @@ +}; + +int do_precomposition(int base, int comb) { + int min = 0; + int max = sizeof(precompositions) / sizeof(precompositions[0]) - 1; + int mid; + unsigned int sought = ((unsigned)base << 16) | (unsigned)comb, that; + + /* binary search */ + while (max >= min) { + mid = (min + max) / 2; + that = ((unsigned)precompositions[mid].base << 16) | ((unsigned)precompositions[mid].comb); + if (that < sought) { + min = mid + 1; + } else if (that > sought) { + max = mid - 1; + } else { + return precompositions[mid].replacement; + } + } + /* no match */ + return -1; +} |