Commit | Line | Data |
---|---|---|
a09e091a JB |
1 | /* |
2 | * This module converts keysym values into the corresponding ISO 10646 | |
3 | * (UCS, Unicode) values. | |
4 | * | |
5 | * The array keysymtab[] contains pairs of X11 keysym values for graphical | |
6 | * characters and the corresponding Unicode value. The function | |
7 | * keysym2ucs() maps a keysym onto a Unicode value using a binary search, | |
8 | * therefore keysymtab[] must remain SORTED by keysym value. | |
9 | * | |
10 | * The keysym -> UTF-8 conversion will hopefully one day be provided | |
11 | * by Xlib via XmbLookupString() and should ideally not have to be | |
12 | * done in X applications. But we are not there yet. | |
13 | * | |
14 | * We allow to represent any UCS character in the range U-00000000 to | |
15 | * U-00FFFFFF by a keysym value in the range 0x01000000 to 0x01ffffff. | |
16 | * This admittedly does not cover the entire 31-bit space of UCS, but | |
17 | * it does cover all of the characters up to U-10FFFF, which can be | |
18 | * represented by UTF-16, and more, and it is very unlikely that higher | |
19 | * UCS codes will ever be assigned by ISO. So to get Unicode character | |
20 | * U+ABCD you can directly use keysym 0x0100abcd. | |
21 | * | |
22 | * Author: Markus G. Kuhn <mkuhn@acm.org>, University of Cambridge, April 2001 | |
23 | * | |
24 | * Special thanks to Richard Verhoeven <river@win.tue.nl> for preparing | |
25 | * an initial draft of the mapping table. | |
26 | * | |
27 | * This software is in the public domain. Share and enjoy! | |
28 | */ | |
29 | ||
30 | #ifndef KEYSYM2UCS_H | |
31 | #define KEYSYM2UCS_H 1 | |
32 | ||
33 | extern long | |
34 | keysym2ucs(int keysym); | |
35 | extern int | |
36 | ucs2keysym(long ucs); | |
37 | ||
38 | #endif /* KEYSYM2UCS_H */ |