summaryrefslogtreecommitdiff
path: root/hw/xquartz/keysym2ucs.h
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremy@yuffie.local>2007-12-05 19:43:49 -0800
committerJeremy Huddleston <jeremy@yuffie.local>2007-12-05 20:32:40 -0800
commitbc65a243930e4b02f06a861495420b0a120eae8c (patch)
tree4b7eb179b0f972c3ee150735a550070aaa498301 /hw/xquartz/keysym2ucs.h
parente00f7061b22001989edf5bd38c2d0cc1566fdd19 (diff)
Darwin: Flattened quartz into darwin, renamed darwin xquartz
Leaving xpr unflattened since we want modularity to replace that with xpc (XPluginComposite) at some point (cherry picked from commit 48e6a75fbdd0fee86e364f02ace83f20b312a2b2)
Diffstat (limited to 'hw/xquartz/keysym2ucs.h')
-rw-r--r--hw/xquartz/keysym2ucs.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/hw/xquartz/keysym2ucs.h b/hw/xquartz/keysym2ucs.h
new file mode 100644
index 000000000..f5b7a18f2
--- /dev/null
+++ b/hw/xquartz/keysym2ucs.h
@@ -0,0 +1,36 @@
+/*
+ * This module converts keysym values into the corresponding ISO 10646
+ * (UCS, Unicode) values.
+ *
+ * The array keysymtab[] contains pairs of X11 keysym values for graphical
+ * characters and the corresponding Unicode value. The function
+ * keysym2ucs() maps a keysym onto a Unicode value using a binary search,
+ * therefore keysymtab[] must remain SORTED by keysym value.
+ *
+ * The keysym -> UTF-8 conversion will hopefully one day be provided
+ * by Xlib via XmbLookupString() and should ideally not have to be
+ * done in X applications. But we are not there yet.
+ *
+ * We allow to represent any UCS character in the range U-00000000 to
+ * U-00FFFFFF by a keysym value in the range 0x01000000 to 0x01ffffff.
+ * This admittedly does not cover the entire 31-bit space of UCS, but
+ * it does cover all of the characters up to U-10FFFF, which can be
+ * represented by UTF-16, and more, and it is very unlikely that higher
+ * UCS codes will ever be assigned by ISO. So to get Unicode character
+ * U+ABCD you can directly use keysym 0x0100abcd.
+ *
+ * Author: Markus G. Kuhn <mkuhn@acm.org>, University of Cambridge, April 2001
+ *
+ * Special thanks to Richard Verhoeven <river@win.tue.nl> for preparing
+ * an initial draft of the mapping table.
+ *
+ * This software is in the public domain. Share and enjoy!
+ */
+
+#ifndef KEYSYM2UCS_H
+#define KEYSYM2UCS_H 1
+
+extern long keysym2ucs(int keysym);
+extern int ucs2keysym(long ucs);
+
+#endif /* KEYSYM2UCS_H */