]> git.sesse.net Git - vlc/commitdiff
XCB/window: legacy non-Unicode key symbols
authorRémi Denis-Courmont <remi@remlab.net>
Sun, 3 Jan 2010 11:14:34 +0000 (13:14 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Sun, 3 Jan 2010 11:14:34 +0000 (13:14 +0200)
modules/video_output/Modules.am
modules/video_output/xcb/keys.c
modules/video_output/xcb/keysym.h [new file with mode: 0644]

index b115352bec8594d5080470c3be4a5a85c43460fa..5faf3c396aaa6ebe9ccb9522e0d0e6669960d964 100644 (file)
@@ -53,7 +53,7 @@ libxcb_glx_plugin_la_LIBADD = $(AM_LIBADD) \
        $(XLIB_XCB_LIBS) $(GL_LIBS)
 libxcb_glx_plugin_la_DEPENDENCIES =
 
-libxcb_window_plugin_la_SOURCES = xcb/window.c xcb/keys.c
+libxcb_window_plugin_la_SOURCES = xcb/window.c xcb/keys.c xcb/keysym.h
 libxcb_window_plugin_la_CFLAGS = $(AM_CFLAGS) \
        $(XPROTO_CFLAGS) \
        $(XCB_CFLAGS) \
index a1369106528a7afad18dea1dde4be378646f3b1a..abf1006d5f7b7227b2b4df8ea165ab11390681a2 100644 (file)
@@ -173,6 +173,8 @@ static uint_fast32_t ConvertKeySym (xcb_keysym_t sym)
         { XF86XK_Favorites,        KEY_BROWSER_FAVORITES, },
         { XF86XK_AudioPause,       KEY_MEDIA_PLAY_PAUSE, },
         { XF86XK_Reload,           KEY_BROWSER_REFRESH, },
+    }, old[] = {
+#include "keysym.h"
     };
 
     /* X11 Latin-1 range */
@@ -187,6 +189,11 @@ static uint_fast32_t ConvertKeySym (xcb_keysym_t sym)
                    keysymcmp);
     if (res != NULL)
         return res->vlc;
+    /* Legacy X11 symbols outside the Unicode range */
+    res = bsearch (&sym, old, sizeof (old) / sizeof (old[0]), sizeof (old[0]),
+                   keysymcmp);
+    if (res != NULL)
+        return res->vlc;
 
     return KEY_UNSET;
 }
diff --git a/modules/video_output/xcb/keysym.h b/modules/video_output/xcb/keysym.h
new file mode 100644 (file)
index 0000000..4782e4f
--- /dev/null
@@ -0,0 +1,674 @@
+/* This file is generated automatically. Do not edit! */
+/* Entries are sorted from the smallest to the largest XK */
+/* XK_Aogonek             : LATIN CAPITAL LETTER A WITH OGONEK */
+{ 0x000001a1, 0x0104 },
+/* XK_Lstroke             : LATIN CAPITAL LETTER L WITH STROKE */
+{ 0x000001a3, 0x0141 },
+/* XK_Sacute              : LATIN CAPITAL LETTER S WITH ACUTE */
+{ 0x000001a6, 0x015a },
+/* XK_Scedilla            : LATIN CAPITAL LETTER S WITH CEDILLA */
+{ 0x000001aa, 0x015e },
+/* XK_Zacute              : LATIN CAPITAL LETTER Z WITH ACUTE */
+{ 0x000001ac, 0x0179 },
+/* XK_Zabovedot           : LATIN CAPITAL LETTER Z WITH DOT ABOVE */
+{ 0x000001af, 0x017b },
+/* XK_ogonek              : OGONEK */
+{ 0x000001b2, 0x02db },
+/* XK_lcaron              : LATIN SMALL LETTER L WITH CARON */
+{ 0x000001b5, 0x013e },
+/* XK_caron               : CARON */
+{ 0x000001b7, 0x02c7 },
+/* XK_scedilla            : LATIN SMALL LETTER S WITH CEDILLA */
+{ 0x000001ba, 0x015f },
+/* XK_zacute              : LATIN SMALL LETTER Z WITH ACUTE */
+{ 0x000001bc, 0x017a },
+/* XK_zcaron              : LATIN SMALL LETTER Z WITH CARON */
+{ 0x000001be, 0x017e },
+/* XK_Racute              : LATIN CAPITAL LETTER R WITH ACUTE */
+{ 0x000001c0, 0x0154 },
+/* XK_Lacute              : LATIN CAPITAL LETTER L WITH ACUTE */
+{ 0x000001c5, 0x0139 },
+/* XK_Ccaron              : LATIN CAPITAL LETTER C WITH CARON */
+{ 0x000001c8, 0x010c },
+/* XK_Ecaron              : LATIN CAPITAL LETTER E WITH CARON */
+{ 0x000001cc, 0x011a },
+/* XK_Dstroke             : LATIN CAPITAL LETTER D WITH STROKE */
+{ 0x000001d0, 0x0110 },
+/* XK_Ncaron              : LATIN CAPITAL LETTER N WITH CARON */
+{ 0x000001d2, 0x0147 },
+/* XK_Rcaron              : LATIN CAPITAL LETTER R WITH CARON */
+{ 0x000001d8, 0x0158 },
+/* XK_Udoubleacute        : LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */
+{ 0x000001db, 0x0170 },
+/* XK_racute              : LATIN SMALL LETTER R WITH ACUTE */
+{ 0x000001e0, 0x0155 },
+/* XK_lacute              : LATIN SMALL LETTER L WITH ACUTE */
+{ 0x000001e5, 0x013a },
+/* XK_ccaron              : LATIN SMALL LETTER C WITH CARON */
+{ 0x000001e8, 0x010d },
+/* XK_ecaron              : LATIN SMALL LETTER E WITH CARON */
+{ 0x000001ec, 0x011b },
+/* XK_dstroke             : LATIN SMALL LETTER D WITH STROKE */
+{ 0x000001f0, 0x0111 },
+/* XK_ncaron              : LATIN SMALL LETTER N WITH CARON */
+{ 0x000001f2, 0x0148 },
+/* XK_rcaron              : LATIN SMALL LETTER R WITH CARON */
+{ 0x000001f8, 0x0159 },
+/* XK_udoubleacute        : LATIN SMALL LETTER U WITH DOUBLE ACUTE */
+{ 0x000001fb, 0x0171 },
+/* XK_abovedot            : DOT ABOVE */
+{ 0x000001ff, 0x02d9 },
+/* XK_Hcircumflex         : LATIN CAPITAL LETTER H WITH CIRCUMFLEX */
+{ 0x000002a6, 0x0124 },
+/* XK_Gbreve              : LATIN CAPITAL LETTER G WITH BREVE */
+{ 0x000002ab, 0x011e },
+/* XK_hstroke             : LATIN SMALL LETTER H WITH STROKE */
+{ 0x000002b1, 0x0127 },
+/* XK_idotless            : LATIN SMALL LETTER DOTLESS I */
+{ 0x000002b9, 0x0131 },
+/* XK_jcircumflex         : LATIN SMALL LETTER J WITH CIRCUMFLEX */
+{ 0x000002bc, 0x0135 },
+/* XK_Ccircumflex         : LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
+{ 0x000002c6, 0x0108 },
+/* XK_Gcircumflex         : LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
+{ 0x000002d8, 0x011c },
+/* XK_Scircumflex         : LATIN CAPITAL LETTER S WITH CIRCUMFLEX */
+{ 0x000002de, 0x015c },
+/* XK_ccircumflex         : LATIN SMALL LETTER C WITH CIRCUMFLEX */
+{ 0x000002e6, 0x0109 },
+/* XK_gcircumflex         : LATIN SMALL LETTER G WITH CIRCUMFLEX */
+{ 0x000002f8, 0x011d },
+/* XK_scircumflex         : LATIN SMALL LETTER S WITH CIRCUMFLEX */
+{ 0x000002fe, 0x015d },
+/* XK_Rcedilla            : LATIN CAPITAL LETTER R WITH CEDILLA */
+{ 0x000003a3, 0x0156 },
+/* XK_Lcedilla            : LATIN CAPITAL LETTER L WITH CEDILLA */
+{ 0x000003a6, 0x013b },
+/* XK_Gcedilla            : LATIN CAPITAL LETTER G WITH CEDILLA */
+{ 0x000003ab, 0x0122 },
+/* XK_rcedilla            : LATIN SMALL LETTER R WITH CEDILLA */
+{ 0x000003b3, 0x0157 },
+/* XK_lcedilla            : LATIN SMALL LETTER L WITH CEDILLA */
+{ 0x000003b6, 0x013c },
+/* XK_gcedilla            : LATIN SMALL LETTER G WITH CEDILLA */
+{ 0x000003bb, 0x0123 },
+/* XK_ENG                 : LATIN CAPITAL LETTER ENG */
+{ 0x000003bd, 0x014a },
+/* XK_Amacron             : LATIN CAPITAL LETTER A WITH MACRON */
+{ 0x000003c0, 0x0100 },
+/* XK_Eabovedot           : LATIN CAPITAL LETTER E WITH DOT ABOVE */
+{ 0x000003cc, 0x0116 },
+/* XK_Ncedilla            : LATIN CAPITAL LETTER N WITH CEDILLA */
+{ 0x000003d1, 0x0145 },
+/* XK_Kcedilla            : LATIN CAPITAL LETTER K WITH CEDILLA */
+{ 0x000003d3, 0x0136 },
+/* XK_Utilde              : LATIN CAPITAL LETTER U WITH TILDE */
+{ 0x000003dd, 0x0168 },
+/* XK_amacron             : LATIN SMALL LETTER A WITH MACRON */
+{ 0x000003e0, 0x0101 },
+/* XK_eabovedot           : LATIN SMALL LETTER E WITH DOT ABOVE */
+{ 0x000003ec, 0x0117 },
+/* XK_ncedilla            : LATIN SMALL LETTER N WITH CEDILLA */
+{ 0x000003f1, 0x0146 },
+/* XK_kcedilla            : LATIN SMALL LETTER K WITH CEDILLA */
+{ 0x000003f3, 0x0137 },
+/* XK_utilde              : LATIN SMALL LETTER U WITH TILDE */
+{ 0x000003fd, 0x0169 },
+/* XK_overline            : OVERLINE */
+{ 0x0000047e, 0x203e },
+/* XK_kana_openingbracket : LEFT CORNER BRACKET */
+{ 0x000004a2, 0x300c },
+/* XK_kana_comma          : IDEOGRAPHIC COMMA */
+{ 0x000004a4, 0x3001 },
+/* XK_kana_WO             : KATAKANA LETTER WO */
+{ 0x000004a6, 0x30f2 },
+/* XK_kana_i              : KATAKANA LETTER SMALL I */
+{ 0x000004a8, 0x30a3 },
+/* XK_kana_e              : KATAKANA LETTER SMALL E */
+{ 0x000004aa, 0x30a7 },
+/* XK_kana_ya             : KATAKANA LETTER SMALL YA */
+{ 0x000004ac, 0x30e3 },
+/* XK_kana_yo             : KATAKANA LETTER SMALL YO */
+{ 0x000004ae, 0x30e7 },
+/* XK_prolongedsound      : KATAKANA-HIRAGANA PROLONGED SOUND MARK */
+{ 0x000004b0, 0x30fc },
+/* XK_kana_I              : KATAKANA LETTER I */
+{ 0x000004b2, 0x30a4 },
+/* XK_kana_E              : KATAKANA LETTER E */
+{ 0x000004b4, 0x30a8 },
+/* XK_kana_KA             : KATAKANA LETTER KA */
+{ 0x000004b6, 0x30ab },
+/* XK_kana_KU             : KATAKANA LETTER KU */
+{ 0x000004b8, 0x30af },
+/* XK_kana_KO             : KATAKANA LETTER KO */
+{ 0x000004ba, 0x30b3 },
+/* XK_kana_SHI            : KATAKANA LETTER SI */
+{ 0x000004bc, 0x30b7 },
+/* XK_kana_SE             : KATAKANA LETTER SE */
+{ 0x000004be, 0x30bb },
+/* XK_kana_TA             : KATAKANA LETTER TA */
+{ 0x000004c0, 0x30bf },
+/* XK_kana_TSU            : KATAKANA LETTER TU */
+{ 0x000004c2, 0x30c4 },
+/* XK_kana_TO             : KATAKANA LETTER TO */
+{ 0x000004c4, 0x30c8 },
+/* XK_kana_NI             : KATAKANA LETTER NI */
+{ 0x000004c6, 0x30cb },
+/* XK_kana_NE             : KATAKANA LETTER NE */
+{ 0x000004c8, 0x30cd },
+/* XK_kana_HA             : KATAKANA LETTER HA */
+{ 0x000004ca, 0x30cf },
+/* XK_kana_FU             : KATAKANA LETTER HU */
+{ 0x000004cc, 0x30d5 },
+/* XK_kana_HO             : KATAKANA LETTER HO */
+{ 0x000004ce, 0x30db },
+/* XK_kana_MI             : KATAKANA LETTER MI */
+{ 0x000004d0, 0x30df },
+/* XK_kana_ME             : KATAKANA LETTER ME */
+{ 0x000004d2, 0x30e1 },
+/* XK_kana_YA             : KATAKANA LETTER YA */
+{ 0x000004d4, 0x30e4 },
+/* XK_kana_YO             : KATAKANA LETTER YO */
+{ 0x000004d6, 0x30e8 },
+/* XK_kana_RI             : KATAKANA LETTER RI */
+{ 0x000004d8, 0x30ea },
+/* XK_kana_RE             : KATAKANA LETTER RE */
+{ 0x000004da, 0x30ec },
+/* XK_kana_WA             : KATAKANA LETTER WA */
+{ 0x000004dc, 0x30ef },
+/* XK_voicedsound         : KATAKANA-HIRAGANA VOICED SOUND MARK */
+{ 0x000004de, 0x309b },
+/* XK_Arabic_comma        : ARABIC COMMA */
+{ 0x000005ac, 0x060c },
+/* XK_Arabic_question_mark: ARABIC QUESTION MARK */
+{ 0x000005bf, 0x061f },
+/* XK_Arabic_maddaonalef  : ARABIC LETTER ALEF WITH MADDA ABOVE */
+{ 0x000005c2, 0x0622 },
+/* XK_Arabic_hamzaonwaw   : ARABIC LETTER WAW WITH HAMZA ABOVE */
+{ 0x000005c4, 0x0624 },
+/* XK_Arabic_hamzaonyeh   : ARABIC LETTER YEH WITH HAMZA ABOVE */
+{ 0x000005c6, 0x0626 },
+/* XK_Arabic_beh          : ARABIC LETTER BEH */
+{ 0x000005c8, 0x0628 },
+/* XK_Arabic_teh          : ARABIC LETTER TEH */
+{ 0x000005ca, 0x062a },
+/* XK_Arabic_jeem         : ARABIC LETTER JEEM */
+{ 0x000005cc, 0x062c },
+/* XK_Arabic_khah         : ARABIC LETTER KHAH */
+{ 0x000005ce, 0x062e },
+/* XK_Arabic_thal         : ARABIC LETTER THAL */
+{ 0x000005d0, 0x0630 },
+/* XK_Arabic_zain         : ARABIC LETTER ZAIN */
+{ 0x000005d2, 0x0632 },
+/* XK_Arabic_sheen        : ARABIC LETTER SHEEN */
+{ 0x000005d4, 0x0634 },
+/* XK_Arabic_dad          : ARABIC LETTER DAD */
+{ 0x000005d6, 0x0636 },
+/* XK_Arabic_zah          : ARABIC LETTER ZAH */
+{ 0x000005d8, 0x0638 },
+/* XK_Arabic_ghain        : ARABIC LETTER GHAIN */
+{ 0x000005da, 0x063a },
+/* XK_Arabic_feh          : ARABIC LETTER FEH */
+{ 0x000005e1, 0x0641 },
+/* XK_Arabic_kaf          : ARABIC LETTER KAF */
+{ 0x000005e3, 0x0643 },
+/* XK_Arabic_meem         : ARABIC LETTER MEEM */
+{ 0x000005e5, 0x0645 },
+/* XK_Arabic_ha           : ARABIC LETTER HEH */
+{ 0x000005e7, 0x0647 },
+/* XK_Arabic_alefmaksura  : ARABIC LETTER ALEF MAKSURA */
+{ 0x000005e9, 0x0649 },
+/* XK_Arabic_fathatan     : ARABIC FATHATAN */
+{ 0x000005eb, 0x064b },
+/* XK_Arabic_kasratan     : ARABIC KASRATAN */
+{ 0x000005ed, 0x064d },
+/* XK_Arabic_damma        : ARABIC DAMMA */
+{ 0x000005ef, 0x064f },
+/* XK_Arabic_shadda       : ARABIC SHADDA */
+{ 0x000005f1, 0x0651 },
+/* XK_Serbian_dje         : CYRILLIC SMALL LETTER DJE */
+{ 0x000006a1, 0x0452 },
+/* XK_Cyrillic_io         : CYRILLIC SMALL LETTER IO */
+{ 0x000006a3, 0x0451 },
+/* XK_Macedonia_dse       : CYRILLIC SMALL LETTER DZE */
+{ 0x000006a5, 0x0455 },
+/* XK_Ukrainian_yi        : CYRILLIC SMALL LETTER YI */
+{ 0x000006a7, 0x0457 },
+/* XK_Cyrillic_lje        : CYRILLIC SMALL LETTER LJE */
+{ 0x000006a9, 0x0459 },
+/* XK_Serbian_tshe        : CYRILLIC SMALL LETTER TSHE */
+{ 0x000006ab, 0x045b },
+/* XK_Ukrainian_ghe_with_upturn: CYRILLIC SMALL LETTER GHE WITH UPTURN */
+{ 0x000006ad, 0x0491 },
+/* XK_Cyrillic_dzhe       : CYRILLIC SMALL LETTER DZHE */
+{ 0x000006af, 0x045f },
+/* XK_Serbian_DJE         : CYRILLIC CAPITAL LETTER DJE */
+{ 0x000006b1, 0x0402 },
+/* XK_Cyrillic_IO         : CYRILLIC CAPITAL LETTER IO */
+{ 0x000006b3, 0x0401 },
+/* XK_Macedonia_DSE       : CYRILLIC CAPITAL LETTER DZE */
+{ 0x000006b5, 0x0405 },
+/* XK_Ukrainian_YI        : CYRILLIC CAPITAL LETTER YI */
+{ 0x000006b7, 0x0407 },
+/* XK_Cyrillic_LJE        : CYRILLIC CAPITAL LETTER LJE */
+{ 0x000006b9, 0x0409 },
+/* XK_Serbian_TSHE        : CYRILLIC CAPITAL LETTER TSHE */
+{ 0x000006bb, 0x040b },
+/* XK_Ukrainian_GHE_WITH_UPTURN: CYRILLIC CAPITAL LETTER GHE WITH UPTURN */
+{ 0x000006bd, 0x0490 },
+/* XK_Cyrillic_DZHE       : CYRILLIC CAPITAL LETTER DZHE */
+{ 0x000006bf, 0x040f },
+/* XK_Cyrillic_a          : CYRILLIC SMALL LETTER A */
+{ 0x000006c1, 0x0430 },
+/* XK_Cyrillic_tse        : CYRILLIC SMALL LETTER TSE */
+{ 0x000006c3, 0x0446 },
+/* XK_Cyrillic_ie         : CYRILLIC SMALL LETTER IE */
+{ 0x000006c5, 0x0435 },
+/* XK_Cyrillic_ghe        : CYRILLIC SMALL LETTER GHE */
+{ 0x000006c7, 0x0433 },
+/* XK_Cyrillic_i          : CYRILLIC SMALL LETTER I */
+{ 0x000006c9, 0x0438 },
+/* XK_Cyrillic_ka         : CYRILLIC SMALL LETTER KA */
+{ 0x000006cb, 0x043a },
+/* XK_Cyrillic_em         : CYRILLIC SMALL LETTER EM */
+{ 0x000006cd, 0x043c },
+/* XK_Cyrillic_o          : CYRILLIC SMALL LETTER O */
+{ 0x000006cf, 0x043e },
+/* XK_Cyrillic_ya         : CYRILLIC SMALL LETTER YA */
+{ 0x000006d1, 0x044f },
+/* XK_Cyrillic_es         : CYRILLIC SMALL LETTER ES */
+{ 0x000006d3, 0x0441 },
+/* XK_Cyrillic_u          : CYRILLIC SMALL LETTER U */
+{ 0x000006d5, 0x0443 },
+/* XK_Cyrillic_ve         : CYRILLIC SMALL LETTER VE */
+{ 0x000006d7, 0x0432 },
+/* XK_Cyrillic_yeru       : CYRILLIC SMALL LETTER YERU */
+{ 0x000006d9, 0x044b },
+/* XK_Cyrillic_sha        : CYRILLIC SMALL LETTER SHA */
+{ 0x000006db, 0x0448 },
+/* XK_Cyrillic_shcha      : CYRILLIC SMALL LETTER SHCHA */
+{ 0x000006dd, 0x0449 },
+/* XK_Cyrillic_hardsign   : CYRILLIC SMALL LETTER HARD SIGN */
+{ 0x000006df, 0x044a },
+/* XK_Cyrillic_A          : CYRILLIC CAPITAL LETTER A */
+{ 0x000006e1, 0x0410 },
+/* XK_Cyrillic_TSE        : CYRILLIC CAPITAL LETTER TSE */
+{ 0x000006e3, 0x0426 },
+/* XK_Cyrillic_IE         : CYRILLIC CAPITAL LETTER IE */
+{ 0x000006e5, 0x0415 },
+/* XK_Cyrillic_GHE        : CYRILLIC CAPITAL LETTER GHE */
+{ 0x000006e7, 0x0413 },
+/* XK_Cyrillic_I          : CYRILLIC CAPITAL LETTER I */
+{ 0x000006e9, 0x0418 },
+/* XK_Cyrillic_KA         : CYRILLIC CAPITAL LETTER KA */
+{ 0x000006eb, 0x041a },
+/* XK_Cyrillic_EM         : CYRILLIC CAPITAL LETTER EM */
+{ 0x000006ed, 0x041c },
+/* XK_Cyrillic_O          : CYRILLIC CAPITAL LETTER O */
+{ 0x000006ef, 0x041e },
+/* XK_Cyrillic_YA         : CYRILLIC CAPITAL LETTER YA */
+{ 0x000006f1, 0x042f },
+/* XK_Cyrillic_ES         : CYRILLIC CAPITAL LETTER ES */
+{ 0x000006f3, 0x0421 },
+/* XK_Cyrillic_U          : CYRILLIC CAPITAL LETTER U */
+{ 0x000006f5, 0x0423 },
+/* XK_Cyrillic_VE         : CYRILLIC CAPITAL LETTER VE */
+{ 0x000006f7, 0x0412 },
+/* XK_Cyrillic_YERU       : CYRILLIC CAPITAL LETTER YERU */
+{ 0x000006f9, 0x042b },
+/* XK_Cyrillic_SHA        : CYRILLIC CAPITAL LETTER SHA */
+{ 0x000006fb, 0x0428 },
+/* XK_Cyrillic_SHCHA      : CYRILLIC CAPITAL LETTER SHCHA */
+{ 0x000006fd, 0x0429 },
+/* XK_Cyrillic_HARDSIGN   : CYRILLIC CAPITAL LETTER HARD SIGN */
+{ 0x000006ff, 0x042a },
+/* XK_Greek_EPSILONaccent : GREEK CAPITAL LETTER EPSILON WITH TONOS */
+{ 0x000007a2, 0x0388 },
+/* XK_Greek_IOTAaccent    : GREEK CAPITAL LETTER IOTA WITH TONOS */
+{ 0x000007a4, 0x038a },
+/* XK_Greek_OMICRONaccent : GREEK CAPITAL LETTER OMICRON WITH TONOS */
+{ 0x000007a7, 0x038c },
+/* XK_Greek_UPSILONdieresis: GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */
+{ 0x000007a9, 0x03ab },
+/* XK_Greek_accentdieresis: GREEK DIALYTIKA TONOS */
+{ 0x000007ae, 0x0385 },
+/* XK_Greek_alphaaccent   : GREEK SMALL LETTER ALPHA WITH TONOS */
+{ 0x000007b1, 0x03ac },
+/* XK_Greek_etaaccent     : GREEK SMALL LETTER ETA WITH TONOS */
+{ 0x000007b3, 0x03ae },
+/* XK_Greek_iotadieresis  : GREEK SMALL LETTER IOTA WITH DIALYTIKA */
+{ 0x000007b5, 0x03ca },
+/* XK_Greek_omicronaccent : GREEK SMALL LETTER OMICRON WITH TONOS */
+{ 0x000007b7, 0x03cc },
+/* XK_Greek_upsilondieresis: GREEK SMALL LETTER UPSILON WITH DIALYTIKA */
+{ 0x000007b9, 0x03cb },
+/* XK_Greek_omegaaccent   : GREEK SMALL LETTER OMEGA WITH TONOS */
+{ 0x000007bb, 0x03ce },
+/* XK_Greek_BETA          : GREEK CAPITAL LETTER BETA */
+{ 0x000007c2, 0x0392 },
+/* XK_Greek_DELTA         : GREEK CAPITAL LETTER DELTA */
+{ 0x000007c4, 0x0394 },
+/* XK_Greek_ZETA          : GREEK CAPITAL LETTER ZETA */
+{ 0x000007c6, 0x0396 },
+/* XK_Greek_THETA         : GREEK CAPITAL LETTER THETA */
+{ 0x000007c8, 0x0398 },
+/* XK_Greek_KAPPA         : GREEK CAPITAL LETTER KAPPA */
+{ 0x000007ca, 0x039a },
+/* XK_Greek_MU            : GREEK CAPITAL LETTER MU */
+{ 0x000007cc, 0x039c },
+/* XK_Greek_XI            : GREEK CAPITAL LETTER XI */
+{ 0x000007ce, 0x039e },
+/* XK_Greek_PI            : GREEK CAPITAL LETTER PI */
+{ 0x000007d0, 0x03a0 },
+/* XK_Greek_SIGMA         : GREEK CAPITAL LETTER SIGMA */
+{ 0x000007d2, 0x03a3 },
+/* XK_Greek_UPSILON       : GREEK CAPITAL LETTER UPSILON */
+{ 0x000007d5, 0x03a5 },
+/* XK_Greek_CHI           : GREEK CAPITAL LETTER CHI */
+{ 0x000007d7, 0x03a7 },
+/* XK_Greek_OMEGA         : GREEK CAPITAL LETTER OMEGA */
+{ 0x000007d9, 0x03a9 },
+/* XK_Greek_beta          : GREEK SMALL LETTER BETA */
+{ 0x000007e2, 0x03b2 },
+/* XK_Greek_delta         : GREEK SMALL LETTER DELTA */
+{ 0x000007e4, 0x03b4 },
+/* XK_Greek_zeta          : GREEK SMALL LETTER ZETA */
+{ 0x000007e6, 0x03b6 },
+/* XK_Greek_theta         : GREEK SMALL LETTER THETA */
+{ 0x000007e8, 0x03b8 },
+/* XK_Greek_kappa         : GREEK SMALL LETTER KAPPA */
+{ 0x000007ea, 0x03ba },
+/* XK_Greek_mu            : GREEK SMALL LETTER MU */
+{ 0x000007ec, 0x03bc },
+/* XK_Greek_xi            : GREEK SMALL LETTER XI */
+{ 0x000007ee, 0x03be },
+/* XK_Greek_pi            : GREEK SMALL LETTER PI */
+{ 0x000007f0, 0x03c0 },
+/* XK_Greek_sigma         : GREEK SMALL LETTER SIGMA */
+{ 0x000007f2, 0x03c3 },
+/* XK_Greek_tau           : GREEK SMALL LETTER TAU */
+{ 0x000007f4, 0x03c4 },
+/* XK_Greek_phi           : GREEK SMALL LETTER PHI */
+{ 0x000007f6, 0x03c6 },
+/* XK_Greek_psi           : GREEK SMALL LETTER PSI */
+{ 0x000007f8, 0x03c8 },
+/* XK_leftradical         : RADICAL SYMBOL BOTTOM */
+{ 0x000008a1, 0x23b7 },
+/* XK_horizconnector      : BOX DRAWINGS LIGHT HORIZONTAL)*/
+{ 0x000008a3, 0x2500 },
+/* XK_botintegral         : BOTTOM HALF INTEGRAL */
+{ 0x000008a5, 0x2321 },
+/* XK_topleftsqbracket    : LEFT SQUARE BRACKET UPPER CORNER */
+{ 0x000008a7, 0x23a1 },
+/* XK_toprightsqbracket   : RIGHT SQUARE BRACKET UPPER CORNER */
+{ 0x000008a9, 0x23a4 },
+/* XK_topleftparens       : LEFT PARENTHESIS UPPER HOOK */
+{ 0x000008ab, 0x239b },
+/* XK_toprightparens      : RIGHT PARENTHESIS UPPER HOOK */
+{ 0x000008ad, 0x239e },
+/* XK_leftmiddlecurlybrace: LEFT CURLY BRACKET MIDDLE PIECE */
+{ 0x000008af, 0x23a8 },
+/* XK_lessthanequal       : LESS-THAN OR EQUAL TO */
+{ 0x000008bc, 0x2264 },
+/* XK_greaterthanequal    : GREATER-THAN OR EQUAL TO */
+{ 0x000008be, 0x2265 },
+/* XK_therefore           : THEREFORE */
+{ 0x000008c0, 0x2234 },
+/* XK_infinity            : INFINITY */
+{ 0x000008c2, 0x221e },
+/* XK_approximate         : TILDE OPERATOR */
+{ 0x000008c8, 0x223c },
+/* XK_ifonlyif            : LEFT RIGHT DOUBLE ARROW */
+{ 0x000008cd, 0x21d4 },
+/* XK_identical           : IDENTICAL TO */
+{ 0x000008cf, 0x2261 },
+/* XK_includedin          : SUBSET OF */
+{ 0x000008da, 0x2282 },
+/* XK_intersection        : INTERSECTION */
+{ 0x000008dc, 0x2229 },
+/* XK_logicaland          : LOGICAL AND */
+{ 0x000008de, 0x2227 },
+/* XK_partialderivative   : PARTIAL DIFFERENTIAL */
+{ 0x000008ef, 0x2202 },
+/* XK_leftarrow           : LEFTWARDS ARROW */
+{ 0x000008fb, 0x2190 },
+/* XK_rightarrow          : RIGHTWARDS ARROW */
+{ 0x000008fd, 0x2192 },
+/* XK_soliddiamond        : BLACK DIAMOND */
+{ 0x000009e0, 0x25c6 },
+/* XK_ht                  : SYMBOL FOR HORIZONTAL TABULATION */
+{ 0x000009e2, 0x2409 },
+/* XK_cr                  : SYMBOL FOR CARRIAGE RETURN */
+{ 0x000009e4, 0x240d },
+/* XK_nl                  : SYMBOL FOR NEWLINE */
+{ 0x000009e8, 0x2424 },
+/* XK_lowrightcorner      : BOX DRAWINGS LIGHT UP AND LEFT */
+{ 0x000009ea, 0x2518 },
+/* XK_upleftcorner        : BOX DRAWINGS LIGHT DOWN AND RIGHT */
+{ 0x000009ec, 0x250c },
+/* XK_crossinglines       : BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */
+{ 0x000009ee, 0x253c },
+/* XK_horizlinescan3      : HORIZONTAL SCAN LINE-3 */
+{ 0x000009f0, 0x23bb },
+/* XK_horizlinescan7      : HORIZONTAL SCAN LINE-7 */
+{ 0x000009f2, 0x23bc },
+/* XK_leftt               : BOX DRAWINGS LIGHT VERTICAL AND RIGHT */
+{ 0x000009f4, 0x251c },
+/* XK_bott                : BOX DRAWINGS LIGHT UP AND HORIZONTAL */
+{ 0x000009f6, 0x2534 },
+/* XK_vertbar             : BOX DRAWINGS LIGHT VERTICAL */
+{ 0x000009f8, 0x2502 },
+/* XK_enspace             : EN SPACE */
+{ 0x00000aa2, 0x2002 },
+/* XK_em4space            : FOUR-PER-EM SPACE */
+{ 0x00000aa4, 0x2005 },
+/* XK_punctspace          : PUNCTUATION SPACE */
+{ 0x00000aa6, 0x2008 },
+/* XK_hairspace           : HAIR SPACE */
+{ 0x00000aa8, 0x200a },
+/* XK_endash              : EN DASH */
+{ 0x00000aaa, 0x2013 },
+/* XK_ellipsis            : HORIZONTAL ELLIPSIS */
+{ 0x00000aae, 0x2026 },
+/* XK_onethird            : VULGAR FRACTION ONE THIRD */
+{ 0x00000ab0, 0x2153 },
+/* XK_onefifth            : VULGAR FRACTION ONE FIFTH */
+{ 0x00000ab2, 0x2155 },
+/* XK_threefifths         : VULGAR FRACTION THREE FIFTHS */
+{ 0x00000ab4, 0x2157 },
+/* XK_onesixth            : VULGAR FRACTION ONE SIXTH */
+{ 0x00000ab6, 0x2159 },
+/* XK_careof              : CARE OF */
+{ 0x00000ab8, 0x2105 },
+/* XK_leftanglebracket    : MATHEMATICAL LEFT ANGLE BRACKET)*/
+{ 0x00000abc, 0x27e8 },
+/* XK_rightanglebracket   : MATHEMATICAL RIGHT ANGLE BRACKET)*/
+{ 0x00000abe, 0x27e9 },
+/* XK_threeeighths        : VULGAR FRACTION THREE EIGHTHS */
+{ 0x00000ac4, 0x215c },
+/* XK_seveneighths        : VULGAR FRACTION SEVEN EIGHTHS */
+{ 0x00000ac6, 0x215e },
+/* XK_signaturemark       : SALTIRE)*/
+{ 0x00000aca, 0x2613 },
+/* XK_rightopentriangle   : WHITE RIGHT-POINTING TRIANGLE)*/
+{ 0x00000acd, 0x25b7 },
+/* XK_emopenrectangle     : WHITE VERTICAL RECTANGLE)*/
+{ 0x00000acf, 0x25af },
+/* XK_rightsinglequotemark: RIGHT SINGLE QUOTATION MARK */
+{ 0x00000ad1, 0x2019 },
+/* XK_rightdoublequotemark: RIGHT DOUBLE QUOTATION MARK */
+{ 0x00000ad3, 0x201d },
+/* XK_minutes             : PRIME */
+{ 0x00000ad6, 0x2032 },
+/* XK_latincross          : LATIN CROSS */
+{ 0x00000ad9, 0x271d },
+/* XK_filledlefttribullet : BLACK LEFT-POINTING TRIANGLE)*/
+{ 0x00000adc, 0x25c0 },
+/* XK_emfilledcircle      : BLACK CIRCLE)*/
+{ 0x00000ade, 0x25cf },
+/* XK_enopencircbullet    : WHITE BULLET)*/
+{ 0x00000ae0, 0x25e6 },
+/* XK_openrectbullet      : WHITE RECTANGLE)*/
+{ 0x00000ae2, 0x25ad },
+/* XK_opentribulletdown   : WHITE DOWN-POINTING TRIANGLE)*/
+{ 0x00000ae4, 0x25bd },
+/* XK_enfilledcircbullet  : BULLET)*/
+{ 0x00000ae6, 0x2022 },
+/* XK_filledtribulletup   : BLACK UP-POINTING TRIANGLE)*/
+{ 0x00000ae8, 0x25b2 },
+/* XK_leftpointer         : WHITE LEFT POINTING INDEX)*/
+{ 0x00000aea, 0x261c },
+/* XK_club                : BLACK CLUB SUIT */
+{ 0x00000aec, 0x2663 },
+/* XK_heart               : BLACK HEART SUIT */
+{ 0x00000aee, 0x2665 },
+/* XK_dagger              : DAGGER */
+{ 0x00000af1, 0x2020 },
+/* XK_checkmark           : CHECK MARK */
+{ 0x00000af3, 0x2713 },
+/* XK_musicalsharp        : MUSIC SHARP SIGN */
+{ 0x00000af5, 0x266f },
+/* XK_malesymbol          : MALE SIGN */
+{ 0x00000af7, 0x2642 },
+/* XK_telephone           : BLACK TELEPHONE */
+{ 0x00000af9, 0x260e },
+/* XK_phonographcopyright : SOUND RECORDING COPYRIGHT */
+{ 0x00000afb, 0x2117 },
+/* XK_singlelowquotemark  : SINGLE LOW-9 QUOTATION MARK */
+{ 0x00000afd, 0x201a },
+/* XK_leftcaret           : LESS-THAN SIGN)*/
+{ 0x00000ba3, 0x003c },
+/* XK_downcaret           : LOGICAL OR)*/
+{ 0x00000ba8, 0x2228 },
+/* XK_overbar             : MACRON)*/
+{ 0x00000bc0, 0x00af },
+/* XK_upshoe              : INTERSECTION)*/
+{ 0x00000bc3, 0x2229 },
+/* XK_underbar            : LOW LINE)*/
+{ 0x00000bc6, 0x005f },
+/* XK_quad                : APL FUNCTIONAL SYMBOL QUAD */
+{ 0x00000bcc, 0x2395 },
+/* XK_circle              : WHITE CIRCLE */
+{ 0x00000bcf, 0x25cb },
+/* XK_downshoe            : UNION)*/
+{ 0x00000bd6, 0x222a },
+/* XK_leftshoe            : SUBSET OF)*/
+{ 0x00000bda, 0x2282 },
+/* XK_righttack           : RIGHT TACK */
+{ 0x00000bfc, 0x22a2 },
+/* XK_hebrew_aleph        : HEBREW LETTER ALEF */
+{ 0x00000ce0, 0x05d0 },
+/* XK_hebrew_gimel        : HEBREW LETTER GIMEL */
+{ 0x00000ce2, 0x05d2 },
+/* XK_hebrew_he           : HEBREW LETTER HE */
+{ 0x00000ce4, 0x05d4 },
+/* XK_hebrew_zain         : HEBREW LETTER ZAYIN */
+{ 0x00000ce6, 0x05d6 },
+/* XK_hebrew_tet          : HEBREW LETTER TET */
+{ 0x00000ce8, 0x05d8 },
+/* XK_hebrew_finalkaph    : HEBREW LETTER FINAL KAF */
+{ 0x00000cea, 0x05da },
+/* XK_hebrew_lamed        : HEBREW LETTER LAMED */
+{ 0x00000cec, 0x05dc },
+/* XK_hebrew_mem          : HEBREW LETTER MEM */
+{ 0x00000cee, 0x05de },
+/* XK_hebrew_nun          : HEBREW LETTER NUN */
+{ 0x00000cf0, 0x05e0 },
+/* XK_hebrew_ayin         : HEBREW LETTER AYIN */
+{ 0x00000cf2, 0x05e2 },
+/* XK_hebrew_pe           : HEBREW LETTER PE */
+{ 0x00000cf4, 0x05e4 },
+/* XK_hebrew_zade         : HEBREW LETTER TSADI */
+{ 0x00000cf6, 0x05e6 },
+/* XK_hebrew_resh         : HEBREW LETTER RESH */
+{ 0x00000cf8, 0x05e8 },
+/* XK_hebrew_taw          : HEBREW LETTER TAV */
+{ 0x00000cfa, 0x05ea },
+/* XK_Thai_khokhai        : THAI CHARACTER KHO KHAI */
+{ 0x00000da2, 0x0e02 },
+/* XK_Thai_khokhwai       : THAI CHARACTER KHO KHWAI */
+{ 0x00000da4, 0x0e04 },
+/* XK_Thai_khorakhang     : THAI CHARACTER KHO RAKHANG */
+{ 0x00000da6, 0x0e06 },
+/* XK_Thai_chochan        : THAI CHARACTER CHO CHAN */
+{ 0x00000da8, 0x0e08 },
+/* XK_Thai_chochang       : THAI CHARACTER CHO CHANG */
+{ 0x00000daa, 0x0e0a },
+/* XK_Thai_chochoe        : THAI CHARACTER CHO CHOE */
+{ 0x00000dac, 0x0e0c },
+/* XK_Thai_dochada        : THAI CHARACTER DO CHADA */
+{ 0x00000dae, 0x0e0e },
+/* XK_Thai_thothan        : THAI CHARACTER THO THAN */
+{ 0x00000db0, 0x0e10 },
+/* XK_Thai_thophuthao     : THAI CHARACTER THO PHUTHAO */
+{ 0x00000db2, 0x0e12 },
+/* XK_Thai_dodek          : THAI CHARACTER DO DEK */
+{ 0x00000db4, 0x0e14 },
+/* XK_Thai_thothung       : THAI CHARACTER THO THUNG */
+{ 0x00000db6, 0x0e16 },
+/* XK_Thai_thothong       : THAI CHARACTER THO THONG */
+{ 0x00000db8, 0x0e18 },
+/* XK_Thai_bobaimai       : THAI CHARACTER BO BAIMAI */
+{ 0x00000dba, 0x0e1a },
+/* XK_Thai_phophung       : THAI CHARACTER PHO PHUNG */
+{ 0x00000dbc, 0x0e1c },
+/* XK_Thai_phophan        : THAI CHARACTER PHO PHAN */
+{ 0x00000dbe, 0x0e1e },
+/* XK_Thai_phosamphao     : THAI CHARACTER PHO SAMPHAO */
+{ 0x00000dc0, 0x0e20 },
+/* XK_Thai_yoyak          : THAI CHARACTER YO YAK */
+{ 0x00000dc2, 0x0e22 },
+/* XK_Thai_ru             : THAI CHARACTER RU */
+{ 0x00000dc4, 0x0e24 },
+/* XK_Thai_lu             : THAI CHARACTER LU */
+{ 0x00000dc6, 0x0e26 },
+/* XK_Thai_sosala         : THAI CHARACTER SO SALA */
+{ 0x00000dc8, 0x0e28 },
+/* XK_Thai_sosua          : THAI CHARACTER SO SUA */
+{ 0x00000dca, 0x0e2a },
+/* XK_Thai_lochula        : THAI CHARACTER LO CHULA */
+{ 0x00000dcc, 0x0e2c },
+/* XK_Thai_honokhuk       : THAI CHARACTER HO NOKHUK */
+{ 0x00000dce, 0x0e2e },
+/* XK_Thai_saraa          : THAI CHARACTER SARA A */
+{ 0x00000dd0, 0x0e30 },
+/* XK_Thai_saraaa         : THAI CHARACTER SARA AA */
+{ 0x00000dd2, 0x0e32 },
+/* XK_Thai_sarai          : THAI CHARACTER SARA I */
+{ 0x00000dd4, 0x0e34 },
+/* XK_Thai_saraue         : THAI CHARACTER SARA UE */
+{ 0x00000dd6, 0x0e36 },
+/* XK_Thai_sarau          : THAI CHARACTER SARA U */
+{ 0x00000dd8, 0x0e38 },
+/* XK_Thai_phinthu        : THAI CHARACTER PHINTHU */
+{ 0x00000dda, 0x0e3a },
+/* XK_Thai_sarae          : THAI CHARACTER SARA E */
+{ 0x00000de0, 0x0e40 },
+/* XK_Thai_sarao          : THAI CHARACTER SARA O */
+{ 0x00000de2, 0x0e42 },
+/* XK_Thai_saraaimaimalai : THAI CHARACTER SARA AI MAIMALAI */
+{ 0x00000de4, 0x0e44 },
+/* XK_Thai_maiyamok       : THAI CHARACTER MAIYAMOK */
+{ 0x00000de6, 0x0e46 },
+/* XK_Thai_maiek          : THAI CHARACTER MAI EK */
+{ 0x00000de8, 0x0e48 },
+/* XK_Thai_maitri         : THAI CHARACTER MAI TRI */
+{ 0x00000dea, 0x0e4a },
+/* XK_Thai_thanthakhat    : THAI CHARACTER THANTHAKHAT */
+{ 0x00000dec, 0x0e4c },
+/* XK_Thai_leksun         : THAI DIGIT ZERO */
+{ 0x00000df0, 0x0e50 },
+/* XK_Thai_leksong        : THAI DIGIT TWO */
+{ 0x00000df2, 0x0e52 },
+/* XK_Thai_leksi          : THAI DIGIT FOUR */
+{ 0x00000df4, 0x0e54 },
+/* XK_Thai_lekhok         : THAI DIGIT SIX */
+{ 0x00000df6, 0x0e56 },
+/* XK_Thai_lekpaet        : THAI DIGIT EIGHT */
+{ 0x00000df8, 0x0e58 },
+/* XK_Thai_lekkao         : THAI DIGIT NINE */
+{ 0x00000df9, 0x0e59 },
+/* XK_OE                  : LATIN CAPITAL LIGATURE OE */
+{ 0x000013bc, 0x0152 },
+/* XK_Ydiaeresis          : LATIN CAPITAL LETTER Y WITH DIAERESIS */
+{ 0x000013be, 0x0178 },