summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2007-08-25 18:54:25 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2007-08-25 18:54:25 +0000
commit3ab81faaae1e1f849274d67a055629ebac26d1fe (patch)
treef2e3d84ffac31de688c2446ff0b3ac30010cab40 /app
parente6a18690a5c5f3db0e5e3a2a88d1570384f9ceaf (diff)
import xterm 229
Diffstat (limited to 'app')
-rw-r--r--app/xterm/256colres.h2
-rw-r--r--app/xterm/88colres.h2
-rw-r--r--app/xterm/README4
-rw-r--r--app/xterm/config.guess22
-rw-r--r--app/xterm/config.sub17
-rw-r--r--app/xterm/icons/xterm-color_32x32.xcfbin0 -> 2908 bytes
-rw-r--r--app/xterm/icons/xterm-color_32x32.xpm46
-rw-r--r--app/xterm/icons/xterm-color_48x48.xcfbin0 -> 3132 bytes
-rw-r--r--app/xterm/icons/xterm-color_48x48.xpm61
-rw-r--r--app/xterm/icons/xterm_32x32.xcfbin0 -> 2834 bytes
-rw-r--r--app/xterm/icons/xterm_32x32.xpm95
-rw-r--r--app/xterm/icons/xterm_48x48.xcfbin0 -> 2739 bytes
-rw-r--r--app/xterm/icons/xterm_48x48.xpm53
-rw-r--r--app/xterm/keysym2ucs.c54
-rw-r--r--app/xterm/unicode/convmap.pl63
-rw-r--r--app/xterm/unicode/keysym.map2110
-rw-r--r--app/xterm/uxterm.desktop10
-rw-r--r--app/xterm/xterm.desktop10
18 files changed, 1437 insertions, 1112 deletions
diff --git a/app/xterm/256colres.h b/app/xterm/256colres.h
index a84acd588..4b98391e6 100644
--- a/app/xterm/256colres.h
+++ b/app/xterm/256colres.h
@@ -1,7 +1,7 @@
/*
* This header file was generated by ./256colres.pl
*/
-/* $XFree86: xc/programs/xterm/256colres.h,v 1.5 2002/10/05 17:57:11 dickey Exp $ */
+/* $XTermId: 256colres.h,v 1.11 2007/06/12 00:44:23 tom Exp $ */
#ifndef included_256colres_h
#define included_256colres_h
diff --git a/app/xterm/88colres.h b/app/xterm/88colres.h
index 94f428bdc..fcad714f5 100644
--- a/app/xterm/88colres.h
+++ b/app/xterm/88colres.h
@@ -1,7 +1,7 @@
/*
* This header file was generated by ./88colres.pl
*/
-/* $XFree86: xc/programs/xterm/88colres.h,v 1.4 2002/10/05 17:57:11 dickey Exp $ */
+/* $XTermId: 88colres.h,v 1.11 2007/06/12 00:44:21 tom Exp $ */
#ifndef included_88colres_h
#define included_88colres_h
diff --git a/app/xterm/README b/app/xterm/README
index f098b04b0..76328f441 100644
--- a/app/xterm/README
+++ b/app/xterm/README
@@ -1,3 +1,7 @@
+-- $XTermId: README,v 1.3 2007/05/24 19:49:19 tom Exp $
+-- Below is the original README for xterm from 1991, for your amusement.
+-- For a better overview, see http://invisible-island.net/xterm/
+-------------------------------------------------------------------------------
Abandon All Hope, Ye Who Enter Here
diff --git a/app/xterm/config.guess b/app/xterm/config.guess
index 1a695461e..951383e35 100644
--- a/app/xterm/config.guess
+++ b/app/xterm/config.guess
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2006-12-22'
+timestamp='2007-05-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
- i86pc:SunOS:5.*:*)
+ i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
@@ -791,12 +791,15 @@ EOF
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[3456]*)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ *:Interix*:[3456]*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T | authenticamd)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
@@ -1218,6 +1221,9 @@ EOF
SX-8:SUPER-UX:*:*)
echo sx8-nec-superux${UNAME_RELEASE}
exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
diff --git a/app/xterm/config.sub b/app/xterm/config.sub
index 4b8cc7b41..1761d8bdf 100644
--- a/app/xterm/config.sub
+++ b/app/xterm/config.sub
@@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2006-12-08'
+timestamp='2007-06-28'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@@ -250,7 +250,7 @@ case $basic_machine in
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore \
+ | maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
@@ -475,8 +475,8 @@ case $basic_machine in
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16c)
- basic_machine=cr16c-unknown
+ cr16)
+ basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
@@ -683,6 +683,10 @@ case $basic_machine in
basic_machine=i386-pc
os=-mingw32
;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
basic_machine=m68000-convergent
;;
@@ -1222,7 +1226,7 @@ case $os in
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
@@ -1417,6 +1421,9 @@ case $basic_machine in
m68*-cisco)
os=-aout
;;
+ mep-*)
+ os=-elf
+ ;;
mips*-cisco)
os=-elf
;;
diff --git a/app/xterm/icons/xterm-color_32x32.xcf b/app/xterm/icons/xterm-color_32x32.xcf
new file mode 100644
index 000000000..f13ef5d18
--- /dev/null
+++ b/app/xterm/icons/xterm-color_32x32.xcf
Binary files differ
diff --git a/app/xterm/icons/xterm-color_32x32.xpm b/app/xterm/icons/xterm-color_32x32.xpm
new file mode 100644
index 000000000..7824f6c99
--- /dev/null
+++ b/app/xterm/icons/xterm-color_32x32.xpm
@@ -0,0 +1,46 @@
+/* XPM */
+static char * xterm_color_32x32_xpm[] = {
+"32 32 11 1",
+" c None",
+". c #555500",
+"+ c #000000",
+"@ c #FFFFFF",
+"# c #FF0000",
+"$ c #980000",
+"% c #FF5E00",
+"& c #49FF00",
+"* c #2FA300",
+"= c #60B7FF",
+"- c #3A709B",
+"................................",
+".....+++++++++++++++++++++++....",
+"....+@@+++++++++++++++++++@@++..",
+"....+@+++++++++++++++++++++@+@+.",
+"....+++++++++++++++++++++++++@@+",
+"....+++#$+$#+++++++++++++++++@@+",
+"....++++$#$++++++++++++++++++@@+",
+"....++++$#+++++++++++++++++++@@+",
+"....++++$#$++++++++++++++++++@@+",
+"....+++#$+$#+++++++++++++++++@@+",
+"....+++++++++++++++++++++++++@@+",
+"....+++++++++++++++++++++++++@@+",
+"....+++++++++++++++++++++++++@@+",
+"....+++@@@@+%%%+&&&*+=++=++++@@+",
+"....+++++@++%+++&+&*+=-==++++@@+",
+"....+++++@++%%%+&&&*+==-=++++@@+",
+"....+++++@++%+++&+&++=++=++++@@+",
+"....+++++@++%%%+&+*&+=++=++++@@+",
+"....+++++++++++++++++++++++++@+.",
+"....+++++++++++++++++++++++++@+.",
+"....+@+++++++++++++++++++++@++..",
+"....+@@+++++++++++++++++++@@+...",
+".....+++++++++++++++++++++++....",
+"................................",
+".....++++++++++++++++++++++++...",
+"....+@@@@@@@@@@@@@@@@@@@@@@@+...",
+"...+@@@@@@@@@@@@@@@@@@@@@@@+....",
+"...+@@++@@++@++@@++@@+@@++@+....",
+"..+@++@@++@@+@@++@@++@++@@@+....",
+"..+@@@@@@@@@@@@@@@@@@@@@@@+.+...",
+".+@@@@@@@@@@@@@@@@@@@@@@@+......",
+".++++++++++++++++++++++++++....."};
diff --git a/app/xterm/icons/xterm-color_48x48.xcf b/app/xterm/icons/xterm-color_48x48.xcf
new file mode 100644
index 000000000..574d9f286
--- /dev/null
+++ b/app/xterm/icons/xterm-color_48x48.xcf
Binary files differ
diff --git a/app/xterm/icons/xterm-color_48x48.xpm b/app/xterm/icons/xterm-color_48x48.xpm
new file mode 100644
index 000000000..126e454ec
--- /dev/null
+++ b/app/xterm/icons/xterm-color_48x48.xpm
@@ -0,0 +1,61 @@
+/* XPM */
+static char * xterm_color_48x48_xpm[] = {
+"48 48 10 1",
+" c None",
+". c #555500",
+"+ c #000000",
+"@ c #FFFFFF",
+"# c #FF0000",
+"$ c #070700",
+"% c #0B0B00",
+"& c #FF8400",
+"* c #49FF00",
+"= c #60B7FF",
+"................................................",
+"......++++++++++++++++++++++++++++++++++........",
+".....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++......",
+".....+@@@++++++++++++++++++++++++++++@@@+@+.....",
+".....+@@++++++++++++++++++++++++++++++@@+@@+....",
+".....+@++++++++++++++++++++++++++++++++@+@@@+...",
+".....+@++###++++###++++++++++++++++++++@+@@@@+..",
+".....+@+++##++++##+++++++++++++++++++++@+@@@@+..",
+".....+@++++##++##++++++++++++++++++++++@+@@@@+..",
+".....+@++++##++##++++++++++++++++++++++@+@@@@+..",
+".....+@+++++####+++++++++++++++++++++++@+@@@@+..",
+".....+@+++++####+++++++++++++++++++++++@+@@@@+..",
+".....+@++++++##++++++++++++++++++++++++@+@@@@+..",
+".....+@+++++####+++++++++++++++++++++++@+@@@@+..",
+".....+@+++++####+++++++++++++++++++++++@+@@@@+..",
+".....+@++++##++##++++++++++++++++++++++@+@@@@+..",
+".....+@++++##++##++++++++++++++++++++++@+@@@@+..",
+".....+@+++##++++##+++++++++++++++++++++@+@@@@+..",
+".....+@++###++++###++++++++++++++++++++@+@@@@+..",
+".....+@++++++++++++++++++++++++++++++++@+@@@@+..",
+".....+@$+++++++++++++++++++++++++++++++@+@@@@+..",
+".....+@%@@@@@@@+&&&&&++****+++==+++==++@+@@@@+..",
+".....+@++++@++++&++++++*+++*++==+++==++@+@@@@+..",
+".....+@++++@++++&++++++*+++*++=+=+=+=++@+@@@@+..",
+".....+@++++@++++&&&&+++****+++=+=+=+=++@+@@@@+..",
+".....+@++++@++++&++++++*+*++++=++=++=++@+@@@+...",
+".....+@++++@++++&++++++*++*+++=++=++=++@+@@@+...",
+".....+@++++@++++&&&&&++*+++*++=+++++=++@+@@+....",
+".....+@++++++++++++++++++++++++++++++++@+@@+....",
+".....+@++++++++++++++++++++++++++++++++@+@+.....",
+".....+@@++++++++++++++++++++++++++++++@@+@+.....",
+".....+@@@++++++++++++++++++++++++++++@@@++......",
+".....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++......",
+"......++++++++++++++++++++++++++++++++++........",
+"................................................",
+"................................................",
+"......++++++++++++++++++++++++++++++++++++......",
+".....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@++......",
+".....+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@@++......",
+"....+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@+......",
+"....+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@@+@+......",
+"...+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@+......",
+"...+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@+@@+@@+......",
+"..+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@@+.......",
+"..+@++@++++++++++++++++++++++++++@++@+@+........",
+".+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+@+.........",
+".+++++++++++++++++++++++++++++++++++++..........",
+"................................................"};
diff --git a/app/xterm/icons/xterm_32x32.xcf b/app/xterm/icons/xterm_32x32.xcf
new file mode 100644
index 000000000..7a5a5a7a1
--- /dev/null
+++ b/app/xterm/icons/xterm_32x32.xcf
Binary files differ
diff --git a/app/xterm/icons/xterm_32x32.xpm b/app/xterm/icons/xterm_32x32.xpm
new file mode 100644
index 000000000..361093699
--- /dev/null
+++ b/app/xterm/icons/xterm_32x32.xpm
@@ -0,0 +1,95 @@
+/* XPM */
+static char * xterm_32x32_xpm[] = {
+"32 32 60 1",
+" c None",
+". c #FFFFFF",
+"+ c #000000",
+"@ c #EFEFEF",
+"# c #FEFEFE",
+"$ c #FBFBFB",
+"% c #F3F3F3",
+"& c #ADADAD",
+"* c #909090",
+"= c #737373",
+"- c #D2D2D2",
+"; c #646464",
+"> c #9A9A9A",
+", c #8D8D8D",
+"' c #D3D3D3",
+") c #0E0E0E",
+"! c #F6F6F6",
+"~ c #5E5E5E",
+"{ c #B1B1B1",
+"] c #777777",
+"^ c #949494",
+"/ c #757575",
+"( c #C4C4C4",
+"_ c #E7E7E7",
+": c #F1F1F1",
+"< c #F8F8F8",
+"[ c #EEEEEE",
+"} c #F0F0F0",
+"| c #FAFAFA",
+"1 c #7B7B7B",
+"2 c #3D3D3D",
+"3 c #868686",
+"4 c #4F4F4F",
+"5 c #ABABAB",
+"6 c #545454",
+"7 c #5B5B5B",
+"8 c #AFAFAF",
+"9 c #292929",
+"0 c #181818",
+"a c #C7C7C7",
+"b c #CFCFCF",
+"c c #7F7F7F",
+"d c #A3A3A3",
+"e c #4D4D4D",
+"f c #6A6A6A",
+"g c #A1A1A1",
+"h c #8E8E8E",
+"i c #696969",
+"j c #474747",
+"k c #5A5A5A",
+"l c #959595",
+"m c #767676",
+"n c #8B8B8B",
+"o c #BCBCBC",
+"p c #BFBFBF",
+"q c #D7D7D7",
+"r c #404040",
+"s c #636363",
+"t c #989898",
+"u c #8A8A8A",
+"................................",
+".....+++++++++++++++++++++++....",
+"....+..+++++++++++++++++++..++..",
+"....+.+...................+.+.+.",
+"....++.@#.$%................+..+",
+"....++.&*.=-................+..+",
+"....++..;>,.................+..+",
+"....++..')!.................+..+",
+"....++.#~{].................+..+",
+"....++.^{./(................+..+",
+"....++......................+..+",
+"....++......................+..+",
+"....++.____:___<_[..<}..[|..+..+",
+"....++.1;21341156]7.89$:0a..+..+",
+"....++..bc.8^__8d.e.8fghia..+..+",
+"....++..bc.84115jkl.887mna..+..+",
+"....++..bc.8d..8dof.88pqna..+..+",
+"....++..bc.8rss5d.tu88..na..+...",
+"....++......................+.+.",
+"....++......................+.+.",
+"....+.+...................+.++..",
+"....+..+++++++++++++++++++..+...",
+".....+++++++++++++++++++++++....",
+"................................",
+".....++++++++++++++++++++++++...",
+"....+.......................+...",
+"...+.......................+....",
+"...+..++..++.++..++..+..++.+....",
+"....++..++..+..++..++.++........",
+"..+.......................+.+...",
+".+.......................+......",
+".++++++++++++++++++++++++++....."};
diff --git a/app/xterm/icons/xterm_48x48.xcf b/app/xterm/icons/xterm_48x48.xcf
new file mode 100644
index 000000000..a4dc88efd
--- /dev/null
+++ b/app/xterm/icons/xterm_48x48.xcf
Binary files differ
diff --git a/app/xterm/icons/xterm_48x48.xpm b/app/xterm/icons/xterm_48x48.xpm
new file mode 100644
index 000000000..44fb8109a
--- /dev/null
+++ b/app/xterm/icons/xterm_48x48.xpm
@@ -0,0 +1,53 @@
+/* XPM */
+static char * xterm_48x48_xpm[] = {
+"48 48 2 1",
+" c #000000",
+". c #FFFFFF",
+"................................................",
+"...... ........",
+"..... .................................. ......",
+"..... ... ... . .....",
+"..... .. ............................ .. .. ....",
+"..... . .............................. . ... ...",
+"..... . . .... ................... . .... ..",
+"..... . .. .... .................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . ..... ....................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . .... ...................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . ... .. ..................... . .... ..",
+"..... . .. .... .................... . .... ..",
+"..... . . .... ................... . .... ..",
+"..... . .............................. . .... ..",
+"..... . .............................. . .... ..",
+"..... . . . .. ... ... . . .... ..",
+"..... . ... .... ...... ... .. ... . . .... ..",
+"..... . ... .... ...... ... .. . . . . . .... ..",
+"..... . ... .... ... ... . . . . . .... ..",
+"..... . ... .... ...... . .... .. .. . . ... ...",
+"..... . ... .... ...... .. ... .. .. . . ... ...",
+"..... . ... .... .. ... .. ..... . . .. ....",
+"..... . .............................. . .. ....",
+"..... . .............................. . . .....",
+"..... .. ............................ .. . .....",
+"..... ... ... ......",
+"..... .................................. ......",
+"...... ........",
+"................................................",
+"................................................",
+"...... ......",
+"..... .................................. ......",
+"..... . . . . . . . . . . . . . . . . .. ......",
+".... .................................. . ......",
+".... . . . . . . . . . . . . . . . . .. . ......",
+"... .................................. .. ......",
+"... . . . . . . . . . . . . . . . . .. .. ......",
+".. .................................. .. .......",
+".. . . . . . ........",
+". .................................. . .........",
+". ..........",
+"................................................"};
diff --git a/app/xterm/keysym2ucs.c b/app/xterm/keysym2ucs.c
index b96d9624b..69cf1619d 100644
--- a/app/xterm/keysym2ucs.c
+++ b/app/xterm/keysym2ucs.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/xterm/keysym2ucs.c,v 1.5 2001/06/18 19:09:26 dickey Exp $
+/* $XTermId: keysym2ucs.c,v 1.15 2007/06/13 00:16:56 tom Exp $
* This module converts keysym values into the corresponding ISO 10646
* (UCS, Unicode) values.
*
@@ -286,6 +286,7 @@ static struct codepair {
{ 0x06aa, 0x045a }, /* Cyrillic_nje њ CYRILLIC SMALL LETTER NJE */
{ 0x06ab, 0x045b }, /* Serbian_tshe ћ CYRILLIC SMALL LETTER TSHE */
{ 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */
+ { 0x06ad, 0x0491 }, /* Ukrainian_ghe_with_upturn ґ CYRILLIC SMALL LETTER GHE WITH UPTURN */
{ 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */
{ 0x06af, 0x045f }, /* Cyrillic_dzhe џ CYRILLIC SMALL LETTER DZHE */
{ 0x06b0, 0x2116 }, /* numerosign № NUMERO SIGN */
@@ -301,6 +302,7 @@ static struct codepair {
{ 0x06ba, 0x040a }, /* Cyrillic_NJE Њ CYRILLIC CAPITAL LETTER NJE */
{ 0x06bb, 0x040b }, /* Serbian_TSHE Ћ CYRILLIC CAPITAL LETTER TSHE */
{ 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */
+ { 0x06bd, 0x0490 }, /* Ukrainian_GHE_WITH_UPTURN Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
{ 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */
{ 0x06bf, 0x040f }, /* Cyrillic_DZHE Џ CYRILLIC CAPITAL LETTER DZHE */
{ 0x06c0, 0x044e }, /* Cyrillic_yu ю CYRILLIC SMALL LETTER YU */
@@ -438,22 +440,22 @@ static struct codepair {
{ 0x07f7, 0x03c7 }, /* Greek_chi χ GREEK SMALL LETTER CHI */
{ 0x07f8, 0x03c8 }, /* Greek_psi ψ GREEK SMALL LETTER PSI */
{ 0x07f9, 0x03c9 }, /* Greek_omega ω GREEK SMALL LETTER OMEGA */
- { 0x08a1, 0x23b7 }, /* leftradical ⎷ ??? */
+ { 0x08a1, 0x23b7 }, /* leftradical ⎷ RADICAL SYMBOL BOTTOM */
{ 0x08a2, 0x250c }, /* topleftradical ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */
{ 0x08a3, 0x2500 }, /* horizconnector ─ BOX DRAWINGS LIGHT HORIZONTAL */
{ 0x08a4, 0x2320 }, /* topintegral ⌠ TOP HALF INTEGRAL */
{ 0x08a5, 0x2321 }, /* botintegral ⌡ BOTTOM HALF INTEGRAL */
{ 0x08a6, 0x2502 }, /* vertconnector │ BOX DRAWINGS LIGHT VERTICAL */
- { 0x08a7, 0x23a1 }, /* topleftsqbracket ⎡ ??? */
- { 0x08a8, 0x23a3 }, /* botleftsqbracket ⎣ ??? */
- { 0x08a9, 0x23a4 }, /* toprightsqbracket ⎤ ??? */
- { 0x08aa, 0x23a6 }, /* botrightsqbracket ⎦ ??? */
- { 0x08ab, 0x239b }, /* topleftparens ⎛ ??? */
- { 0x08ac, 0x239d }, /* botleftparens ⎝ ??? */
- { 0x08ad, 0x239e }, /* toprightparens ⎞ ??? */
- { 0x08ae, 0x23a0 }, /* botrightparens ⎠ ??? */
- { 0x08af, 0x23a8 }, /* leftmiddlecurlybrace ⎨ ??? */
- { 0x08b0, 0x23ac }, /* rightmiddlecurlybrace ⎬ ??? */
+ { 0x08a7, 0x23a1 }, /* topleftsqbracket ⎡ LEFT SQUARE BRACKET UPPER CORNER */
+ { 0x08a8, 0x23a3 }, /* botleftsqbracket ⎣ LEFT SQUARE BRACKET LOWER CORNER */
+ { 0x08a9, 0x23a4 }, /* toprightsqbracket ⎤ RIGHT SQUARE BRACKET UPPER CORNER */
+ { 0x08aa, 0x23a6 }, /* botrightsqbracket ⎦ RIGHT SQUARE BRACKET LOWER CORNER */
+ { 0x08ab, 0x239b }, /* topleftparens ⎛ LEFT PARENTHESIS UPPER HOOK */
+ { 0x08ac, 0x239d }, /* botleftparens ⎝ LEFT PARENTHESIS LOWER HOOK */
+ { 0x08ad, 0x239e }, /* toprightparens ⎞ RIGHT PARENTHESIS UPPER HOOK */
+ { 0x08ae, 0x23a0 }, /* botrightparens ⎠ RIGHT PARENTHESIS LOWER HOOK */
+ { 0x08af, 0x23a8 }, /* leftmiddlecurlybrace ⎨ LEFT CURLY BRACKET MIDDLE PIECE */
+ { 0x08b0, 0x23ac }, /* rightmiddlecurlybrace ⎬ RIGHT CURLY BRACKET MIDDLE PIECE */
/* 0x08b1 topleftsummation ? ??? */
/* 0x08b2 botleftsummation ? ??? */
/* 0x08b3 topvertsummationconnector ? ??? */
@@ -487,7 +489,7 @@ static struct codepair {
{ 0x08fc, 0x2191 }, /* uparrow ↑ UPWARDS ARROW */
{ 0x08fd, 0x2192 }, /* rightarrow → RIGHTWARDS ARROW */
{ 0x08fe, 0x2193 }, /* downarrow ↓ DOWNWARDS ARROW */
-/* 0x09df blank ? ??? */
+ { 0x09df, 0x2422 }, /* blank ␢ BLANK SYMBOL */
{ 0x09e0, 0x25c6 }, /* soliddiamond ◆ BLACK DIAMOND */
{ 0x09e1, 0x2592 }, /* checkerboard ▒ MEDIUM SHADE */
{ 0x09e2, 0x2409 }, /* ht ␉ SYMBOL FOR HORIZONTAL TABULATION */
@@ -501,11 +503,11 @@ static struct codepair {
{ 0x09ec, 0x250c }, /* upleftcorner ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */
{ 0x09ed, 0x2514 }, /* lowleftcorner └ BOX DRAWINGS LIGHT UP AND RIGHT */
{ 0x09ee, 0x253c }, /* crossinglines ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
- { 0x09ef, 0x23ba }, /* horizlinescan1 ⎺ HORIZONTAL SCAN LINE-1 (Unicode 3.2 draft) */
- { 0x09f0, 0x23bb }, /* horizlinescan3 ⎻ HORIZONTAL SCAN LINE-3 (Unicode 3.2 draft) */
+ { 0x09ef, 0x23ba }, /* horizlinescan1 ⎺ HORIZONTAL SCAN LINE-1 */
+ { 0x09f0, 0x23bb }, /* horizlinescan3 ⎻ HORIZONTAL SCAN LINE-3 */
{ 0x09f1, 0x2500 }, /* horizlinescan5 ─ BOX DRAWINGS LIGHT HORIZONTAL */
- { 0x09f2, 0x23bc }, /* horizlinescan7 ⎼ HORIZONTAL SCAN LINE-7 (Unicode 3.2 draft) */
- { 0x09f3, 0x23bd }, /* horizlinescan9 ⎽ HORIZONTAL SCAN LINE-9 (Unicode 3.2 draft) */
+ { 0x09f2, 0x23bc }, /* horizlinescan7 ⎼ HORIZONTAL SCAN LINE-7 */
+ { 0x09f3, 0x23bd }, /* horizlinescan9 ⎽ HORIZONTAL SCAN LINE-9 */
{ 0x09f4, 0x251c }, /* leftt ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
{ 0x09f5, 0x2524 }, /* rightt ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT */
{ 0x09f6, 0x2534 }, /* bott ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL */
@@ -521,7 +523,7 @@ static struct codepair {
{ 0x0aa8, 0x200a }, /* hairspace   HAIR SPACE */
{ 0x0aa9, 0x2014 }, /* emdash — EM DASH */
{ 0x0aaa, 0x2013 }, /* endash – EN DASH */
-/* 0x0aac signifblank ? ??? */
+ { 0x0aac, 0x2423 }, /* signifblank ␣ OPEN BOX */
{ 0x0aae, 0x2026 }, /* ellipsis … HORIZONTAL ELLIPSIS */
{ 0x0aaf, 0x2025 }, /* doubbaselinedot ‥ TWO DOT LEADER */
{ 0x0ab0, 0x2153 }, /* onethird ⅓ VULGAR FRACTION ONE THIRD */
@@ -535,7 +537,7 @@ static struct codepair {
{ 0x0ab8, 0x2105 }, /* careof ℅ CARE OF */
{ 0x0abb, 0x2012 }, /* figdash ‒ FIGURE DASH */
{ 0x0abc, 0x2329 }, /* leftanglebracket 〈 LEFT-POINTING ANGLE BRACKET */
-/* 0x0abd decimalpoint ? ??? */
+ { 0x0abd, 0x002e }, /* decimalpoint . FULL STOP */
{ 0x0abe, 0x232a }, /* rightanglebracket 〉 RIGHT-POINTING ANGLE BRACKET */
/* 0x0abf marker ? ??? */
{ 0x0ac3, 0x215b }, /* oneeighth ⅛ VULGAR FRACTION ONE EIGHTH */
@@ -699,7 +701,7 @@ static struct codepair {
{ 0x0dd8, 0x0e38 }, /* Thai_sarau ุ THAI CHARACTER SARA U */
{ 0x0dd9, 0x0e39 }, /* Thai_sarauu ู THAI CHARACTER SARA UU */
{ 0x0dda, 0x0e3a }, /* Thai_phinthu ฺ THAI CHARACTER PHINTHU */
-/* 0x0dde Thai_maihanakat_maitho ? ??? */
+ { 0x0dde, 0x0e3e }, /* Thai_maihanakat_maitho ฾ ??? */
{ 0x0ddf, 0x0e3f }, /* Thai_baht ฿ THAI CURRENCY SYMBOL BAHT */
{ 0x0de0, 0x0e40 }, /* Thai_sarae เ THAI CHARACTER SARA E */
{ 0x0de1, 0x0e41 }, /* Thai_saraae แ THAI CHARACTER SARA AE */
@@ -820,6 +822,18 @@ static struct codepair {
{ 0x13bc, 0x0152 }, /* OE Œ LATIN CAPITAL LIGATURE OE */
{ 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */
{ 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */
+ { 0x20a0, 0x20a0 }, /* EcuSign ₠ EURO-CURRENCY SIGN */
+ { 0x20a1, 0x20a1 }, /* ColonSign ₡ COLON SIGN */
+ { 0x20a2, 0x20a2 }, /* CruzeiroSign ₢ CRUZEIRO SIGN */
+ { 0x20a3, 0x20a3 }, /* FFrancSign ₣ FRENCH FRANC SIGN */
+ { 0x20a4, 0x20a4 }, /* LiraSign ₤ LIRA SIGN */
+ { 0x20a5, 0x20a5 }, /* MillSign ₥ MILL SIGN */
+ { 0x20a6, 0x20a6 }, /* NairaSign ₦ NAIRA SIGN */
+ { 0x20a7, 0x20a7 }, /* PesetaSign ₧ PESETA SIGN */
+ { 0x20a8, 0x20a8 }, /* RupeeSign ₨ RUPEE SIGN */
+ { 0x20a9, 0x20a9 }, /* WonSign ₩ WON SIGN */
+ { 0x20aa, 0x20aa }, /* NewSheqelSign ₪ NEW SHEQEL SIGN */
+ { 0x20ab, 0x20ab }, /* DongSign ₫ DONG SIGN */
{ 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */
};
diff --git a/app/xterm/unicode/convmap.pl b/app/xterm/unicode/convmap.pl
index aa85b6fb7..a47349170 100644
--- a/app/xterm/unicode/convmap.pl
+++ b/app/xterm/unicode/convmap.pl
@@ -1,8 +1,22 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
+# $XTermId: convmap.pl,v 1.13 2007/06/11 23:30:44 tom Exp $
+#
# Generate keysym2ucs.c file
#
+# See also:
+# http://mail.nl.linux.org/linux-utf8/2001-04/msg00248.html
+#
# $XFree86: xc/programs/xterm/unicode/convmap.pl,v 1.5 2000/01/24 22:22:05 dawes Exp $
+use strict;
+
+our $keysym;
+our %name;
+our %keysym_to_ucs;
+our %keysym_to_keysymname;
+
+sub utf8 ($);
+
sub utf8 ($) {
my $c = shift(@_);
@@ -42,7 +56,7 @@ sub utf8 ($) {
}
}
-$unicodedata = "UnicodeData-Latest.txt";
+my $unicodedata = "UnicodeData-Latest.txt";
# read list of all Unicode names
if (!open(UDATA, $unicodedata) && !open(UDATA, "$unicodedata")) {
@@ -51,7 +65,7 @@ if (!open(UDATA, $unicodedata) && !open(UDATA, "$unicodedata")) {
"ftp://ftp.unicode.org/Public/UNIDATA/UnicodeData-Latest.txt\n");
}
while (<UDATA>) {
- if (/^([0-9,A-F]{4});([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*)$/) {
+ if (/^([0-9,A-F]{4,6});([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*);([^;]*)$/) {
$name{hex($1)} = $2;
} else {
die("Syntax error in line '$_' in file '$unicodedata'");
@@ -63,9 +77,12 @@ close(UDATA);
open(LIST, "<keysym.map") || die ("Can't open map file:\n$!\n");
while (<LIST>) {
if (/^0x([0-9a-f]{4})\s+U([0-9a-f]{4})\s*(\#.*)?$/){
- $keysym = hex($1);
- $ucs = hex($2);
+ my $keysym = hex($1);
+ my $ucs = hex($2);
+ my $comment = $3;
+ $comment =~ s/^#\s*//;
$keysym_to_ucs{$keysym} = $ucs;
+ $keysym_to_keysymname{$keysym} = $comment;
} elsif (/^\s*\#/ || /^\s*$/) {
} else {
die("Syntax error in 'list' in line\n$_\n");
@@ -78,16 +95,16 @@ open(LIST, "</usr/include/X11/keysymdef.h") || die ("Can't open keysymdef.h:\n$!
while (<LIST>) {
if (/^\#define\s+XK_([A-Za-z_0-9]+)\s+0x([0-9a-fA-F]+)\s*(\/.*)?$/) {
next if /\/\* deprecated \*\//;
- $keysymname = $1;
- $keysym = hex($2);
+ my $keysymname = $1;
+ my $keysym = hex($2);
$keysym_to_keysymname{$keysym} = $keysymname;
}
}
close(LIST);
print <<EOT;
-/* \$XFree86\$
- * This module converts keysym values into the corresponding ISO 10646-1
+/* \$XTermId\$
+ * This module converts keysym values into the corresponding ISO 10646
* (UCS, Unicode) values.
*
* The array keysymtab[] contains pairs of X11 keysym values for graphical
@@ -99,36 +116,47 @@ print <<EOT;
* 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.
+ * 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
+ * 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 0x1000abcd.
+ * U+ABCD you can directly use keysym 0x0100abcd.
*
* NOTE: The comments in the table below contain the actual character
* encoded in UTF-8, so for viewing and editing best use an editor in
* UTF-8 mode.
*
- * Author: Markus G. Kuhn <mkuhn\@acm.org>, University of Cambridge, June 1999
+ * 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!
+ *
+ * AUTOMATICALLY GENERATED FILE, DO NOT EDIT !!! (unicode/convmap.pl)
*/
-#include <keysym2ucs.h>
+#ifndef KEYSYM2UCS_INCLUDED
+
+#include "keysym2ucs.h"
+#define VISIBLE /* */
+
+#else
+
+#define VISIBLE static
+
+#endif
-struct codepair {
+static struct codepair {
unsigned short keysym;
unsigned short ucs;
} keysymtab[] = {
EOT
for $keysym (sort {$a <=> $b} keys(%keysym_to_keysymname)) {
- $ucs = $keysym_to_ucs{$keysym};
+ my $ucs = $keysym_to_ucs{$keysym};
next if $keysym >= 0xf000 || $keysym < 0x100;
if ($ucs) {
printf(" { 0x%04x, 0x%04x }, /*%28s %s %s */\n",
@@ -143,6 +171,7 @@ for $keysym (sort {$a <=> $b} keys(%keysym_to_keysymname)) {
print <<EOT;
};
+VISIBLE
long keysym2ucs(KeySym keysym)
{
int min = 0;
diff --git a/app/xterm/unicode/keysym.map b/app/xterm/unicode/keysym.map
index 6e587bdc0..f06e26e71 100644
--- a/app/xterm/unicode/keysym.map
+++ b/app/xterm/unicode/keysym.map
@@ -1,1062 +1,1052 @@
-# This list can be used to convert X11 Keysyms to Unicode 2.1 character.
-# The list is not checked for correctness by Unicode officials. Use it
-# at your own risk and the creator is not responsable for any damage that
-# occured due to using this list.
-#
-# The list is created by looking at the Keysym names and the Unicode data
-# file. Other mapping tables were used as a reference where needed.
-# Due to a lack of knowledge of the Hebrew, Thai and Hangul symbols,
-# expect errors in these sections. The mapping of the keypad keys
-# might also require some adjustments.
-#
-# The following fields are used:
-# 1 The X11 keysym numbers from the include file keysymdef.h
-# 2 The Unicode (2.1) position (U0000 means unknown Unicode position)
-# #
-# 3 the name of the X11 keysym (without XK_)
-#
-# Authors: Richard Verhoeven, TUE, <river@win.tue.nl>
-# Markus Kuhn, University of Cambridge, <mkuhn@acm.org>
-#
-# You are free to use and modify this table. If you introduce errors
-# in the table, please remove the copyright line. If you remove errors,
-# please let me know, so I can update my version.
+# $XTermId: keysym.map,v 1.8 2007/06/13 00:52:16 tom Exp $
+#
+# This list can be used to convert X11 Keysyms to Unicode 2.1 character.
+# The list is not checked for correctness by Unicode officials. Use it
+# at your own risk and the creator is not responsible for any damage that
+# occurred due to using this list.
+#
+# The list is created by looking at the Keysym names and the Unicode data
+# file. Other mapping tables were used as a reference where needed.
+# Due to a lack of knowledge of the Hebrew, Thai and Hangul symbols,
+# expect errors in these sections. The mapping of the keypad keys
+# might also require some adjustments.
+#
+# The following fields are used:
+# 1 The X11 keysym numbers from the include file keysymdef.h
+# 2 The Unicode (2.1) position (U0000 means unknown Unicode position)
+# #
+# 3 the name of the X11 keysym (without XK_)
+#
+# Authors: Richard Verhoeven, TUE, <river@win.tue.nl>
+# Markus Kuhn, University of Cambridge, <mkuhn@acm.org>
+#
+# You are free to use and modify this table. If you introduce errors
+# in the table, please remove the copyright line. If you remove errors,
+# please let me know, so I can update my version.
#
# $XFree86: xc/programs/xterm/unicode/keysym.map,v 1.1 1999/06/12 15:37:24 dawes Exp $
-#
-0x0020 U0020 # space
-0x0021 U0021 # exclam
-0x0022 U0022 # quotedbl
-0x0023 U0023 # numbersign
-0x0024 U0024 # dollar
-0x0025 U0025 # percent
-0x0026 U0026 # ampersand
-0x0027 U0027 # apostrophe
-0x0027 U0027 # quoteright /* deprecated */
-0x0028 U0028 # parenleft
-0x0029 U0029 # parenright
-0x002a U002a # asterisk
-0x002b U002b # plus
-0x002c U002c # comma
-0x002d U002d # minus
-0x002e U002e # period
-0x002f U002f # slash
-0x0030 U0030 # 0
-0x0031 U0031 # 1
-0x0032 U0032 # 2
-0x0033 U0033 # 3
-0x0034 U0034 # 4
-0x0035 U0035 # 5
-0x0036 U0036 # 6
-0x0037 U0037 # 7
-0x0038 U0038 # 8
-0x0039 U0039 # 9
-0x003a U003a # colon
-0x003b U003b # semicolon
-0x003c U003c # less
-0x003d U003d # equal
-0x003e U003e # greater
-0x003f U003f # question
-0x0040 U0040 # at
-0x0041 U0041 # A
-0x0042 U0042 # B
-0x0043 U0043 # C
-0x0044 U0044 # D
-0x0045 U0045 # E
-0x0046 U0046 # F
-0x0047 U0047 # G
-0x0048 U0048 # H
-0x0049 U0049 # I
-0x004a U004a # J
-0x004b U004b # K
-0x004c U004c # L
-0x004d U004d # M
-0x004e U004e # N
-0x004f U004f # O
-0x0050 U0050 # P
-0x0051 U0051 # Q
-0x0052 U0052 # R
-0x0053 U0053 # S
-0x0054 U0054 # T
-0x0055 U0055 # U
-0x0056 U0056 # V
-0x0057 U0057 # W
-0x0058 U0058 # X
-0x0059 U0059 # Y
-0x005a U005a # Z
-0x005b U005b # bracketleft
-0x005c U005c # backslash
-0x005d U005d # bracketright
-0x005e U005e # asciicircum
-0x005f U005f # underscore
-0x0060 U0060 # grave
-0x0060 U0060 # quoteleft /* deprecated */
-0x0061 U0061 # a
-0x0062 U0062 # b
-0x0063 U0063 # c
-0x0064 U0064 # d
-0x0065 U0065 # e
-0x0066 U0066 # f
-0x0067 U0067 # g
-0x0068 U0068 # h
-0x0069 U0069 # i
-0x006a U006a # j
-0x006b U006b # k
-0x006c U006c # l
-0x006d U006d # m
-0x006e U006e # n
-0x006f U006f # o
-0x0070 U0070 # p
-0x0071 U0071 # q
-0x0072 U0072 # r
-0x0073 U0073 # s
-0x0074 U0074 # t
-0x0075 U0075 # u
-0x0076 U0076 # v
-0x0077 U0077 # w
-0x0078 U0078 # x
-0x0079 U0079 # y
-0x007a U007a # z
-0x007b U007b # braceleft
-0x007c U007c # bar
-0x007d U007d # braceright
-0x007e U007e # asciitilde
-0x00a0 U00a0 # nobreakspace
-0x00a1 U00a1 # exclamdown
-0x00a2 U00a2 # cent
-0x00a3 U00a3 # sterling
-0x00a4 U00a4 # currency
-0x00a5 U00a5 # yen
-0x00a6 U00a6 # brokenbar
-0x00a7 U00a7 # section
-0x00a8 U00a8 # diaeresis
-0x00a9 U00a9 # copyright
-0x00aa U00aa # ordfeminine
-0x00ab U00ab # guillemotleft /* left angle quotation mark */
-0x00ac U00ac # notsign
-0x00ad U00ad # hyphen
-0x00ae U00ae # registered
-0x00af U00af # macron
-0x00b0 U00b0 # degree
-0x00b1 U00b1 # plusminus
-0x00b2 U00b2 # twosuperior
-0x00b3 U00b3 # threesuperior
-0x00b4 U00b4 # acute
-0x00b5 U00b5 # mu
-0x00b6 U00b6 # paragraph
-0x00b7 U00b7 # periodcentered
-0x00b8 U00b8 # cedilla
-0x00b9 U00b9 # onesuperior
-0x00ba U00ba # masculine
-0x00bb U00bb # guillemotright /* right angle quotation mark */
-0x00bc U00bc # onequarter
-0x00bd U00bd # onehalf
-0x00be U00be # threequarters
-0x00bf U00bf # questiondown
-0x00c0 U00c0 # Agrave
-0x00c1 U00c1 # Aacute
-0x00c2 U00c2 # Acircumflex
-0x00c3 U00c3 # Atilde
-0x00c4 U00c4 # Adiaeresis
-0x00c5 U00c5 # Aring
-0x00c6 U00c6 # AE
-0x00c7 U00c7 # Ccedilla
-0x00c8 U00c8 # Egrave
-0x00c9 U00c9 # Eacute
-0x00ca U00ca # Ecircumflex
-0x00cb U00cb # Ediaeresis
-0x00cc U00cc # Igrave
-0x00cd U00cd # Iacute
-0x00ce U00ce # Icircumflex
-0x00cf U00cf # Idiaeresis
-0x00d0 U00d0 # ETH
-0x00d0 U00d0 # Eth /* deprecated */
-0x00d1 U00d1 # Ntilde
-0x00d2 U00d2 # Ograve
-0x00d3 U00d3 # Oacute
-0x00d4 U00d4 # Ocircumflex
-0x00d5 U00d5 # Otilde
-0x00d6 U00d6 # Odiaeresis
-0x00d7 U00d7 # multiply
-0x00d8 U00d8 # Ooblique
-0x00d9 U00d9 # Ugrave
-0x00da U00da # Uacute
-0x00db U00db # Ucircumflex
-0x00dc U00dc # Udiaeresis
-0x00dd U00dd # Yacute
-0x00de U00de # THORN
-0x00de U00de # Thorn /* deprecated */
-0x00df U00df # ssharp
-0x00e0 U00e0 # agrave
-0x00e1 U00e1 # aacute
-0x00e2 U00e2 # acircumflex
-0x00e3 U00e3 # atilde
-0x00e4 U00e4 # adiaeresis
-0x00e5 U00e5 # aring
-0x00e6 U00e6 # ae
-0x00e7 U00e7 # ccedilla
-0x00e8 U00e8 # egrave
-0x00e9 U00e9 # eacute
-0x00ea U00ea # ecircumflex
-0x00eb U00eb # ediaeresis
-0x00ec U00ec # igrave
-0x00ed U00ed # iacute
-0x00ee U00ee # icircumflex
-0x00ef U00ef # idiaeresis
-0x00f0 U00f0 # eth
-0x00f1 U00f1 # ntilde
-0x00f2 U00f2 # ograve
-0x00f3 U00f3 # oacute
-0x00f4 U00f4 # ocircumflex
-0x00f5 U00f5 # otilde
-0x00f6 U00f6 # odiaeresis
-0x00f7 U00f7 # division
-0x00f8 U00f8 # oslash
-0x00f9 U00f9 # ugrave
-0x00fa U00fa # uacute
-0x00fb U00fb # ucircumflex
-0x00fc U00fc # udiaeresis
-0x00fd U00fd # yacute
-0x00fe U00fe # thorn
-0x00ff U00ff # ydiaeresis
-0x01a1 U0104 # Aogonek
-0x01a2 U02d8 # breve
-0x01a3 U0141 # Lstroke
-0x01a5 U013d # Lcaron
-0x01a6 U015a # Sacute
-0x01a9 U0160 # Scaron
-0x01aa U015e # Scedilla
-0x01ab U0164 # Tcaron
-0x01ac U0179 # Zacute
-0x01ae U017d # Zcaron
-0x01af U017b # Zabovedot
-0x01b1 U0105 # aogonek
-0x01b2 U02db # ogonek
-0x01b3 U0142 # lstroke
-0x01b5 U013e # lcaron
-0x01b6 U015b # sacute
-0x01b7 U02c7 # caron
-0x01b9 U0161 # scaron
-0x01ba U015f # scedilla
-0x01bb U0165 # tcaron
-0x01bc U017a # zacute
-0x01bd U02dd # doubleacute
-0x01be U017e # zcaron
-0x01bf U017c # zabovedot
-0x01c0 U0154 # Racute
-0x01c3 U0102 # Abreve
-0x01c5 U0139 # Lacute
-0x01c6 U0106 # Cacute
-0x01c8 U010c # Ccaron
-0x01ca U0118 # Eogonek
-0x01cc U011a # Ecaron
-0x01cf U010e # Dcaron
-0x01d0 U0110 # Dstroke
-0x01d1 U0143 # Nacute
-0x01d2 U0147 # Ncaron
-0x01d5 U0150 # Odoubleacute
-0x01d8 U0158 # Rcaron
-0x01d9 U016e # Uring
-0x01db U0170 # Udoubleacute
-0x01de U0162 # Tcedilla
-0x01e0 U0155 # racute
-0x01e3 U0103 # abreve
-0x01e5 U013a # lacute
-0x01e6 U0107 # cacute
-0x01e8 U010d # ccaron
-0x01ea U0119 # eogonek
-0x01ec U011b # ecaron
-0x01ef U010f # dcaron
-0x01f0 U0111 # dstroke
-0x01f1 U0144 # nacute
-0x01f2 U0148 # ncaron
-0x01f5 U0151 # odoubleacute
-0x01f8 U0159 # rcaron
-0x01f9 U016f # uring
-0x01fb U0171 # udoubleacute
-0x01fe U0163 # tcedilla
-0x01ff U02d9 # abovedot
-0x02a1 U0126 # Hstroke
-0x02a6 U0124 # Hcircumflex
-0x02a9 U0130 # Iabovedot
-0x02ab U011e # Gbreve
-0x02ac U0134 # Jcircumflex
-0x02b1 U0127 # hstroke
-0x02b6 U0125 # hcircumflex
-0x02b9 U0131 # idotless
-0x02bb U011f # gbreve
-0x02bc U0135 # jcircumflex
-0x02c5 U010a # Cabovedot
-0x02c6 U0108 # Ccircumflex
-0x02d5 U0120 # Gabovedot
-0x02d8 U011c # Gcircumflex
-0x02dd U016c # Ubreve
-0x02de U015c # Scircumflex
-0x02e5 U010b # cabovedot
-0x02e6 U0109 # ccircumflex
-0x02f5 U0121 # gabovedot
-0x02f8 U011d # gcircumflex
-0x02fd U016d # ubreve
-0x02fe U015d # scircumflex
-0x03a2 U0138 # kra
-0x03a3 U0156 # Rcedilla
-0x03a5 U0128 # Itilde
-0x03a6 U013b # Lcedilla
-0x03aa U0112 # Emacron
-0x03ab U0122 # Gcedilla
-0x03ac U0166 # Tslash
-0x03b3 U0157 # rcedilla
-0x03b5 U0129 # itilde
-0x03b6 U013c # lcedilla
-0x03ba U0113 # emacron
-0x03bb U0123 # gcedilla
-0x03bc U0167 # tslash
-0x03bd U014a # ENG
-0x03bf U014b # eng
-0x03c0 U0100 # Amacron
-0x03c7 U012e # Iogonek
-0x03cc U0116 # Eabovedot
-0x03cf U012a # Imacron
-0x03d1 U0145 # Ncedilla
-0x03d2 U014c # Omacron
-0x03d3 U0136 # Kcedilla
-0x03d9 U0172 # Uogonek
-0x03dd U0168 # Utilde
-0x03de U016a # Umacron
-0x03e0 U0101 # amacron
-0x03e7 U012f # iogonek
-0x03ec U0117 # eabovedot
-0x03ef U012b # imacron
-0x03f1 U0146 # ncedilla
-0x03f2 U014d # omacron
-0x03f3 U0137 # kcedilla
-0x03f9 U0173 # uogonek
-0x03fd U0169 # utilde
-0x03fe U016b # umacron
-0x13bc U0152 # OE
-0x13bd U0153 # oe
-0x13be U0178 # Ydiaeresis
-0x047e U203e # overline
-0x04a1 U3002 # kana_fullstop
-0x04a2 U300c # kana_openingbracket
-0x04a3 U300d # kana_closingbracket
-0x04a4 U3001 # kana_comma
-0x04a5 U30fb # kana_conjunctive
-0x04a6 U30f2 # kana_WO
-0x04a7 U30a1 # kana_a
-0x04a8 U30a3 # kana_i
-0x04a9 U30a5 # kana_u
-0x04aa U30a7 # kana_e
-0x04ab U30a9 # kana_o
-0x04ac U30e3 # kana_ya
-0x04ad U30e5 # kana_yu
-0x04ae U30e7 # kana_yo
-0x04af U30c3 # kana_tsu
-0x04b0 U30fc # prolongedsound
-0x04b1 U30a2 # kana_A
-0x04b2 U30a4 # kana_I
-0x04b3 U30a6 # kana_U
-0x04b4 U30a8 # kana_E
-0x04b5 U30aa # kana_O
-0x04b6 U30ab # kana_KA
-0x04b7 U30ad # kana_KI
-0x04b8 U30af # kana_KU
-0x04b9 U30b1 # kana_KE
-0x04ba U30b3 # kana_KO
-0x04bb U30b5 # kana_SA
-0x04bc U30b7 # kana_SHI
-0x04bd U30b9 # kana_SU
-0x04be U30bb # kana_SE
-0x04bf U30bd # kana_SO
-0x04c0 U30bf # kana_TA
-0x04c1 U30c1 # kana_CHI
-0x04c2 U30c4 # kana_TSU
-0x04c3 U30c6 # kana_TE
-0x04c4 U30c8 # kana_TO
-0x04c5 U30ca # kana_NA
-0x04c6 U30cb # kana_NI
-0x04c7 U30cc # kana_NU
-0x04c8 U30cd # kana_NE
-0x04c9 U30ce # kana_NO
-0x04ca U30cf # kana_HA
-0x04cb U30d2 # kana_HI
-0x04cc U30d5 # kana_FU
-0x04cd U30d8 # kana_HE
-0x04ce U30db # kana_HO
-0x04cf U30de # kana_MA
-0x04d0 U30df # kana_MI
-0x04d1 U30e0 # kana_MU
-0x04d2 U30e1 # kana_ME
-0x04d3 U30e2 # kana_MO
-0x04d4 U30e4 # kana_YA
-0x04d5 U30e6 # kana_YU
-0x04d6 U30e8 # kana_YO
-0x04d7 U30e9 # kana_RA
-0x04d8 U30ea # kana_RI
-0x04d9 U30eb # kana_RU
-0x04da U30ec # kana_RE
-0x04db U30ed # kana_RO
-0x04dc U30ef # kana_WA
-0x04dd U30f3 # kana_N
-0x04de U309b # voicedsound
-0x04df U309c # semivoicedsound
-0x05ac U060c # Arabic_comma
-0x05bb U061b # Arabic_semicolon
-0x05bf U061f # Arabic_question_mark
-0x05c1 U0621 # Arabic_hamza
-0x05c2 U0622 # Arabic_maddaonalef
-0x05c3 U0623 # Arabic_hamzaonalef
-0x05c4 U0624 # Arabic_hamzaonwaw
-0x05c5 U0625 # Arabic_hamzaunderalef
-0x05c6 U0626 # Arabic_hamzaonyeh
-0x05c7 U0627 # Arabic_alef
-0x05c8 U0628 # Arabic_beh
-0x05c9 U0629 # Arabic_tehmarbuta
-0x05ca U062a # Arabic_teh
-0x05cb U062b # Arabic_theh
-0x05cc U062c # Arabic_jeem
-0x05cd U062d # Arabic_hah
-0x05ce U062e # Arabic_khah
-0x05cf U062f # Arabic_dal
-0x05d0 U0630 # Arabic_thal
-0x05d1 U0631 # Arabic_ra
-0x05d2 U0632 # Arabic_zain
-0x05d3 U0633 # Arabic_seen
-0x05d4 U0634 # Arabic_sheen
-0x05d5 U0635 # Arabic_sad
-0x05d6 U0636 # Arabic_dad
-0x05d7 U0637 # Arabic_tah
-0x05d8 U0638 # Arabic_zah
-0x05d9 U0639 # Arabic_ain
-0x05da U063a # Arabic_ghain
-0x05e0 U0640 # Arabic_tatweel
-0x05e1 U0641 # Arabic_feh
-0x05e2 U0642 # Arabic_qaf
-0x05e3 U0643 # Arabic_kaf
-0x05e4 U0644 # Arabic_lam
-0x05e5 U0645 # Arabic_meem
-0x05e6 U0646 # Arabic_noon
-0x05e7 U0647 # Arabic_ha
-0x05e8 U0648 # Arabic_waw
-0x05e9 U0649 # Arabic_alefmaksura
-0x05ea U064a # Arabic_yeh
-0x05eb U064b # Arabic_fathatan
-0x05ec U064c # Arabic_dammatan
-0x05ed U064d # Arabic_kasratan
-0x05ee U064e # Arabic_fatha
-0x05ef U064f # Arabic_damma
-0x05f0 U0650 # Arabic_kasra
-0x05f1 U0651 # Arabic_shadda
-0x05f2 U0652 # Arabic_sukun
-0x06a1 U0452 # Serbian_dje
-0x06a2 U0453 # Macedonia_gje
-0x06a3 U0451 # Cyrillic_io
-0x06a4 U0454 # Ukrainian_ie
-0x06a5 U0455 # Macedonia_dse
-0x06a6 U0456 # Ukrainian_i
-0x06a7 U0457 # Ukrainian_yi
-0x06a8 U0458 # Cyrillic_je
-0x06a9 U0459 # Cyrillic_lje
-0x06aa U045a # Cyrillic_nje
-0x06ab U045b # Serbian_tshe
-0x06ac U045c # Macedonia_kje
-0x06ae U045e # Byelorussian_shortu
-0x06af U045f # Cyrillic_dzhe
-0x06b0 U2116 # numerosign
-0x06b1 U0402 # Serbian_DJE
-0x06b2 U0403 # Macedonia_GJE
-0x06b3 U0401 # Cyrillic_IO
-0x06b4 U0404 # Ukrainian_IE
-0x06b5 U0405 # Macedonia_DSE
-0x06b6 U0406 # Ukrainian_I
-0x06b7 U0407 # Ukrainian_YI
-0x06b8 U0408 # Cyrillic_JE
-0x06b9 U0409 # Cyrillic_LJE
-0x06ba U040a # Cyrillic_NJE
-0x06bb U040b # Serbian_TSHE
-0x06bc U040c # Macedonia_KJE
-0x06be U040e # Byelorussian_SHORTU
-0x06bf U040f # Cyrillic_DZHE
-0x06c0 U044e # Cyrillic_yu
-0x06c1 U0430 # Cyrillic_a
-0x06c2 U0431 # Cyrillic_be
-0x06c3 U0446 # Cyrillic_tse
-0x06c4 U0434 # Cyrillic_de
-0x06c5 U0435 # Cyrillic_ie
-0x06c6 U0444 # Cyrillic_ef
-0x06c7 U0433 # Cyrillic_ghe
-0x06c8 U0445 # Cyrillic_ha
-0x06c9 U0438 # Cyrillic_i
-0x06ca U0439 # Cyrillic_shorti
-0x06cb U043a # Cyrillic_ka
-0x06cc U043b # Cyrillic_el
-0x06cd U043c # Cyrillic_em
-0x06ce U043d # Cyrillic_en
-0x06cf U043e # Cyrillic_o
-0x06d0 U043f # Cyrillic_pe
-0x06d1 U044f # Cyrillic_ya
-0x06d2 U0440 # Cyrillic_er
-0x06d3 U0441 # Cyrillic_es
-0x06d4 U0442 # Cyrillic_te
-0x06d5 U0443 # Cyrillic_u
-0x06d6 U0436 # Cyrillic_zhe
-0x06d7 U0432 # Cyrillic_ve
-0x06d8 U044c # Cyrillic_softsign
-0x06d9 U044b # Cyrillic_yeru
-0x06da U0437 # Cyrillic_ze
-0x06db U0448 # Cyrillic_sha
-0x06dc U044d # Cyrillic_e
-0x06dd U0449 # Cyrillic_shcha
-0x06de U0447 # Cyrillic_che
-0x06df U044a # Cyrillic_hardsign
-0x06e0 U042e # Cyrillic_YU
-0x06e1 U0410 # Cyrillic_A
-0x06e2 U0411 # Cyrillic_BE
-0x06e3 U0426 # Cyrillic_TSE
-0x06e4 U0414 # Cyrillic_DE
-0x06e5 U0415 # Cyrillic_IE
-0x06e6 U0424 # Cyrillic_EF
-0x06e7 U0413 # Cyrillic_GHE
-0x06e8 U0425 # Cyrillic_HA
-0x06e9 U0418 # Cyrillic_I
-0x06ea U0419 # Cyrillic_SHORTI
-0x06eb U041a # Cyrillic_KA
-0x06ec U041b # Cyrillic_EL
-0x06ed U041c # Cyrillic_EM
-0x06ee U041d # Cyrillic_EN
-0x06ef U041e # Cyrillic_O
-0x06f0 U041f # Cyrillic_PE
-0x06f1 U042f # Cyrillic_YA
-0x06f2 U0420 # Cyrillic_ER
-0x06f3 U0421 # Cyrillic_ES
-0x06f4 U0422 # Cyrillic_TE
-0x06f5 U0423 # Cyrillic_U
-0x06f6 U0416 # Cyrillic_ZHE
-0x06f7 U0412 # Cyrillic_VE
-0x06f8 U042c # Cyrillic_SOFTSIGN
-0x06f9 U042b # Cyrillic_YERU
-0x06fa U0417 # Cyrillic_ZE
-0x06fb U0428 # Cyrillic_SHA
-0x06fc U042d # Cyrillic_E
-0x06fd U0429 # Cyrillic_SHCHA
-0x06fe U0427 # Cyrillic_CHE
-0x06ff U042a # Cyrillic_HARDSIGN
-0x07a1 U0386 # Greek_ALPHAaccent
-0x07a2 U0388 # Greek_EPSILONaccent
-0x07a3 U0389 # Greek_ETAaccent
-0x07a4 U038a # Greek_IOTAaccent
-0x07a5 U03aa # Greek_IOTAdiaeresis
-0x07a7 U038c # Greek_OMICRONaccent
-0x07a8 U038e # Greek_UPSILONaccent
-0x07a9 U03ab # Greek_UPSILONdieresis
-0x07ab U038f # Greek_OMEGAaccent
-0x07ae U0385 # Greek_accentdieresis
-0x07af U2015 # Greek_horizbar
-0x07b1 U03ac # Greek_alphaaccent
-0x07b2 U03ad # Greek_epsilonaccent
-0x07b3 U03ae # Greek_etaaccent
-0x07b4 U03af # Greek_iotaaccent
-0x07b5 U03ca # Greek_iotadieresis
-0x07b6 U0390 # Greek_iotaaccentdieresis
-0x07b7 U03cc # Greek_omicronaccent
-0x07b8 U03cd # Greek_upsilonaccent
-0x07b9 U03cb # Greek_upsilondieresis
-0x07ba U03b0 # Greek_upsilonaccentdieresis
-0x07bb U03ce # Greek_omegaaccent
-0x07c1 U0391 # Greek_ALPHA
-0x07c2 U0392 # Greek_BETA
-0x07c3 U0393 # Greek_GAMMA
-0x07c4 U0394 # Greek_DELTA
-0x07c5 U0395 # Greek_EPSILON
-0x07c6 U0396 # Greek_ZETA
-0x07c7 U0397 # Greek_ETA
-0x07c8 U0398 # Greek_THETA
-0x07c9 U0399 # Greek_IOTA
-0x07ca U039a # Greek_KAPPA
-0x07cb U039b # Greek_LAMBDA
-0x07cb U039b # Greek_LAMDA
-0x07cc U039c # Greek_MU
-0x07cd U039d # Greek_NU
-0x07ce U039e # Greek_XI
-0x07cf U039f # Greek_OMICRON
-0x07d0 U03a0 # Greek_PI
-0x07d1 U03a1 # Greek_RHO
-0x07d2 U03a3 # Greek_SIGMA
-0x07d4 U03a4 # Greek_TAU
-0x07d5 U03a5 # Greek_UPSILON
-0x07d6 U03a6 # Greek_PHI
-0x07d7 U03a7 # Greek_CHI
-0x07d8 U03a8 # Greek_PSI
-0x07d9 U03a9 # Greek_OMEGA
-0x07e1 U03b1 # Greek_alpha
-0x07e2 U03b2 # Greek_beta
-0x07e3 U03b3 # Greek_gamma
-0x07e4 U03b4 # Greek_delta
-0x07e5 U03b5 # Greek_epsilon
-0x07e6 U03b6 # Greek_zeta
-0x07e7 U03b7 # Greek_eta
-0x07e8 U03b8 # Greek_theta
-0x07e9 U03b9 # Greek_iota
-0x07ea U03ba # Greek_kappa
-0x07eb U03bb # Greek_lambda
-0x07ec U03bc # Greek_mu
-0x07ed U03bd # Greek_nu
-0x07ee U03be # Greek_xi
-0x07ef U03bf # Greek_omicron
-0x07f0 U03c0 # Greek_pi
-0x07f1 U03c1 # Greek_rho
-0x07f2 U03c3 # Greek_sigma
-0x07f3 U03c2 # Greek_finalsmallsigma
-0x07f4 U03c4 # Greek_tau
-0x07f5 U03c5 # Greek_upsilon
-0x07f6 U03c6 # Greek_phi
-0x07f7 U03c7 # Greek_chi
-0x07f8 U03c8 # Greek_psi
-0x07f9 U03c9 # Greek_omega
-0x08a1 U0000 # leftradical
-0x08a2 U0000 # topleftradical
-0x08a3 U0000 # horizconnector
-0x08a4 U2320 # topintegral
-0x08a5 U2321 # botintegral
-0x08a6 U2502 # vertconnector
-0x08a7 U0000 # topleftsqbracket
-0x08a8 U0000 # botleftsqbracket
-0x08a9 U0000 # toprightsqbracket
-0x08aa U0000 # botrightsqbracket
-0x08ab U0000 # topleftparens
-0x08ac U0000 # botleftparens
-0x08ad U0000 # toprightparens
-0x08ae U0000 # botrightparens
-0x08af U0000 # leftmiddlecurlybrace
-0x08b0 U0000 # rightmiddlecurlybrace
-0x08b1 U0000 # topleftsummation
-0x08b2 U0000 # botleftsummation
-0x08b3 U0000 # topvertsummationconnector
-0x08b4 U0000 # botvertsummationconnector
-0x08b5 U0000 # toprightsummation
-0x08b6 U0000 # botrightsummation
-0x08b7 U0000 # rightmiddlesummation
-0x08bc U2264 # lessthanequal
-0x08bd U2260 # notequal
-0x08be U2265 # greaterthanequal
-0x08bf U222b # integral
-0x08c0 U2234 # therefore
-0x08c1 U221d # variation
-0x08c2 U221e # infinity
-0x08c5 U2207 # nabla
-0x08c8 U2245 # approximate
-0x08c9 U0000 # similarequal
-0x08cd U21d4 # ifonlyif
-0x08ce U21d2 # implies
-0x08cf U2261 # identical
-0x08d6 U221a # radical
-0x08da U2282 # includedin
-0x08db U2283 # includes
-0x08dc U2229 # intersection
-0x08dd U222a # union
-0x08de U2227 # logicaland
-0x08df U2228 # logicalor
-0x08ef U2202 # partialderivative
-0x08f6 U0192 # function
-0x08fb U2190 # leftarrow
-0x08fc U2191 # uparrow
-0x08fd U2192 # rightarrow
-0x08fe U2193 # downarrow
-0x09df U2422 # blank
-0x09e0 U25c6 # soliddiamond
-0x09e1 U2592 # checkerboard
-0x09e2 U2409 # ht
-0x09e3 U240c # ff
-0x09e4 U240d # cr
-0x09e5 U240a # lf
-0x09e8 U2424 # nl
-0x09e9 U240b # vt
-0x09ea U2518 # lowrightcorner
-0x09eb U2510 # uprightcorner
-0x09ec U250c # upleftcorner
-0x09ed U2514 # lowleftcorner
-0x09ee U253c # crossinglines
-0x09ef U0000 # horizlinescan1
-0x09f0 U0000 # horizlinescan3
-0x09f1 U2500 # horizlinescan5
-0x09f2 U0000 # horizlinescan7
-0x09f3 U0000 # horizlinescan9
-0x09f4 U251c # leftt
-0x09f5 U2524 # rightt
-0x09f6 U2534 # bott
-0x09f7 U252c # topt
-0x09f8 U2502 # vertbar
-0xfe50 U0300 # dead_grave
-0xfe51 U0301 # dead_acute
-0xfe52 U0302 # dead_circumflex
-0xfe53 U0303 # dead_tilde
-0xfe54 U0304 # dead_macron
-0xfe55 U0306 # dead_breve
-0xfe56 U0307 # dead_abovedot
-0xfe57 U0308 # dead_diaeresis
-0xfe58 U030a # dead_abovering
-0xfe59 U030b # dead_doubleacute
-0xfe5a U030c # dead_caron
-0xfe5b U0327 # dead_cedilla
-0xfe5c U0328 # dead_ogonek
-0xfe5d U0345 # dead_iota
-0xfe5e U3099 # dead_voiced_sound
-0xfe5f U309a # dead_semivoiced_sound
-0xff08 U0008 # BackSpace /* back space, back char */
-0xff09 U0009 # Tab
-0xff0a U000a # Linefeed /* Linefeed, LF */
-0xff0b U000b # Clear
-0xff0d U000d # Return /* Return, enter */
-0xff13 U0013 # Pause /* Pause, hold */
-0xff14 U0014 # Scroll_Lock
-0xff15 U0015 # Sys_Req
-0xff1b U001b # Escape
-0xff80 U0032 # KP_Space /* space */
-0xff89 U0009 # KP_Tab
-0xff8d U000d # KP_Enter /* enter */
-0xffaa U002a # KP_Multiply
-0xffab U002b # KP_Add
-0xffac U002c # KP_Separator /* separator, often comma */
-0xffad U002d # KP_Subtract
-0xffae U002e # KP_Decimal
-0xffaf U002f # KP_Divide
-0xffb0 U0030 # KP_0
-0xffb1 U0031 # KP_1
-0xffb2 U0032 # KP_2
-0xffb3 U0033 # KP_3
-0xffb4 U0034 # KP_4
-0xffb5 U0035 # KP_5
-0xffb6 U0036 # KP_6
-0xffb7 U0037 # KP_7
-0xffb8 U0038 # KP_8
-0xffb9 U0039 # KP_9
-0xffbd U003d # KP_Equal /* equals */
-0x0aa1 U2003 # emspace
-0x0aa2 U2002 # enspace
-0x0aa3 U2004 # em3space
-0x0aa4 U2005 # em4space
-0x0aa5 U2007 # digitspace
-0x0aa6 U2008 # punctspace
-0x0aa7 U2009 # thinspace
-0x0aa8 U200a # hairspace
-0x0aa9 U2014 # emdash
-0x0aaa U2013 # endash
-0x0aac U0000 # signifblank
-0x0aae U2026 # ellipsis
-0x0aaf U0000 # doubbaselinedot
-0x0ab0 U2153 # onethird
-0x0ab1 U2154 # twothirds
-0x0ab2 U2155 # onefifth
-0x0ab3 U2156 # twofifths
-0x0ab4 U2157 # threefifths
-0x0ab5 U2158 # fourfifths
-0x0ab6 U2159 # onesixth
-0x0ab7 U215a # fivesixths
-0x0ab8 U2105 # careof
-0x0abb U2012 # figdash
-0x0abc U2329 # leftanglebracket
-0x0abd U002e # decimalpoint
-0x0abe U232a # rightanglebracket
-0x0abf U0000 # marker
-0x0ac3 U215b # oneeighth
-0x0ac4 U215c # threeeighths
-0x0ac5 U215d # fiveeighths
-0x0ac6 U215e # seveneighths
-0x0ac9 U2122 # trademark
-0x0aca U2613 # signaturemark
-0x0acb U0000 # trademarkincircle
-0x0acc U25c1 # leftopentriangle
-0x0acd U25b7 # rightopentriangle
-0x0ace U25cb # emopencircle
-0x0acf U25a1 # emopenrectangle
-0x0ad0 U2018 # leftsinglequotemark
-0x0ad1 U2019 # rightsinglequotemark
-0x0ad2 U201c # leftdoublequotemark
-0x0ad3 U201d # rightdoublequotemark
-0x0ad4 U211e # prescription
-0x0ad6 U2032 # minutes
-0x0ad7 U2033 # seconds
-0x0ad9 U271d # latincross
-0x0ada U0000 # hexagram
-0x0adb U25ac # filledrectbullet
-0x0adc U25c0 # filledlefttribullet
-0x0add U25b6 # filledrighttribullet
-0x0ade U25cf # emfilledcircle
-0x0adf U25a0 # emfilledrect
-0x0ae0 U25e6 # enopencircbullet
-0x0ae1 U25ab # enopensquarebullet
-0x0ae2 U25ad # openrectbullet
-0x0ae3 U25b3 # opentribulletup
-0x0ae4 U25bd # opentribulletdown
-0x0ae5 U2606 # openstar
-0x0ae6 U2022 # enfilledcircbullet
-0x0ae7 U25aa # enfilledsqbullet
-0x0ae8 U25b2 # filledtribulletup
-0x0ae9 U25bc # filledtribulletdown
-0x0aea U261c # leftpointer
-0x0aeb U261e # rightpointer
-0x0aec U2663 # club
-0x0aed U2666 # diamond
-0x0aee U2665 # heart
-0x0af0 U2720 # maltesecross
-0x0af1 U2020 # dagger
-0x0af2 U2021 # doubledagger
-0x0af3 U2713 # checkmark
-0x0af4 U2717 # ballotcross
-0x0af5 U266f # musicalsharp
-0x0af6 U266d # musicalflat
-0x0af7 U2642 # malesymbol
-0x0af8 U2640 # femalesymbol
-0x0af9 U260e # telephone
-0x0afa U2315 # telephonerecorder
-0x0afb U2117 # phonographcopyright
-0x0afc U2038 # caret
-0x0afd U201a # singlelowquotemark
-0x0afe U201e # doublelowquotemark
-0x0aff U0000 # cursor
-0x0ba3 U003c # leftcaret
-0x0ba6 U003e # rightcaret
-0x0ba8 U2228 # downcaret
-0x0ba9 U2227 # upcaret
-0x0bc0 U00af # overbar
-0x0bc2 U22a4 # downtack
-0x0bc3 U2229 # upshoe
-0x0bc4 U230a # downstile
-0x0bc6 U005f # underbar
-0x0bca U2218 # jot
-0x0bcc U2395 # quad
-0x0bce U22a5 # uptack
-0x0bcf U25cb # circle
-0x0bd3 U2308 # upstile
-0x0bd6 U222a # downshoe
-0x0bd8 U2283 # rightshoe
-0x0bda U2282 # leftshoe
-0x0bdc U22a3 # lefttack
-0x0bfc U22a2 # righttack
-0x0cdf U2017 # hebrew_doublelowline
-0x0ce0 U05d0 # hebrew_aleph
-0x0ce1 U05d1 # hebrew_bet
-0x0ce1 U05d1 # hebrew_beth /* deprecated */
-0x0ce2 U05d2 # hebrew_gimel
-0x0ce2 U05d2 # hebrew_gimmel /* deprecated */
-0x0ce3 U05d3 # hebrew_dalet
-0x0ce3 U05d3 # hebrew_daleth /* deprecated */
-0x0ce4 U05d4 # hebrew_he
-0x0ce5 U05d5 # hebrew_waw
-0x0ce6 U05d6 # hebrew_zain
-0x0ce6 U05d6 # hebrew_zayin /* deprecated */
-0x0ce7 U05d7 # hebrew_chet
-0x0ce7 U05d7 # hebrew_het /* deprecated */
-0x0ce8 U05d8 # hebrew_tet
-0x0ce8 U05d8 # hebrew_teth /* deprecated */
-0x0ce9 U05d9 # hebrew_yod
-0x0cea U05da # hebrew_finalkaph
-0x0ceb U05db # hebrew_kaph
-0x0cec U05dc # hebrew_lamed
-0x0ced U05dd # hebrew_finalmem
-0x0cee U05de # hebrew_mem
-0x0cef U05df # hebrew_finalnun
-0x0cf0 U05e0 # hebrew_nun
-0x0cf1 U05e1 # hebrew_samech
-0x0cf1 U05e1 # hebrew_samekh /* deprecated */
-0x0cf2 U05e2 # hebrew_ayin
-0x0cf3 U05e3 # hebrew_finalpe
-0x0cf4 U05e4 # hebrew_pe
-0x0cf5 U05e5 # hebrew_finalzade
-0x0cf5 U05e5 # hebrew_finalzadi /* deprecated */
-0x0cf6 U05e6 # hebrew_zade
-0x0cf6 U05e6 # hebrew_zadi /* deprecated */
-0x0cf7 U05e7 # hebrew_kuf /* deprecated */
-0x0cf7 U05e7 # hebrew_qoph
-0x0cf8 U05e8 # hebrew_resh
-0x0cf9 U05e9 # hebrew_shin
-0x0cfa U05ea # hebrew_taf /* deprecated */
-0x0cfa U05ea # hebrew_taw
-0x0da1 U0e01 # Thai_kokai
-0x0da2 U0e02 # Thai_khokhai
-0x0da3 U0e03 # Thai_khokhuat
-0x0da4 U0e04 # Thai_khokhwai
-0x0da5 U0e05 # Thai_khokhon
-0x0da6 U0e06 # Thai_khorakhang
-0x0da7 U0e07 # Thai_ngongu
-0x0da8 U0e08 # Thai_chochan
-0x0da9 U0e09 # Thai_choching
-0x0daa U0e0a # Thai_chochang
-0x0dab U0e0b # Thai_soso
-0x0dac U0e0c # Thai_chochoe
-0x0dad U0e0d # Thai_yoying
-0x0dae U0e0e # Thai_dochada
-0x0daf U0e0f # Thai_topatak
-0x0db0 U0e10 # Thai_thothan
-0x0db1 U0e11 # Thai_thonangmontho
-0x0db2 U0e12 # Thai_thophuthao
-0x0db3 U0e13 # Thai_nonen
-0x0db4 U0e14 # Thai_dodek
-0x0db5 U0e15 # Thai_totao
-0x0db6 U0e16 # Thai_thothung
-0x0db7 U0e17 # Thai_thothahan
-0x0db8 U0e18 # Thai_thothong
-0x0db9 U0e19 # Thai_nonu
-0x0dba U0e1a # Thai_bobaimai
-0x0dbb U0e1b # Thai_popla
-0x0dbc U0e1c # Thai_phophung
-0x0dbd U0e1d # Thai_fofa
-0x0dbe U0e1e # Thai_phophan
-0x0dbf U0e1f # Thai_fofan
-0x0dc0 U0e20 # Thai_phosamphao
-0x0dc1 U0e21 # Thai_moma
-0x0dc2 U0e22 # Thai_yoyak
-0x0dc3 U0e23 # Thai_rorua
-0x0dc4 U0e24 # Thai_ru
-0x0dc5 U0e25 # Thai_loling
-0x0dc6 U0e26 # Thai_lu
-0x0dc7 U0e27 # Thai_wowaen
-0x0dc8 U0e28 # Thai_sosala
-0x0dc9 U0e29 # Thai_sorusi
-0x0dca U0e2a # Thai_sosua
-0x0dcb U0e2b # Thai_hohip
-0x0dcc U0e2c # Thai_lochula
-0x0dcd U0e2d # Thai_oang
-0x0dce U0e2e # Thai_honokhuk
-0x0dcf U0e2f # Thai_paiyannoi
-0x0dd0 U0e30 # Thai_saraa
-0x0dd1 U0e31 # Thai_maihanakat
-0x0dd2 U0e32 # Thai_saraaa
-0x0dd3 U0e33 # Thai_saraam
-0x0dd4 U0e34 # Thai_sarai
-0x0dd5 U0e35 # Thai_saraii
-0x0dd6 U0e36 # Thai_saraue
-0x0dd7 U0e37 # Thai_sarauee
-0x0dd8 U0e38 # Thai_sarau
-0x0dd9 U0e39 # Thai_sarauu
-0x0dda U0e3a # Thai_phinthu
-0x0dde U0e3e # Thai_maihanakat_maitho
-0x0ddf U0e3f # Thai_baht
-0x0de0 U0e40 # Thai_sarae
-0x0de1 U0e41 # Thai_saraae
-0x0de2 U0e42 # Thai_sarao
-0x0de3 U0e43 # Thai_saraaimaimuan
-0x0de4 U0e44 # Thai_saraaimaimalai
-0x0de5 U0e45 # Thai_lakkhangyao
-0x0de6 U0e46 # Thai_maiyamok
-0x0de7 U0e47 # Thai_maitaikhu
-0x0de8 U0e48 # Thai_maiek
-0x0de9 U0e49 # Thai_maitho
-0x0dea U0e4a # Thai_maitri
-0x0deb U0e4b # Thai_maichattawa
-0x0dec U0e4c # Thai_thanthakhat
-0x0ded U0e4d # Thai_nikhahit
-0x0df0 U0e50 # Thai_leksun
-0x0df1 U0e51 # Thai_leknung
-0x0df2 U0e52 # Thai_leksong
-0x0df3 U0e53 # Thai_leksam
-0x0df4 U0e54 # Thai_leksi
-0x0df5 U0e55 # Thai_lekha
-0x0df6 U0e56 # Thai_lekhok
-0x0df7 U0e57 # Thai_lekchet
-0x0df8 U0e58 # Thai_lekpaet
-0x0df9 U0e59 # Thai_lekkao
-0x0ea1 U3131 # Hangul_Kiyeog
-0x0ea2 U3132 # Hangul_SsangKiyeog
-0x0ea3 U3133 # Hangul_KiyeogSios
-0x0ea4 U3134 # Hangul_Nieun
-0x0ea5 U3135 # Hangul_NieunJieuj
-0x0ea6 U3136 # Hangul_NieunHieuh
-0x0ea7 U3137 # Hangul_Dikeud
-0x0ea8 U3138 # Hangul_SsangDikeud
-0x0ea9 U3139 # Hangul_Rieul
-0x0eaa U313a # Hangul_RieulKiyeog
-0x0eab U313b # Hangul_RieulMieum
-0x0eac U313c # Hangul_RieulPieub
-0x0ead U313d # Hangul_RieulSios
-0x0eae U313e # Hangul_RieulTieut
-0x0eaf U313f # Hangul_RieulPhieuf
-0x0eb0 U3140 # Hangul_RieulHieuh
-0x0eb1 U3141 # Hangul_Mieum
-0x0eb2 U3142 # Hangul_Pieub
-0x0eb3 U3143 # Hangul_SsangPieub
-0x0eb4 U3144 # Hangul_PieubSios
-0x0eb5 U3145 # Hangul_Sios
-0x0eb6 U3146 # Hangul_SsangSios
-0x0eb7 U3147 # Hangul_Ieung
-0x0eb8 U3148 # Hangul_Jieuj
-0x0eb9 U3149 # Hangul_SsangJieuj
-0x0eba U314a # Hangul_Cieuc
-0x0ebb U314b # Hangul_Khieuq
-0x0ebc U314c # Hangul_Tieut
-0x0ebd U314d # Hangul_Phieuf
-0x0ebe U314e # Hangul_Hieuh
-0x0ebf U314f # Hangul_A
-0x0ec0 U3150 # Hangul_AE
-0x0ec1 U3151 # Hangul_YA
-0x0ec2 U3152 # Hangul_YAE
-0x0ec3 U3153 # Hangul_EO
-0x0ec4 U3154 # Hangul_E
-0x0ec5 U3155 # Hangul_YEO
-0x0ec6 U3156 # Hangul_YE
-0x0ec7 U3157 # Hangul_O
-0x0ec8 U3158 # Hangul_WA
-0x0ec9 U3159 # Hangul_WAE
-0x0eca U315a # Hangul_OE
-0x0ecb U315b # Hangul_YO
-0x0ecc U315c # Hangul_U
-0x0ecd U315d # Hangul_WEO
-0x0ece U315e # Hangul_WE
-0x0ecf U315f # Hangul_WI
-0x0ed0 U3160 # Hangul_YU
-0x0ed1 U3161 # Hangul_EU
-0x0ed2 U3162 # Hangul_YI
-0x0ed3 U3163 # Hangul_I
-0x0ed4 U11a8 # Hangul_J_Kiyeog
-0x0ed5 U11a9 # Hangul_J_SsangKiyeog
-0x0ed6 U11aa # Hangul_J_KiyeogSios
-0x0ed7 U11ab # Hangul_J_Nieun
-0x0ed8 U11ac # Hangul_J_NieunJieuj
-0x0ed9 U11ad # Hangul_J_NieunHieuh
-0x0eda U11ae # Hangul_J_Dikeud
-0x0edb U11af # Hangul_J_Rieul
-0x0edc U11b0 # Hangul_J_RieulKiyeog
-0x0edd U11b1 # Hangul_J_RieulMieum
-0x0ede U11b2 # Hangul_J_RieulPieub
-0x0edf U11b3 # Hangul_J_RieulSios
-0x0ee0 U11b4 # Hangul_J_RieulTieut
-0x0ee1 U11b5 # Hangul_J_RieulPhieuf
-0x0ee2 U11b6 # Hangul_J_RieulHieuh
-0x0ee3 U11b7 # Hangul_J_Mieum
-0x0ee4 U11b8 # Hangul_J_Pieub
-0x0ee5 U11b9 # Hangul_J_PieubSios
-0x0ee6 U11ba # Hangul_J_Sios
-0x0ee7 U11bb # Hangul_J_SsangSios
-0x0ee8 U11bc # Hangul_J_Ieung
-0x0ee9 U11bd # Hangul_J_Jieuj
-0x0eea U11be # Hangul_J_Cieuc
-0x0eeb U11bf # Hangul_J_Khieuq
-0x0eec U11c0 # Hangul_J_Tieut
-0x0eed U11c1 # Hangul_J_Phieuf
-0x0eee U11c2 # Hangul_J_Hieuh
-0x0eef U316d # Hangul_RieulYeorinHieuh
-0x0ef0 U3171 # Hangul_SunkyeongeumMieum
-0x0ef1 U3178 # Hangul_SunkyeongeumPieub
-0x0ef2 U317f # Hangul_PanSios
-0x0ef3 U0000 # Hangul_KkogjiDalrinIeung
-0x0ef4 U3184 # Hangul_SunkyeongeumPhieuf
-0x0ef5 U3186 # Hangul_YeorinHieuh
-0x0ef6 U318d # Hangul_AraeA
-0x0ef7 U318e # Hangul_AraeAE
-0x0ef8 U11eb # Hangul_J_PanSios
-0x0ef9 U0000 # Hangul_J_KkogjiDalrinIeung
-0x0efa U11f9 # Hangul_J_YeorinHieuh
-0x0eff U20a9 # Korean_Won
-0x20a0 U20a0 # EcuSign
-0x20a1 U20a1 # ColonSign
-0x20a2 U20a2 # CruzeiroSign
-0x20a3 U20a3 # FFrancSign
-0x20a4 U20a4 # LiraSign
-0x20a5 U20a5 # MillSign
-0x20a6 U20a6 # NairaSign
-0x20a7 U20a7 # PesetaSign
-0x20a8 U20a8 # RupeeSign
-0x20a9 U20a9 # WonSign
-0x20aa U20aa # NewSheqelSign
-0x20ab U20ab # DongSign
-0x20ac U20ac # EuroSign
+#
+0x0020 U0020 # space
+0x0021 U0021 # exclam
+0x0022 U0022 # quotedbl
+0x0023 U0023 # numbersign
+0x0024 U0024 # dollar
+0x0025 U0025 # percent
+0x0026 U0026 # ampersand
+0x0027 U0027 # apostrophe
+0x0028 U0028 # parenleft
+0x0029 U0029 # parenright
+0x002a U002a # asterisk
+0x002b U002b # plus
+0x002c U002c # comma
+0x002d U002d # minus
+0x002e U002e # period
+0x002f U002f # slash
+0x0030 U0030 # 0
+0x0031 U0031 # 1
+0x0032 U0032 # 2
+0x0033 U0033 # 3
+0x0034 U0034 # 4
+0x0035 U0035 # 5
+0x0036 U0036 # 6
+0x0037 U0037 # 7
+0x0038 U0038 # 8
+0x0039 U0039 # 9
+0x003a U003a # colon
+0x003b U003b # semicolon
+0x003c U003c # less
+0x003d U003d # equal
+0x003e U003e # greater
+0x003f U003f # question
+0x0040 U0040 # at
+0x0041 U0041 # A
+0x0042 U0042 # B
+0x0043 U0043 # C
+0x0044 U0044 # D
+0x0045 U0045 # E
+0x0046 U0046 # F
+0x0047 U0047 # G
+0x0048 U0048 # H
+0x0049 U0049 # I
+0x004a U004a # J
+0x004b U004b # K
+0x004c U004c # L
+0x004d U004d # M
+0x004e U004e # N
+0x004f U004f # O
+0x0050 U0050 # P
+0x0051 U0051 # Q
+0x0052 U0052 # R
+0x0053 U0053 # S
+0x0054 U0054 # T
+0x0055 U0055 # U
+0x0056 U0056 # V
+0x0057 U0057 # W
+0x0058 U0058 # X
+0x0059 U0059 # Y
+0x005a U005a # Z
+0x005b U005b # bracketleft
+0x005c U005c # backslash
+0x005d U005d # bracketright
+0x005e U005e # asciicircum
+0x005f U005f # underscore
+0x0060 U0060 # grave
+0x0061 U0061 # a
+0x0062 U0062 # b
+0x0063 U0063 # c
+0x0064 U0064 # d
+0x0065 U0065 # e
+0x0066 U0066 # f
+0x0067 U0067 # g
+0x0068 U0068 # h
+0x0069 U0069 # i
+0x006a U006a # j
+0x006b U006b # k
+0x006c U006c # l
+0x006d U006d # m
+0x006e U006e # n
+0x006f U006f # o
+0x0070 U0070 # p
+0x0071 U0071 # q
+0x0072 U0072 # r
+0x0073 U0073 # s
+0x0074 U0074 # t
+0x0075 U0075 # u
+0x0076 U0076 # v
+0x0077 U0077 # w
+0x0078 U0078 # x
+0x0079 U0079 # y
+0x007a U007a # z
+0x007b U007b # braceleft
+0x007c U007c # bar
+0x007d U007d # braceright
+0x007e U007e # asciitilde
+0x00a0 U00a0 # nobreakspace
+0x00a1 U00a1 # exclamdown
+0x00a2 U00a2 # cent
+0x00a3 U00a3 # sterling
+0x00a4 U00a4 # currency
+0x00a5 U00a5 # yen
+0x00a6 U00a6 # brokenbar
+0x00a7 U00a7 # section
+0x00a8 U00a8 # diaeresis
+0x00a9 U00a9 # copyright
+0x00aa U00aa # ordfeminine
+0x00ab U00ab # guillemotleft /* left angle quotation mark */
+0x00ac U00ac # notsign
+0x00ad U00ad # hyphen
+0x00ae U00ae # registered
+0x00af U00af # macron
+0x00b0 U00b0 # degree
+0x00b1 U00b1 # plusminus
+0x00b2 U00b2 # twosuperior
+0x00b3 U00b3 # threesuperior
+0x00b4 U00b4 # acute
+0x00b5 U00b5 # mu
+0x00b6 U00b6 # paragraph
+0x00b7 U00b7 # periodcentered
+0x00b8 U00b8 # cedilla
+0x00b9 U00b9 # onesuperior
+0x00ba U00ba # masculine
+0x00bb U00bb # guillemotright /* right angle quotation mark */
+0x00bc U00bc # onequarter
+0x00bd U00bd # onehalf
+0x00be U00be # threequarters
+0x00bf U00bf # questiondown
+0x00c0 U00c0 # Agrave
+0x00c1 U00c1 # Aacute
+0x00c2 U00c2 # Acircumflex
+0x00c3 U00c3 # Atilde
+0x00c4 U00c4 # Adiaeresis
+0x00c5 U00c5 # Aring
+0x00c6 U00c6 # AE
+0x00c7 U00c7 # Ccedilla
+0x00c8 U00c8 # Egrave
+0x00c9 U00c9 # Eacute
+0x00ca U00ca # Ecircumflex
+0x00cb U00cb # Ediaeresis
+0x00cc U00cc # Igrave
+0x00cd U00cd # Iacute
+0x00ce U00ce # Icircumflex
+0x00cf U00cf # Idiaeresis
+0x00d0 U00d0 # ETH
+0x00d1 U00d1 # Ntilde
+0x00d2 U00d2 # Ograve
+0x00d3 U00d3 # Oacute
+0x00d4 U00d4 # Ocircumflex
+0x00d5 U00d5 # Otilde
+0x00d6 U00d6 # Odiaeresis
+0x00d7 U00d7 # multiply
+0x00d8 U00d8 # Oslash
+0x00d9 U00d9 # Ugrave
+0x00da U00da # Uacute
+0x00db U00db # Ucircumflex
+0x00dc U00dc # Udiaeresis
+0x00dd U00dd # Yacute
+0x00de U00de # THORN
+0x00df U00df # ssharp
+0x00e0 U00e0 # agrave
+0x00e1 U00e1 # aacute
+0x00e2 U00e2 # acircumflex
+0x00e3 U00e3 # atilde
+0x00e4 U00e4 # adiaeresis
+0x00e5 U00e5 # aring
+0x00e6 U00e6 # ae
+0x00e7 U00e7 # ccedilla
+0x00e8 U00e8 # egrave
+0x00e9 U00e9 # eacute
+0x00ea U00ea # ecircumflex
+0x00eb U00eb # ediaeresis
+0x00ec U00ec # igrave
+0x00ed U00ed # iacute
+0x00ee U00ee # icircumflex
+0x00ef U00ef # idiaeresis
+0x00f0 U00f0 # eth
+0x00f1 U00f1 # ntilde
+0x00f2 U00f2 # ograve
+0x00f3 U00f3 # oacute
+0x00f4 U00f4 # ocircumflex
+0x00f5 U00f5 # otilde
+0x00f6 U00f6 # odiaeresis
+0x00f7 U00f7 # division
+0x00f8 U00f8 # oslash
+0x00f9 U00f9 # ugrave
+0x00fa U00fa # uacute
+0x00fb U00fb # ucircumflex
+0x00fc U00fc # udiaeresis
+0x00fd U00fd # yacute
+0x00fe U00fe # thorn
+0x00ff U00ff # ydiaeresis
+0x01a1 U0104 # Aogonek
+0x01a2 U02d8 # breve
+0x01a3 U0141 # Lstroke
+0x01a5 U013d # Lcaron
+0x01a6 U015a # Sacute
+0x01a9 U0160 # Scaron
+0x01aa U015e # Scedilla
+0x01ab U0164 # Tcaron
+0x01ac U0179 # Zacute
+0x01ae U017d # Zcaron
+0x01af U017b # Zabovedot
+0x01b1 U0105 # aogonek
+0x01b2 U02db # ogonek
+0x01b3 U0142 # lstroke
+0x01b5 U013e # lcaron
+0x01b6 U015b # sacute
+0x01b7 U02c7 # caron
+0x01b9 U0161 # scaron
+0x01ba U015f # scedilla
+0x01bb U0165 # tcaron
+0x01bc U017a # zacute
+0x01bd U02dd # doubleacute
+0x01be U017e # zcaron
+0x01bf U017c # zabovedot
+0x01c0 U0154 # Racute
+0x01c3 U0102 # Abreve
+0x01c5 U0139 # Lacute
+0x01c6 U0106 # Cacute
+0x01c8 U010c # Ccaron
+0x01ca U0118 # Eogonek
+0x01cc U011a # Ecaron
+0x01cf U010e # Dcaron
+0x01d0 U0110 # Dstroke
+0x01d1 U0143 # Nacute
+0x01d2 U0147 # Ncaron
+0x01d5 U0150 # Odoubleacute
+0x01d8 U0158 # Rcaron
+0x01d9 U016e # Uring
+0x01db U0170 # Udoubleacute
+0x01de U0162 # Tcedilla
+0x01e0 U0155 # racute
+0x01e3 U0103 # abreve
+0x01e5 U013a # lacute
+0x01e6 U0107 # cacute
+0x01e8 U010d # ccaron
+0x01ea U0119 # eogonek
+0x01ec U011b # ecaron
+0x01ef U010f # dcaron
+0x01f0 U0111 # dstroke
+0x01f1 U0144 # nacute
+0x01f2 U0148 # ncaron
+0x01f5 U0151 # odoubleacute
+0x01f8 U0159 # rcaron
+0x01f9 U016f # uring
+0x01fb U0171 # udoubleacute
+0x01fe U0163 # tcedilla
+0x01ff U02d9 # abovedot
+0x02a1 U0126 # Hstroke
+0x02a6 U0124 # Hcircumflex
+0x02a9 U0130 # Iabovedot
+0x02ab U011e # Gbreve
+0x02ac U0134 # Jcircumflex
+0x02b1 U0127 # hstroke
+0x02b6 U0125 # hcircumflex
+0x02b9 U0131 # idotless
+0x02bb U011f # gbreve
+0x02bc U0135 # jcircumflex
+0x02c5 U010a # Cabovedot
+0x02c6 U0108 # Ccircumflex
+0x02d5 U0120 # Gabovedot
+0x02d8 U011c # Gcircumflex
+0x02dd U016c # Ubreve
+0x02de U015c # Scircumflex
+0x02e5 U010b # cabovedot
+0x02e6 U0109 # ccircumflex
+0x02f5 U0121 # gabovedot
+0x02f8 U011d # gcircumflex
+0x02fd U016d # ubreve
+0x02fe U015d # scircumflex
+0x03a2 U0138 # kra
+0x03a3 U0156 # Rcedilla
+0x03a5 U0128 # Itilde
+0x03a6 U013b # Lcedilla
+0x03aa U0112 # Emacron
+0x03ab U0122 # Gcedilla
+0x03ac U0166 # Tslash
+0x03b3 U0157 # rcedilla
+0x03b5 U0129 # itilde
+0x03b6 U013c # lcedilla
+0x03ba U0113 # emacron
+0x03bb U0123 # gcedilla
+0x03bc U0167 # tslash
+0x03bd U014a # ENG
+0x03bf U014b # eng
+0x03c0 U0100 # Amacron
+0x03c7 U012e # Iogonek
+0x03cc U0116 # Eabovedot
+0x03cf U012a # Imacron
+0x03d1 U0145 # Ncedilla
+0x03d2 U014c # Omacron
+0x03d3 U0136 # Kcedilla
+0x03d9 U0172 # Uogonek
+0x03dd U0168 # Utilde
+0x03de U016a # Umacron
+0x03e0 U0101 # amacron
+0x03e7 U012f # iogonek
+0x03ec U0117 # eabovedot
+0x03ef U012b # imacron
+0x03f1 U0146 # ncedilla
+0x03f2 U014d # omacron
+0x03f3 U0137 # kcedilla
+0x03f9 U0173 # uogonek
+0x03fd U0169 # utilde
+0x03fe U016b # umacron
+0x047e U203e # overline
+0x04a1 U3002 # kana_fullstop
+0x04a2 U300c # kana_openingbracket
+0x04a3 U300d # kana_closingbracket
+0x04a4 U3001 # kana_comma
+0x04a5 U30fb # kana_conjunctive
+0x04a6 U30f2 # kana_WO
+0x04a7 U30a1 # kana_a
+0x04a8 U30a3 # kana_i
+0x04a9 U30a5 # kana_u
+0x04aa U30a7 # kana_e
+0x04ab U30a9 # kana_o
+0x04ac U30e3 # kana_ya
+0x04ad U30e5 # kana_yu
+0x04ae U30e7 # kana_yo
+0x04af U30c3 # kana_tsu
+0x04b0 U30fc # prolongedsound
+0x04b1 U30a2 # kana_A
+0x04b2 U30a4 # kana_I
+0x04b3 U30a6 # kana_U
+0x04b4 U30a8 # kana_E
+0x04b5 U30aa # kana_O
+0x04b6 U30ab # kana_KA
+0x04b7 U30ad # kana_KI
+0x04b8 U30af # kana_KU
+0x04b9 U30b1 # kana_KE
+0x04ba U30b3 # kana_KO
+0x04bb U30b5 # kana_SA
+0x04bc U30b7 # kana_SHI
+0x04bd U30b9 # kana_SU
+0x04be U30bb # kana_SE
+0x04bf U30bd # kana_SO
+0x04c0 U30bf # kana_TA
+0x04c1 U30c1 # kana_CHI
+0x04c2 U30c4 # kana_TSU
+0x04c3 U30c6 # kana_TE
+0x04c4 U30c8 # kana_TO
+0x04c5 U30ca # kana_NA
+0x04c6 U30cb # kana_NI
+0x04c7 U30cc # kana_NU
+0x04c8 U30cd # kana_NE
+0x04c9 U30ce # kana_NO
+0x04ca U30cf # kana_HA
+0x04cb U30d2 # kana_HI
+0x04cc U30d5 # kana_FU
+0x04cd U30d8 # kana_HE
+0x04ce U30db # kana_HO
+0x04cf U30de # kana_MA
+0x04d0 U30df # kana_MI
+0x04d1 U30e0 # kana_MU
+0x04d2 U30e1 # kana_ME
+0x04d3 U30e2 # kana_MO
+0x04d4 U30e4 # kana_YA
+0x04d5 U30e6 # kana_YU
+0x04d6 U30e8 # kana_YO
+0x04d7 U30e9 # kana_RA
+0x04d8 U30ea # kana_RI
+0x04d9 U30eb # kana_RU
+0x04da U30ec # kana_RE
+0x04db U30ed # kana_RO
+0x04dc U30ef # kana_WA
+0x04dd U30f3 # kana_N
+0x04de U309b # voicedsound
+0x04df U309c # semivoicedsound
+0x05ac U060c # Arabic_comma
+0x05bb U061b # Arabic_semicolon
+0x05bf U061f # Arabic_question_mark
+0x05c1 U0621 # Arabic_hamza
+0x05c2 U0622 # Arabic_maddaonalef
+0x05c3 U0623 # Arabic_hamzaonalef
+0x05c4 U0624 # Arabic_hamzaonwaw
+0x05c5 U0625 # Arabic_hamzaunderalef
+0x05c6 U0626 # Arabic_hamzaonyeh
+0x05c7 U0627 # Arabic_alef
+0x05c8 U0628 # Arabic_beh
+0x05c9 U0629 # Arabic_tehmarbuta
+0x05ca U062a # Arabic_teh
+0x05cb U062b # Arabic_theh
+0x05cc U062c # Arabic_jeem
+0x05cd U062d # Arabic_hah
+0x05ce U062e # Arabic_khah
+0x05cf U062f # Arabic_dal
+0x05d0 U0630 # Arabic_thal
+0x05d1 U0631 # Arabic_ra
+0x05d2 U0632 # Arabic_zain
+0x05d3 U0633 # Arabic_seen
+0x05d4 U0634 # Arabic_sheen
+0x05d5 U0635 # Arabic_sad
+0x05d6 U0636 # Arabic_dad
+0x05d7 U0637 # Arabic_tah
+0x05d8 U0638 # Arabic_zah
+0x05d9 U0639 # Arabic_ain
+0x05da U063a # Arabic_ghain
+0x05e0 U0640 # Arabic_tatweel
+0x05e1 U0641 # Arabic_feh
+0x05e2 U0642 # Arabic_qaf
+0x05e3 U0643 # Arabic_kaf
+0x05e4 U0644 # Arabic_lam
+0x05e5 U0645 # Arabic_meem
+0x05e6 U0646 # Arabic_noon
+0x05e7 U0647 # Arabic_ha
+0x05e8 U0648 # Arabic_waw
+0x05e9 U0649 # Arabic_alefmaksura
+0x05ea U064a # Arabic_yeh
+0x05eb U064b # Arabic_fathatan
+0x05ec U064c # Arabic_dammatan
+0x05ed U064d # Arabic_kasratan
+0x05ee U064e # Arabic_fatha
+0x05ef U064f # Arabic_damma
+0x05f0 U0650 # Arabic_kasra
+0x05f1 U0651 # Arabic_shadda
+0x05f2 U0652 # Arabic_sukun
+0x06a1 U0452 # Serbian_dje
+0x06a2 U0453 # Macedonia_gje
+0x06a3 U0451 # Cyrillic_io
+0x06a4 U0454 # Ukrainian_ie
+0x06a5 U0455 # Macedonia_dse
+0x06a6 U0456 # Ukrainian_i
+0x06a7 U0457 # Ukrainian_yi
+0x06a8 U0458 # Cyrillic_je
+0x06a9 U0459 # Cyrillic_lje
+0x06aa U045a # Cyrillic_nje
+0x06ab U045b # Serbian_tshe
+0x06ac U045c # Macedonia_kje
+0x06ad U0491 # Ukrainian_ghe_with_upturn
+0x06ae U045e # Byelorussian_shortu
+0x06af U045f # Cyrillic_dzhe
+0x06b0 U2116 # numerosign
+0x06b1 U0402 # Serbian_DJE
+0x06b2 U0403 # Macedonia_GJE
+0x06b3 U0401 # Cyrillic_IO
+0x06b4 U0404 # Ukrainian_IE
+0x06b5 U0405 # Macedonia_DSE
+0x06b6 U0406 # Ukrainian_I
+0x06b7 U0407 # Ukrainian_YI
+0x06b8 U0408 # Cyrillic_JE
+0x06b9 U0409 # Cyrillic_LJE
+0x06ba U040a # Cyrillic_NJE
+0x06bb U040b # Serbian_TSHE
+0x06bc U040c # Macedonia_KJE
+0x06bd U0490 # Ukrainian_GHE_WITH_UPTURN
+0x06be U040e # Byelorussian_SHORTU
+0x06bf U040f # Cyrillic_DZHE
+0x06c0 U044e # Cyrillic_yu
+0x06c1 U0430 # Cyrillic_a
+0x06c2 U0431 # Cyrillic_be
+0x06c3 U0446 # Cyrillic_tse
+0x06c4 U0434 # Cyrillic_de
+0x06c5 U0435 # Cyrillic_ie
+0x06c6 U0444 # Cyrillic_ef
+0x06c7 U0433 # Cyrillic_ghe
+0x06c8 U0445 # Cyrillic_ha
+0x06c9 U0438 # Cyrillic_i
+0x06ca U0439 # Cyrillic_shorti
+0x06cb U043a # Cyrillic_ka
+0x06cc U043b # Cyrillic_el
+0x06cd U043c # Cyrillic_em
+0x06ce U043d # Cyrillic_en
+0x06cf U043e # Cyrillic_o
+0x06d0 U043f # Cyrillic_pe
+0x06d1 U044f # Cyrillic_ya
+0x06d2 U0440 # Cyrillic_er
+0x06d3 U0441 # Cyrillic_es
+0x06d4 U0442 # Cyrillic_te
+0x06d5 U0443 # Cyrillic_u
+0x06d6 U0436 # Cyrillic_zhe
+0x06d7 U0432 # Cyrillic_ve
+0x06d8 U044c # Cyrillic_softsign
+0x06d9 U044b # Cyrillic_yeru
+0x06da U0437 # Cyrillic_ze
+0x06db U0448 # Cyrillic_sha
+0x06dc U044d # Cyrillic_e
+0x06dd U0449 # Cyrillic_shcha
+0x06de U0447 # Cyrillic_che
+0x06df U044a # Cyrillic_hardsign
+0x06e0 U042e # Cyrillic_YU
+0x06e1 U0410 # Cyrillic_A
+0x06e2 U0411 # Cyrillic_BE
+0x06e3 U0426 # Cyrillic_TSE
+0x06e4 U0414 # Cyrillic_DE
+0x06e5 U0415 # Cyrillic_IE
+0x06e6 U0424 # Cyrillic_EF
+0x06e7 U0413 # Cyrillic_GHE
+0x06e8 U0425 # Cyrillic_HA
+0x06e9 U0418 # Cyrillic_I
+0x06ea U0419 # Cyrillic_SHORTI
+0x06eb U041a # Cyrillic_KA
+0x06ec U041b # Cyrillic_EL
+0x06ed U041c # Cyrillic_EM
+0x06ee U041d # Cyrillic_EN
+0x06ef U041e # Cyrillic_O
+0x06f0 U041f # Cyrillic_PE
+0x06f1 U042f # Cyrillic_YA
+0x06f2 U0420 # Cyrillic_ER
+0x06f3 U0421 # Cyrillic_ES
+0x06f4 U0422 # Cyrillic_TE
+0x06f5 U0423 # Cyrillic_U
+0x06f6 U0416 # Cyrillic_ZHE
+0x06f7 U0412 # Cyrillic_VE
+0x06f8 U042c # Cyrillic_SOFTSIGN
+0x06f9 U042b # Cyrillic_YERU
+0x06fa U0417 # Cyrillic_ZE
+0x06fb U0428 # Cyrillic_SHA
+0x06fc U042d # Cyrillic_E
+0x06fd U0429 # Cyrillic_SHCHA
+0x06fe U0427 # Cyrillic_CHE
+0x06ff U042a # Cyrillic_HARDSIGN
+0x07a1 U0386 # Greek_ALPHAaccent
+0x07a2 U0388 # Greek_EPSILONaccent
+0x07a3 U0389 # Greek_ETAaccent
+0x07a4 U038a # Greek_IOTAaccent
+0x07a5 U03aa # Greek_IOTAdieresis
+0x07a7 U038c # Greek_OMICRONaccent
+0x07a8 U038e # Greek_UPSILONaccent
+0x07a9 U03ab # Greek_UPSILONdieresis
+0x07ab U038f # Greek_OMEGAaccent
+0x07ae U0385 # Greek_accentdieresis
+0x07af U2015 # Greek_horizbar
+0x07b1 U03ac # Greek_alphaaccent
+0x07b2 U03ad # Greek_epsilonaccent
+0x07b3 U03ae # Greek_etaaccent
+0x07b4 U03af # Greek_iotaaccent
+0x07b5 U03ca # Greek_IOTAdieresis
+0x07b6 U0390 # Greek_iotaaccentdieresis
+0x07b7 U03cc # Greek_omicronaccent
+0x07b8 U03cd # Greek_upsilonaccent
+0x07b9 U03cb # Greek_upsilondieresis
+0x07ba U03b0 # Greek_upsilonaccentdieresis
+0x07bb U03ce # Greek_omegaaccent
+0x07c1 U0391 # Greek_ALPHA
+0x07c2 U0392 # Greek_BETA
+0x07c3 U0393 # Greek_GAMMA
+0x07c4 U0394 # Greek_DELTA
+0x07c5 U0395 # Greek_EPSILON
+0x07c6 U0396 # Greek_ZETA
+0x07c7 U0397 # Greek_ETA
+0x07c8 U0398 # Greek_THETA
+0x07c9 U0399 # Greek_IOTA
+0x07ca U039a # Greek_KAPPA
+0x07cb U039b # Greek_LAMBDA
+0x07cb U039b # Greek_LAMDA
+0x07cc U039c # Greek_MU
+0x07cd U039d # Greek_NU
+0x07ce U039e # Greek_XI
+0x07cf U039f # Greek_OMICRON
+0x07d0 U03a0 # Greek_PI
+0x07d1 U03a1 # Greek_RHO
+0x07d2 U03a3 # Greek_SIGMA
+0x07d4 U03a4 # Greek_TAU
+0x07d5 U03a5 # Greek_UPSILON
+0x07d6 U03a6 # Greek_PHI
+0x07d7 U03a7 # Greek_CHI
+0x07d8 U03a8 # Greek_PSI
+0x07d9 U03a9 # Greek_OMEGA
+0x07e1 U03b1 # Greek_alpha
+0x07e2 U03b2 # Greek_beta
+0x07e3 U03b3 # Greek_gamma
+0x07e4 U03b4 # Greek_delta
+0x07e5 U03b5 # Greek_epsilon
+0x07e6 U03b6 # Greek_zeta
+0x07e7 U03b7 # Greek_eta
+0x07e8 U03b8 # Greek_theta
+0x07e9 U03b9 # Greek_iota
+0x07ea U03ba # Greek_kappa
+0x07eb U03bb # Greek_lambda
+0x07ec U03bc # Greek_mu
+0x07ed U03bd # Greek_nu
+0x07ee U03be # Greek_xi
+0x07ef U03bf # Greek_omicron
+0x07f0 U03c0 # Greek_pi
+0x07f1 U03c1 # Greek_rho
+0x07f2 U03c3 # Greek_sigma
+0x07f3 U03c2 # Greek_finalsmallsigma
+0x07f4 U03c4 # Greek_tau
+0x07f5 U03c5 # Greek_upsilon
+0x07f6 U03c6 # Greek_phi
+0x07f7 U03c7 # Greek_chi
+0x07f8 U03c8 # Greek_psi
+0x07f9 U03c9 # Greek_omega
+0x08a1 U23b7 # leftradical
+0x08a2 U250c # topleftradical
+0x08a3 U2500 # horizconnector
+0x08a4 U2320 # topintegral
+0x08a5 U2321 # botintegral
+0x08a6 U2502 # vertconnector
+0x08a7 U23a1 # topleftsqbracket
+0x08a8 U23a3 # botleftsqbracket
+0x08a9 U23a4 # toprightsqbracket
+0x08aa U23a6 # botrightsqbracket
+0x08ab U239b # topleftparens
+0x08ac U239d # botleftparens
+0x08ad U239e # toprightparens
+0x08ae U23a0 # botrightparens
+0x08af U23a8 # leftmiddlecurlybrace
+0x08b0 U23ac # rightmiddlecurlybrace
+0x08b1 U0000 # topleftsummation
+0x08b2 U0000 # botleftsummation
+0x08b3 U0000 # topvertsummationconnector
+0x08b4 U0000 # botvertsummationconnector
+0x08b5 U0000 # toprightsummation
+0x08b6 U0000 # botrightsummation
+0x08b7 U0000 # rightmiddlesummation
+0x08bc U2264 # lessthanequal
+0x08bd U2260 # notequal
+0x08be U2265 # greaterthanequal
+0x08bf U222b # integral
+0x08c0 U2234 # therefore
+0x08c1 U221d # variation
+0x08c2 U221e # infinity
+0x08c5 U2207 # nabla
+0x08c8 U223c # approximate
+0x08c9 U2243 # similarequal
+0x08cd U21d4 # ifonlyif
+0x08ce U21d2 # implies
+0x08cf U2261 # identical
+0x08d6 U221a # radical
+0x08da U2282 # includedin
+0x08db U2283 # includes
+0x08dc U2229 # intersection
+0x08dd U222a # union
+0x08de U2227 # logicaland
+0x08df U2228 # logicalor
+0x08ef U2202 # partialderivative
+0x08f6 U0192 # function
+0x08fb U2190 # leftarrow
+0x08fc U2191 # uparrow
+0x08fd U2192 # rightarrow
+0x08fe U2193 # downarrow
+0x09df U2422 # blank
+0x09e0 U25c6 # soliddiamond
+0x09e1 U2592 # checkerboard
+0x09e2 U2409 # ht
+0x09e3 U240c # ff
+0x09e4 U240d # cr
+0x09e5 U240a # lf
+0x09e8 U2424 # nl
+0x09e9 U240b # vt
+0x09ea U2518 # lowrightcorner
+0x09eb U2510 # uprightcorner
+0x09ec U250c # upleftcorner
+0x09ed U2514 # lowleftcorner
+0x09ee U253c # crossinglines
+0x09ef U23ba # horizlinescan1
+0x09f0 U23bb # horizlinescan3
+0x09f1 U2500 # horizlinescan5
+0x09f2 U23bc # horizlinescan7
+0x09f3 U23bd # horizlinescan9
+0x09f4 U251c # leftt
+0x09f5 U2524 # rightt
+0x09f6 U2534 # bott
+0x09f7 U252c # topt
+0x09f8 U2502 # vertbar
+0x0aa1 U2003 # emspace
+0x0aa2 U2002 # enspace
+0x0aa3 U2004 # em3space
+0x0aa4 U2005 # em4space
+0x0aa5 U2007 # digitspace
+0x0aa6 U2008 # punctspace
+0x0aa7 U2009 # thinspace
+0x0aa8 U200a # hairspace
+0x0aa9 U2014 # emdash
+0x0aaa U2013 # endash
+0x0aac U2423 # signifblank
+0x0aae U2026 # ellipsis
+0x0aaf U2025 # doubbaselinedot
+0x0ab0 U2153 # onethird
+0x0ab1 U2154 # twothirds
+0x0ab2 U2155 # onefifth
+0x0ab3 U2156 # twofifths
+0x0ab4 U2157 # threefifths
+0x0ab5 U2158 # fourfifths
+0x0ab6 U2159 # onesixth
+0x0ab7 U215a # fivesixths
+0x0ab8 U2105 # careof
+0x0abb U2012 # figdash
+0x0abc U2329 # leftanglebracket (not U+27E8)
+0x0abd U002e # decimalpoint
+0x0abe U232a # rightanglebracket (not U+27E9)
+0x0abf U0000 # marker
+0x0ac3 U215b # oneeighth
+0x0ac4 U215c # threeeighths
+0x0ac5 U215d # fiveeighths
+0x0ac6 U215e # seveneighths
+0x0ac9 U2122 # trademark
+0x0aca U2613 # signaturemark
+0x0acb U0000 # trademarkincircle
+0x0acc U25c1 # leftopentriangle
+0x0acd U25b7 # rightopentriangle
+0x0ace U25cb # emopencircle
+0x0acf U25af # emopenrectangle
+0x0ad0 U2018 # leftsinglequotemark
+0x0ad1 U2019 # rightsinglequotemark
+0x0ad2 U201c # leftdoublequotemark
+0x0ad3 U201d # rightdoublequotemark
+0x0ad4 U211e # prescription
+0x0ad6 U2032 # minutes
+0x0ad7 U2033 # seconds
+0x0ad9 U271d # latincross
+0x0ada U0000 # hexagram
+0x0adb U25ac # filledrectbullet
+0x0adc U25c0 # filledlefttribullet
+0x0add U25b6 # filledrighttribullet
+0x0ade U25cf # emfilledcircle
+0x0adf U25ae # emfilledrect
+0x0ae0 U25e6 # enopencircbullet
+0x0ae1 U25ab # enopensquarebullet
+0x0ae2 U25ad # openrectbullet
+0x0ae3 U25b3 # opentribulletup
+0x0ae4 U25bd # opentribulletdown
+0x0ae5 U2606 # openstar
+0x0ae6 U2022 # enfilledcircbullet
+0x0ae7 U25aa # enfilledsqbullet
+0x0ae8 U25b2 # filledtribulletup
+0x0ae9 U25bc # filledtribulletdown
+0x0aea U261c # leftpointer
+0x0aeb U261e # rightpointer
+0x0aec U2663 # club
+0x0aed U2666 # diamond
+0x0aee U2665 # heart
+0x0af0 U2720 # maltesecross
+0x0af1 U2020 # dagger
+0x0af2 U2021 # doubledagger
+0x0af3 U2713 # checkmark
+0x0af4 U2717 # ballotcross
+0x0af5 U266f # musicalsharp
+0x0af6 U266d # musicalflat
+0x0af7 U2642 # malesymbol
+0x0af8 U2640 # femalesymbol
+0x0af9 U260e # telephone
+0x0afa U2315 # telephonerecorder
+0x0afb U2117 # phonographcopyright
+0x0afc U2038 # caret
+0x0afd U201a # singlelowquotemark
+0x0afe U201e # doublelowquotemark
+0x0aff U0000 # cursor
+0x0ba3 U003c # leftcaret
+0x0ba6 U003e # rightcaret
+0x0ba8 U2228 # downcaret
+0x0ba9 U2227 # upcaret
+0x0bc0 U00af # overbar
+0x0bc2 U22a5 # downtack
+0x0bc3 U2229 # upshoe
+0x0bc4 U230a # downstile
+0x0bc6 U005f # underbar
+0x0bca U2218 # jot
+0x0bcc U2395 # quad
+0x0bce U22a4 # uptack
+0x0bcf U25cb # circle
+0x0bd3 U2308 # upstile
+0x0bd6 U222a # downshoe
+0x0bd8 U2283 # rightshoe
+0x0bda U2282 # leftshoe
+0x0bdc U22a2 # lefttack
+0x0bfc U22a3 # righttack
+0x0cdf U2017 # hebrew_doublelowline
+0x0ce0 U05d0 # hebrew_aleph
+0x0ce1 U05d1 # hebrew_bet
+0x0ce2 U05d2 # hebrew_gimel
+0x0ce3 U05d3 # hebrew_dalet
+0x0ce4 U05d4 # hebrew_he
+0x0ce5 U05d5 # hebrew_waw
+0x0ce6 U05d6 # hebrew_zain
+0x0ce7 U05d7 # hebrew_chet
+0x0ce8 U05d8 # hebrew_tet
+0x0ce9 U05d9 # hebrew_yod
+0x0cea U05da # hebrew_finalkaph
+0x0ceb U05db # hebrew_kaph
+0x0cec U05dc # hebrew_lamed
+0x0ced U05dd # hebrew_finalmem
+0x0cee U05de # hebrew_mem
+0x0cef U05df # hebrew_finalnun
+0x0cf0 U05e0 # hebrew_nun
+0x0cf1 U05e1 # hebrew_samech
+0x0cf2 U05e2 # hebrew_ayin
+0x0cf3 U05e3 # hebrew_finalpe
+0x0cf4 U05e4 # hebrew_pe
+0x0cf5 U05e5 # hebrew_finalzade
+0x0cf6 U05e6 # hebrew_zade
+0x0cf7 U05e7 # hebrew_qoph
+0x0cf8 U05e8 # hebrew_resh
+0x0cf9 U05e9 # hebrew_shin
+0x0cfa U05ea # hebrew_taw
+0x0da1 U0e01 # Thai_kokai
+0x0da2 U0e02 # Thai_khokhai
+0x0da3 U0e03 # Thai_khokhuat
+0x0da4 U0e04 # Thai_khokhwai
+0x0da5 U0e05 # Thai_khokhon
+0x0da6 U0e06 # Thai_khorakhang
+0x0da7 U0e07 # Thai_ngongu
+0x0da8 U0e08 # Thai_chochan
+0x0da9 U0e09 # Thai_choching
+0x0daa U0e0a # Thai_chochang
+0x0dab U0e0b # Thai_soso
+0x0dac U0e0c # Thai_chochoe
+0x0dad U0e0d # Thai_yoying
+0x0dae U0e0e # Thai_dochada
+0x0daf U0e0f # Thai_topatak
+0x0db0 U0e10 # Thai_thothan
+0x0db1 U0e11 # Thai_thonangmontho
+0x0db2 U0e12 # Thai_thophuthao
+0x0db3 U0e13 # Thai_nonen
+0x0db4 U0e14 # Thai_dodek
+0x0db5 U0e15 # Thai_totao
+0x0db6 U0e16 # Thai_thothung
+0x0db7 U0e17 # Thai_thothahan
+0x0db8 U0e18 # Thai_thothong
+0x0db9 U0e19 # Thai_nonu
+0x0dba U0e1a # Thai_bobaimai
+0x0dbb U0e1b # Thai_popla
+0x0dbc U0e1c # Thai_phophung
+0x0dbd U0e1d # Thai_fofa
+0x0dbe U0e1e # Thai_phophan
+0x0dbf U0e1f # Thai_fofan
+0x0dc0 U0e20 # Thai_phosamphao
+0x0dc1 U0e21 # Thai_moma
+0x0dc2 U0e22 # Thai_yoyak
+0x0dc3 U0e23 # Thai_rorua
+0x0dc4 U0e24 # Thai_ru
+0x0dc5 U0e25 # Thai_loling
+0x0dc6 U0e26 # Thai_lu
+0x0dc7 U0e27 # Thai_wowaen
+0x0dc8 U0e28 # Thai_sosala
+0x0dc9 U0e29 # Thai_sorusi
+0x0dca U0e2a # Thai_sosua
+0x0dcb U0e2b # Thai_hohip
+0x0dcc U0e2c # Thai_lochula
+0x0dcd U0e2d # Thai_oang
+0x0dce U0e2e # Thai_honokhuk
+0x0dcf U0e2f # Thai_paiyannoi
+0x0dd0 U0e30 # Thai_saraa
+0x0dd1 U0e31 # Thai_maihanakat
+0x0dd2 U0e32 # Thai_saraaa
+0x0dd3 U0e33 # Thai_saraam
+0x0dd4 U0e34 # Thai_sarai
+0x0dd5 U0e35 # Thai_saraii
+0x0dd6 U0e36 # Thai_saraue
+0x0dd7 U0e37 # Thai_sarauee
+0x0dd8 U0e38 # Thai_sarau
+0x0dd9 U0e39 # Thai_sarauu
+0x0dda U0e3a # Thai_phinthu
+0x0dde U0e3e # Thai_maihanakat_maitho
+0x0ddf U0e3f # Thai_baht
+0x0de0 U0e40 # Thai_sarae
+0x0de1 U0e41 # Thai_saraae
+0x0de2 U0e42 # Thai_sarao
+0x0de3 U0e43 # Thai_saraaimaimuan
+0x0de4 U0e44 # Thai_saraaimaimalai
+0x0de5 U0e45 # Thai_lakkhangyao
+0x0de6 U0e46 # Thai_maiyamok
+0x0de7 U0e47 # Thai_maitaikhu
+0x0de8 U0e48 # Thai_maiek
+0x0de9 U0e49 # Thai_maitho
+0x0dea U0e4a # Thai_maitri
+0x0deb U0e4b # Thai_maichattawa
+0x0dec U0e4c # Thai_thanthakhat
+0x0ded U0e4d # Thai_nikhahit
+0x0df0 U0e50 # Thai_leksun
+0x0df1 U0e51 # Thai_leknung
+0x0df2 U0e52 # Thai_leksong
+0x0df3 U0e53 # Thai_leksam
+0x0df4 U0e54 # Thai_leksi
+0x0df5 U0e55 # Thai_lekha
+0x0df6 U0e56 # Thai_lekhok
+0x0df7 U0e57 # Thai_lekchet
+0x0df8 U0e58 # Thai_lekpaet
+0x0df9 U0e59 # Thai_lekkao
+0x0ea1 U3131 # Hangul_Kiyeog
+0x0ea2 U3132 # Hangul_SsangKiyeog
+0x0ea3 U3133 # Hangul_KiyeogSios
+0x0ea4 U3134 # Hangul_Nieun
+0x0ea5 U3135 # Hangul_NieunJieuj
+0x0ea6 U3136 # Hangul_NieunHieuh
+0x0ea7 U3137 # Hangul_Dikeud
+0x0ea8 U3138 # Hangul_SsangDikeud
+0x0ea9 U3139 # Hangul_Rieul
+0x0eaa U313a # Hangul_RieulKiyeog
+0x0eab U313b # Hangul_RieulMieum
+0x0eac U313c # Hangul_RieulPieub
+0x0ead U313d # Hangul_RieulSios
+0x0eae U313e # Hangul_RieulTieut
+0x0eaf U313f # Hangul_RieulPhieuf
+0x0eb0 U3140 # Hangul_RieulHieuh
+0x0eb1 U3141 # Hangul_Mieum
+0x0eb2 U3142 # Hangul_Pieub
+0x0eb3 U3143 # Hangul_SsangPieub
+0x0eb4 U3144 # Hangul_PieubSios
+0x0eb5 U3145 # Hangul_Sios
+0x0eb6 U3146 # Hangul_SsangSios
+0x0eb7 U3147 # Hangul_Ieung
+0x0eb8 U3148 # Hangul_Jieuj
+0x0eb9 U3149 # Hangul_SsangJieuj
+0x0eba U314a # Hangul_Cieuc
+0x0ebb U314b # Hangul_Khieuq
+0x0ebc U314c # Hangul_Tieut
+0x0ebd U314d # Hangul_Phieuf
+0x0ebe U314e # Hangul_Hieuh
+0x0ebf U314f # Hangul_A
+0x0ec0 U3150 # Hangul_AE
+0x0ec1 U3151 # Hangul_YA
+0x0ec2 U3152 # Hangul_YAE
+0x0ec3 U3153 # Hangul_EO
+0x0ec4 U3154 # Hangul_E
+0x0ec5 U3155 # Hangul_YEO
+0x0ec6 U3156 # Hangul_YE
+0x0ec7 U3157 # Hangul_O
+0x0ec8 U3158 # Hangul_WA
+0x0ec9 U3159 # Hangul_WAE
+0x0eca U315a # Hangul_OE
+0x0ecb U315b # Hangul_YO
+0x0ecc U315c # Hangul_U
+0x0ecd U315d # Hangul_WEO
+0x0ece U315e # Hangul_WE
+0x0ecf U315f # Hangul_WI
+0x0ed0 U3160 # Hangul_YU
+0x0ed1 U3161 # Hangul_EU
+0x0ed2 U3162 # Hangul_YI
+0x0ed3 U3163 # Hangul_I
+0x0ed4 U11a8 # Hangul_J_Kiyeog
+0x0ed5 U11a9 # Hangul_J_SsangKiyeog
+0x0ed6 U11aa # Hangul_J_KiyeogSios
+0x0ed7 U11ab # Hangul_J_Nieun
+0x0ed8 U11ac # Hangul_J_NieunJieuj
+0x0ed9 U11ad # Hangul_J_NieunHieuh
+0x0eda U11ae # Hangul_J_Dikeud
+0x0edb U11af # Hangul_J_Rieul
+0x0edc U11b0 # Hangul_J_RieulKiyeog
+0x0edd U11b1 # Hangul_J_RieulMieum
+0x0ede U11b2 # Hangul_J_RieulPieub
+0x0edf U11b3 # Hangul_J_RieulSios
+0x0ee0 U11b4 # Hangul_J_RieulTieut
+0x0ee1 U11b5 # Hangul_J_RieulPhieuf
+0x0ee2 U11b6 # Hangul_J_RieulHieuh
+0x0ee3 U11b7 # Hangul_J_Mieum
+0x0ee4 U11b8 # Hangul_J_Pieub
+0x0ee5 U11b9 # Hangul_J_PieubSios
+0x0ee6 U11ba # Hangul_J_Sios
+0x0ee7 U11bb # Hangul_J_SsangSios
+0x0ee8 U11bc # Hangul_J_Ieung
+0x0ee9 U11bd # Hangul_J_Jieuj
+0x0eea U11be # Hangul_J_Cieuc
+0x0eeb U11bf # Hangul_J_Khieuq
+0x0eec U11c0 # Hangul_J_Tieut
+0x0eed U11c1 # Hangul_J_Phieuf
+0x0eee U11c2 # Hangul_J_Hieuh
+0x0eef U316d # Hangul_RieulYeorinHieuh
+0x0ef0 U3171 # Hangul_SunkyeongeumMieum
+0x0ef1 U3178 # Hangul_SunkyeongeumPieub
+0x0ef2 U317f # Hangul_PanSios
+0x0ef3 U3181 # Hangul_KkogjiDalrinIeung
+0x0ef4 U3184 # Hangul_SunkyeongeumPhieuf
+0x0ef5 U3186 # Hangul_YeorinHieuh
+0x0ef6 U318d # Hangul_AraeA
+0x0ef7 U318e # Hangul_AraeAE
+0x0ef8 U11eb # Hangul_J_PanSios
+0x0ef9 U11f0 # Hangul_J_KkogjiDalrinIeung
+0x0efa U11f9 # Hangul_J_YeorinHieuh
+0x0eff U20a9 # Korean_Won
+0x13a4 U20ac # Euro
+0x13bc U0152 # OE
+0x13bd U0153 # oe
+0x13be U0178 # Ydiaeresis
+0x20a0 U20a0 # EcuSign
+0x20a1 U20a1 # ColonSign
+0x20a2 U20a2 # CruzeiroSign
+0x20a3 U20a3 # FFrancSign
+0x20a4 U20a4 # LiraSign
+0x20a5 U20a5 # MillSign
+0x20a6 U20a6 # NairaSign
+0x20a7 U20a7 # PesetaSign
+0x20a8 U20a8 # RupeeSign
+0x20a9 U20a9 # WonSign
+0x20aa U20aa # NewSheqelSign
+0x20ab U20ab # DongSign
+0x20ac U20ac # EuroSign
+0xfe50 U0300 # dead_grave
+0xfe51 U0301 # dead_acute
+0xfe52 U0302 # dead_circumflex
+0xfe53 U0303 # dead_tilde
+0xfe54 U0304 # dead_macron
+0xfe55 U0306 # dead_breve
+0xfe56 U0307 # dead_abovedot
+0xfe57 U0308 # dead_diaeresis
+0xfe58 U030a # dead_abovering
+0xfe59 U030b # dead_doubleacute
+0xfe5a U030c # dead_caron
+0xfe5b U0327 # dead_cedilla
+0xfe5c U0328 # dead_ogonek
+0xfe5d U0345 # dead_iota
+0xfe5e U3099 # dead_voiced_sound
+0xfe5f U309a # dead_semivoiced_sound
+0xff08 U0008 # BackSpace /* back space, back char */
+0xff09 U0009 # Tab
+0xff0a U000a # Linefeed /* Linefeed, LF */
+0xff0b U000b # Clear
+0xff0d U000d # Return /* Return, enter */
+0xff13 U0013 # Pause /* Pause, hold */
+0xff14 U0014 # Scroll_Lock
+0xff15 U0015 # Sys_Req
+0xff1b U001b # Escape
+0xff80 U0032 # KP_Space /* space */
+0xff89 U0009 # KP_Tab
+0xff8d U000d # KP_Enter /* enter */
+0xffaa U002a # KP_Multiply
+0xffab U002b # KP_Add
+0xffac U002c # KP_Separator /* separator, often comma */
+0xffad U002d # KP_Subtract
+0xffae U002e # KP_Decimal
+0xffaf U002f # KP_Divide
+0xffb0 U0030 # KP_0
+0xffb1 U0031 # KP_1
+0xffb2 U0032 # KP_2
+0xffb3 U0033 # KP_3
+0xffb4 U0034 # KP_4
+0xffb5 U0035 # KP_5
+0xffb6 U0036 # KP_6
+0xffb7 U0037 # KP_7
+0xffb8 U0038 # KP_8
+0xffb9 U0039 # KP_9
+0xffbd U003d # KP_Equal /* equals */
diff --git a/app/xterm/uxterm.desktop b/app/xterm/uxterm.desktop
new file mode 100644
index 000000000..0a46d690c
--- /dev/null
+++ b/app/xterm/uxterm.desktop
@@ -0,0 +1,10 @@
+# $XTermId: uxterm.desktop,v 1.5 2007/06/17 00:54:49 tom Exp $
+[Desktop Entry]
+Name=UXTerm
+Comment=standard terminal emulator for the X window system
+Exec=uxterm
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Icon=xterm-color_48x48.xpm
+Categories=System;
diff --git a/app/xterm/xterm.desktop b/app/xterm/xterm.desktop
new file mode 100644
index 000000000..e2e05b3fc
--- /dev/null
+++ b/app/xterm/xterm.desktop
@@ -0,0 +1,10 @@
+# $XTermId: xterm.desktop,v 1.6 2007/06/17 00:55:01 tom Exp $
+[Desktop Entry]
+Name=XTerm
+Comment=standard terminal emulator for the X window system
+Exec=xterm
+Terminal=false
+Type=Application
+Encoding=UTF-8
+Icon=xterm-color_48x48.xpm
+Categories=System;