source: trunk/third/gtk2/gdk/gdkkeynames.c @ 18785

Revision 18785, 41.5 KB checked in by ghudson, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18784, which included commits to RCS files with non-trunk default branches.
Line 
1/* GDK - The GIMP Drawing Kit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
18 */
19
20/*
21 * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
22 * file for a list of people on the GTK+ Team.  See the ChangeLog
23 * files for a list of changes.  These files are distributed with
24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
25 */
26
27#include <glib/gprintf.h>
28#include <stdlib.h>
29#include <string.h>
30
31#include "gdkkeysyms.h"
32#include "gdkinternals.h"
33
34/* Key handling not part of the keymap */
35
36static struct gdk_key {
37  guint keyval;
38  const char *name;
39} gdk_keys_by_keyval[] = {
40  { 0x000020, "space" },
41  { 0x000021, "exclam" },
42  { 0x000022, "quotedbl" },
43  { 0x000023, "numbersign" },
44  { 0x000024, "dollar" },
45  { 0x000025, "percent" },
46  { 0x000026, "ampersand" },
47  { 0x000027, "apostrophe" },
48  { 0x000027, "quoteright" },
49  { 0x000028, "parenleft" },
50  { 0x000029, "parenright" },
51  { 0x00002a, "asterisk" },
52  { 0x00002b, "plus" },
53  { 0x00002c, "comma" },
54  { 0x00002d, "minus" },
55  { 0x00002e, "period" },
56  { 0x00002f, "slash" },
57  { 0x000030, "0" },
58  { 0x000031, "1" },
59  { 0x000032, "2" },
60  { 0x000033, "3" },
61  { 0x000034, "4" },
62  { 0x000035, "5" },
63  { 0x000036, "6" },
64  { 0x000037, "7" },
65  { 0x000038, "8" },
66  { 0x000039, "9" },
67  { 0x00003a, "colon" },
68  { 0x00003b, "semicolon" },
69  { 0x00003c, "less" },
70  { 0x00003d, "equal" },
71  { 0x00003e, "greater" },
72  { 0x00003f, "question" },
73  { 0x000040, "at" },
74  { 0x000041, "A" },
75  { 0x000042, "B" },
76  { 0x000043, "C" },
77  { 0x000044, "D" },
78  { 0x000045, "E" },
79  { 0x000046, "F" },
80  { 0x000047, "G" },
81  { 0x000048, "H" },
82  { 0x000049, "I" },
83  { 0x00004a, "J" },
84  { 0x00004b, "K" },
85  { 0x00004c, "L" },
86  { 0x00004d, "M" },
87  { 0x00004e, "N" },
88  { 0x00004f, "O" },
89  { 0x000050, "P" },
90  { 0x000051, "Q" },
91  { 0x000052, "R" },
92  { 0x000053, "S" },
93  { 0x000054, "T" },
94  { 0x000055, "U" },
95  { 0x000056, "V" },
96  { 0x000057, "W" },
97  { 0x000058, "X" },
98  { 0x000059, "Y" },
99  { 0x00005a, "Z" },
100  { 0x00005b, "bracketleft" },
101  { 0x00005c, "backslash" },
102  { 0x00005d, "bracketright" },
103  { 0x00005e, "asciicircum" },
104  { 0x00005f, "underscore" },
105  { 0x000060, "grave" },
106  { 0x000060, "quoteleft" },
107  { 0x000061, "a" },
108  { 0x000062, "b" },
109  { 0x000063, "c" },
110  { 0x000064, "d" },
111  { 0x000065, "e" },
112  { 0x000066, "f" },
113  { 0x000067, "g" },
114  { 0x000068, "h" },
115  { 0x000069, "i" },
116  { 0x00006a, "j" },
117  { 0x00006b, "k" },
118  { 0x00006c, "l" },
119  { 0x00006d, "m" },
120  { 0x00006e, "n" },
121  { 0x00006f, "o" },
122  { 0x000070, "p" },
123  { 0x000071, "q" },
124  { 0x000072, "r" },
125  { 0x000073, "s" },
126  { 0x000074, "t" },
127  { 0x000075, "u" },
128  { 0x000076, "v" },
129  { 0x000077, "w" },
130  { 0x000078, "x" },
131  { 0x000079, "y" },
132  { 0x00007a, "z" },
133  { 0x00007b, "braceleft" },
134  { 0x00007c, "bar" },
135  { 0x00007d, "braceright" },
136  { 0x00007e, "asciitilde" },
137  { 0x0000a0, "nobreakspace" },
138  { 0x0000a1, "exclamdown" },
139  { 0x0000a2, "cent" },
140  { 0x0000a3, "sterling" },
141  { 0x0000a4, "currency" },
142  { 0x0000a5, "yen" },
143  { 0x0000a6, "brokenbar" },
144  { 0x0000a7, "section" },
145  { 0x0000a8, "diaeresis" },
146  { 0x0000a9, "copyright" },
147  { 0x0000aa, "ordfeminine" },
148  { 0x0000ab, "guillemotleft" },
149  { 0x0000ac, "notsign" },
150  { 0x0000ad, "hyphen" },
151  { 0x0000ae, "registered" },
152  { 0x0000af, "macron" },
153  { 0x0000b0, "degree" },
154  { 0x0000b1, "plusminus" },
155  { 0x0000b2, "twosuperior" },
156  { 0x0000b3, "threesuperior" },
157  { 0x0000b4, "acute" },
158  { 0x0000b5, "mu" },
159  { 0x0000b6, "paragraph" },
160  { 0x0000b7, "periodcentered" },
161  { 0x0000b8, "cedilla" },
162  { 0x0000b9, "onesuperior" },
163  { 0x0000ba, "masculine" },
164  { 0x0000bb, "guillemotright" },
165  { 0x0000bc, "onequarter" },
166  { 0x0000bd, "onehalf" },
167  { 0x0000be, "threequarters" },
168  { 0x0000bf, "questiondown" },
169  { 0x0000c0, "Agrave" },
170  { 0x0000c1, "Aacute" },
171  { 0x0000c2, "Acircumflex" },
172  { 0x0000c3, "Atilde" },
173  { 0x0000c4, "Adiaeresis" },
174  { 0x0000c5, "Aring" },
175  { 0x0000c6, "AE" },
176  { 0x0000c7, "Ccedilla" },
177  { 0x0000c8, "Egrave" },
178  { 0x0000c9, "Eacute" },
179  { 0x0000ca, "Ecircumflex" },
180  { 0x0000cb, "Ediaeresis" },
181  { 0x0000cc, "Igrave" },
182  { 0x0000cd, "Iacute" },
183  { 0x0000ce, "Icircumflex" },
184  { 0x0000cf, "Idiaeresis" },
185  { 0x0000d0, "ETH" },
186  { 0x0000d0, "Eth" },
187  { 0x0000d1, "Ntilde" },
188  { 0x0000d2, "Ograve" },
189  { 0x0000d3, "Oacute" },
190  { 0x0000d4, "Ocircumflex" },
191  { 0x0000d5, "Otilde" },
192  { 0x0000d6, "Odiaeresis" },
193  { 0x0000d7, "multiply" },
194  { 0x0000d8, "Ooblique" },
195  { 0x0000d9, "Ugrave" },
196  { 0x0000da, "Uacute" },
197  { 0x0000db, "Ucircumflex" },
198  { 0x0000dc, "Udiaeresis" },
199  { 0x0000dd, "Yacute" },
200  { 0x0000de, "THORN" },
201  { 0x0000de, "Thorn" },
202  { 0x0000df, "ssharp" },
203  { 0x0000e0, "agrave" },
204  { 0x0000e1, "aacute" },
205  { 0x0000e2, "acircumflex" },
206  { 0x0000e3, "atilde" },
207  { 0x0000e4, "adiaeresis" },
208  { 0x0000e5, "aring" },
209  { 0x0000e6, "ae" },
210  { 0x0000e7, "ccedilla" },
211  { 0x0000e8, "egrave" },
212  { 0x0000e9, "eacute" },
213  { 0x0000ea, "ecircumflex" },
214  { 0x0000eb, "ediaeresis" },
215  { 0x0000ec, "igrave" },
216  { 0x0000ed, "iacute" },
217  { 0x0000ee, "icircumflex" },
218  { 0x0000ef, "idiaeresis" },
219  { 0x0000f0, "eth" },
220  { 0x0000f1, "ntilde" },
221  { 0x0000f2, "ograve" },
222  { 0x0000f3, "oacute" },
223  { 0x0000f4, "ocircumflex" },
224  { 0x0000f5, "otilde" },
225  { 0x0000f6, "odiaeresis" },
226  { 0x0000f7, "division" },
227  { 0x0000f8, "oslash" },
228  { 0x0000f9, "ugrave" },
229  { 0x0000fa, "uacute" },
230  { 0x0000fb, "ucircumflex" },
231  { 0x0000fc, "udiaeresis" },
232  { 0x0000fd, "yacute" },
233  { 0x0000fe, "thorn" },
234  { 0x0000ff, "ydiaeresis" },
235  { 0x0001a1, "Aogonek" },
236  { 0x0001a2, "breve" },
237  { 0x0001a3, "Lstroke" },
238  { 0x0001a5, "Lcaron" },
239  { 0x0001a6, "Sacute" },
240  { 0x0001a9, "Scaron" },
241  { 0x0001aa, "Scedilla" },
242  { 0x0001ab, "Tcaron" },
243  { 0x0001ac, "Zacute" },
244  { 0x0001ae, "Zcaron" },
245  { 0x0001af, "Zabovedot" },
246  { 0x0001b1, "aogonek" },
247  { 0x0001b2, "ogonek" },
248  { 0x0001b3, "lstroke" },
249  { 0x0001b5, "lcaron" },
250  { 0x0001b6, "sacute" },
251  { 0x0001b7, "caron" },
252  { 0x0001b9, "scaron" },
253  { 0x0001ba, "scedilla" },
254  { 0x0001bb, "tcaron" },
255  { 0x0001bc, "zacute" },
256  { 0x0001bd, "doubleacute" },
257  { 0x0001be, "zcaron" },
258  { 0x0001bf, "zabovedot" },
259  { 0x0001c0, "Racute" },
260  { 0x0001c3, "Abreve" },
261  { 0x0001c5, "Lacute" },
262  { 0x0001c6, "Cacute" },
263  { 0x0001c8, "Ccaron" },
264  { 0x0001ca, "Eogonek" },
265  { 0x0001cc, "Ecaron" },
266  { 0x0001cf, "Dcaron" },
267  { 0x0001d0, "Dstroke" },
268  { 0x0001d1, "Nacute" },
269  { 0x0001d2, "Ncaron" },
270  { 0x0001d5, "Odoubleacute" },
271  { 0x0001d8, "Rcaron" },
272  { 0x0001d9, "Uring" },
273  { 0x0001db, "Udoubleacute" },
274  { 0x0001de, "Tcedilla" },
275  { 0x0001e0, "racute" },
276  { 0x0001e3, "abreve" },
277  { 0x0001e5, "lacute" },
278  { 0x0001e6, "cacute" },
279  { 0x0001e8, "ccaron" },
280  { 0x0001ea, "eogonek" },
281  { 0x0001ec, "ecaron" },
282  { 0x0001ef, "dcaron" },
283  { 0x0001f0, "dstroke" },
284  { 0x0001f1, "nacute" },
285  { 0x0001f2, "ncaron" },
286  { 0x0001f5, "odoubleacute" },
287  { 0x0001f8, "rcaron" },
288  { 0x0001f9, "uring" },
289  { 0x0001fb, "udoubleacute" },
290  { 0x0001fe, "tcedilla" },
291  { 0x0001ff, "abovedot" },
292  { 0x0002a1, "Hstroke" },
293  { 0x0002a6, "Hcircumflex" },
294  { 0x0002a9, "Iabovedot" },
295  { 0x0002ab, "Gbreve" },
296  { 0x0002ac, "Jcircumflex" },
297  { 0x0002b1, "hstroke" },
298  { 0x0002b6, "hcircumflex" },
299  { 0x0002b9, "idotless" },
300  { 0x0002bb, "gbreve" },
301  { 0x0002bc, "jcircumflex" },
302  { 0x0002c5, "Cabovedot" },
303  { 0x0002c6, "Ccircumflex" },
304  { 0x0002d5, "Gabovedot" },
305  { 0x0002d8, "Gcircumflex" },
306  { 0x0002dd, "Ubreve" },
307  { 0x0002de, "Scircumflex" },
308  { 0x0002e5, "cabovedot" },
309  { 0x0002e6, "ccircumflex" },
310  { 0x0002f5, "gabovedot" },
311  { 0x0002f8, "gcircumflex" },
312  { 0x0002fd, "ubreve" },
313  { 0x0002fe, "scircumflex" },
314  { 0x0003a2, "kappa" },
315  { 0x0003a2, "kra" },
316  { 0x0003a3, "Rcedilla" },
317  { 0x0003a5, "Itilde" },
318  { 0x0003a6, "Lcedilla" },
319  { 0x0003aa, "Emacron" },
320  { 0x0003ab, "Gcedilla" },
321  { 0x0003ac, "Tslash" },
322  { 0x0003b3, "rcedilla" },
323  { 0x0003b5, "itilde" },
324  { 0x0003b6, "lcedilla" },
325  { 0x0003ba, "emacron" },
326  { 0x0003bb, "gcedilla" },
327  { 0x0003bc, "tslash" },
328  { 0x0003bd, "ENG" },
329  { 0x0003bf, "eng" },
330  { 0x0003c0, "Amacron" },
331  { 0x0003c7, "Iogonek" },
332  { 0x0003cc, "Eabovedot" },
333  { 0x0003cf, "Imacron" },
334  { 0x0003d1, "Ncedilla" },
335  { 0x0003d2, "Omacron" },
336  { 0x0003d3, "Kcedilla" },
337  { 0x0003d9, "Uogonek" },
338  { 0x0003dd, "Utilde" },
339  { 0x0003de, "Umacron" },
340  { 0x0003e0, "amacron" },
341  { 0x0003e7, "iogonek" },
342  { 0x0003ec, "eabovedot" },
343  { 0x0003ef, "imacron" },
344  { 0x0003f1, "ncedilla" },
345  { 0x0003f2, "omacron" },
346  { 0x0003f3, "kcedilla" },
347  { 0x0003f9, "uogonek" },
348  { 0x0003fd, "utilde" },
349  { 0x0003fe, "umacron" },
350  { 0x00047e, "overline" },
351  { 0x0004a1, "kana_fullstop" },
352  { 0x0004a2, "kana_openingbracket" },
353  { 0x0004a3, "kana_closingbracket" },
354  { 0x0004a4, "kana_comma" },
355  { 0x0004a5, "kana_conjunctive" },
356  { 0x0004a5, "kana_middledot" },
357  { 0x0004a6, "kana_WO" },
358  { 0x0004a7, "kana_a" },
359  { 0x0004a8, "kana_i" },
360  { 0x0004a9, "kana_u" },
361  { 0x0004aa, "kana_e" },
362  { 0x0004ab, "kana_o" },
363  { 0x0004ac, "kana_ya" },
364  { 0x0004ad, "kana_yu" },
365  { 0x0004ae, "kana_yo" },
366  { 0x0004af, "kana_tsu" },
367  { 0x0004af, "kana_tu" },
368  { 0x0004b0, "prolongedsound" },
369  { 0x0004b1, "kana_A" },
370  { 0x0004b2, "kana_I" },
371  { 0x0004b3, "kana_U" },
372  { 0x0004b4, "kana_E" },
373  { 0x0004b5, "kana_O" },
374  { 0x0004b6, "kana_KA" },
375  { 0x0004b7, "kana_KI" },
376  { 0x0004b8, "kana_KU" },
377  { 0x0004b9, "kana_KE" },
378  { 0x0004ba, "kana_KO" },
379  { 0x0004bb, "kana_SA" },
380  { 0x0004bc, "kana_SHI" },
381  { 0x0004bd, "kana_SU" },
382  { 0x0004be, "kana_SE" },
383  { 0x0004bf, "kana_SO" },
384  { 0x0004c0, "kana_TA" },
385  { 0x0004c1, "kana_CHI" },
386  { 0x0004c1, "kana_TI" },
387  { 0x0004c2, "kana_TSU" },
388  { 0x0004c2, "kana_TU" },
389  { 0x0004c3, "kana_TE" },
390  { 0x0004c4, "kana_TO" },
391  { 0x0004c5, "kana_NA" },
392  { 0x0004c6, "kana_NI" },
393  { 0x0004c7, "kana_NU" },
394  { 0x0004c8, "kana_NE" },
395  { 0x0004c9, "kana_NO" },
396  { 0x0004ca, "kana_HA" },
397  { 0x0004cb, "kana_HI" },
398  { 0x0004cc, "kana_FU" },
399  { 0x0004cc, "kana_HU" },
400  { 0x0004cd, "kana_HE" },
401  { 0x0004ce, "kana_HO" },
402  { 0x0004cf, "kana_MA" },
403  { 0x0004d0, "kana_MI" },
404  { 0x0004d1, "kana_MU" },
405  { 0x0004d2, "kana_ME" },
406  { 0x0004d3, "kana_MO" },
407  { 0x0004d4, "kana_YA" },
408  { 0x0004d5, "kana_YU" },
409  { 0x0004d6, "kana_YO" },
410  { 0x0004d7, "kana_RA" },
411  { 0x0004d8, "kana_RI" },
412  { 0x0004d9, "kana_RU" },
413  { 0x0004da, "kana_RE" },
414  { 0x0004db, "kana_RO" },
415  { 0x0004dc, "kana_WA" },
416  { 0x0004dd, "kana_N" },
417  { 0x0004de, "voicedsound" },
418  { 0x0004df, "semivoicedsound" },
419  { 0x0005ac, "Arabic_comma" },
420  { 0x0005bb, "Arabic_semicolon" },
421  { 0x0005bf, "Arabic_question_mark" },
422  { 0x0005c1, "Arabic_hamza" },
423  { 0x0005c2, "Arabic_maddaonalef" },
424  { 0x0005c3, "Arabic_hamzaonalef" },
425  { 0x0005c4, "Arabic_hamzaonwaw" },
426  { 0x0005c5, "Arabic_hamzaunderalef" },
427  { 0x0005c6, "Arabic_hamzaonyeh" },
428  { 0x0005c7, "Arabic_alef" },
429  { 0x0005c8, "Arabic_beh" },
430  { 0x0005c9, "Arabic_tehmarbuta" },
431  { 0x0005ca, "Arabic_teh" },
432  { 0x0005cb, "Arabic_theh" },
433  { 0x0005cc, "Arabic_jeem" },
434  { 0x0005cd, "Arabic_hah" },
435  { 0x0005ce, "Arabic_khah" },
436  { 0x0005cf, "Arabic_dal" },
437  { 0x0005d0, "Arabic_thal" },
438  { 0x0005d1, "Arabic_ra" },
439  { 0x0005d2, "Arabic_zain" },
440  { 0x0005d3, "Arabic_seen" },
441  { 0x0005d4, "Arabic_sheen" },
442  { 0x0005d5, "Arabic_sad" },
443  { 0x0005d6, "Arabic_dad" },
444  { 0x0005d7, "Arabic_tah" },
445  { 0x0005d8, "Arabic_zah" },
446  { 0x0005d9, "Arabic_ain" },
447  { 0x0005da, "Arabic_ghain" },
448  { 0x0005e0, "Arabic_tatweel" },
449  { 0x0005e1, "Arabic_feh" },
450  { 0x0005e2, "Arabic_qaf" },
451  { 0x0005e3, "Arabic_kaf" },
452  { 0x0005e4, "Arabic_lam" },
453  { 0x0005e5, "Arabic_meem" },
454  { 0x0005e6, "Arabic_noon" },
455  { 0x0005e7, "Arabic_ha" },
456  { 0x0005e7, "Arabic_heh" },
457  { 0x0005e8, "Arabic_waw" },
458  { 0x0005e9, "Arabic_alefmaksura" },
459  { 0x0005ea, "Arabic_yeh" },
460  { 0x0005eb, "Arabic_fathatan" },
461  { 0x0005ec, "Arabic_dammatan" },
462  { 0x0005ed, "Arabic_kasratan" },
463  { 0x0005ee, "Arabic_fatha" },
464  { 0x0005ef, "Arabic_damma" },
465  { 0x0005f0, "Arabic_kasra" },
466  { 0x0005f1, "Arabic_shadda" },
467  { 0x0005f2, "Arabic_sukun" },
468  { 0x0006a1, "Serbian_dje" },
469  { 0x0006a2, "Macedonia_gje" },
470  { 0x0006a3, "Cyrillic_io" },
471  { 0x0006a4, "Ukrainian_ie" },
472  { 0x0006a4, "Ukranian_je" },
473  { 0x0006a5, "Macedonia_dse" },
474  { 0x0006a6, "Ukrainian_i" },
475  { 0x0006a6, "Ukranian_i" },
476  { 0x0006a7, "Ukrainian_yi" },
477  { 0x0006a7, "Ukranian_yi" },
478  { 0x0006a8, "Cyrillic_je" },
479  { 0x0006a8, "Serbian_je" },
480  { 0x0006a9, "Cyrillic_lje" },
481  { 0x0006a9, "Serbian_lje" },
482  { 0x0006aa, "Cyrillic_nje" },
483  { 0x0006aa, "Serbian_nje" },
484  { 0x0006ab, "Serbian_tshe" },
485  { 0x0006ac, "Macedonia_kje" },
486  { 0x0006ae, "Byelorussian_shortu" },
487  { 0x0006af, "Cyrillic_dzhe" },
488  { 0x0006af, "Serbian_dze" },
489  { 0x0006b0, "numerosign" },
490  { 0x0006b1, "Serbian_DJE" },
491  { 0x0006b2, "Macedonia_GJE" },
492  { 0x0006b3, "Cyrillic_IO" },
493  { 0x0006b4, "Ukrainian_IE" },
494  { 0x0006b4, "Ukranian_JE" },
495  { 0x0006b5, "Macedonia_DSE" },
496  { 0x0006b6, "Ukrainian_I" },
497  { 0x0006b6, "Ukranian_I" },
498  { 0x0006b7, "Ukrainian_YI" },
499  { 0x0006b7, "Ukranian_YI" },
500  { 0x0006b8, "Cyrillic_JE" },
501  { 0x0006b8, "Serbian_JE" },
502  { 0x0006b9, "Cyrillic_LJE" },
503  { 0x0006b9, "Serbian_LJE" },
504  { 0x0006ba, "Cyrillic_NJE" },
505  { 0x0006ba, "Serbian_NJE" },
506  { 0x0006bb, "Serbian_TSHE" },
507  { 0x0006bc, "Macedonia_KJE" },
508  { 0x0006be, "Byelorussian_SHORTU" },
509  { 0x0006bf, "Cyrillic_DZHE" },
510  { 0x0006bf, "Serbian_DZE" },
511  { 0x0006c0, "Cyrillic_yu" },
512  { 0x0006c1, "Cyrillic_a" },
513  { 0x0006c2, "Cyrillic_be" },
514  { 0x0006c3, "Cyrillic_tse" },
515  { 0x0006c4, "Cyrillic_de" },
516  { 0x0006c5, "Cyrillic_ie" },
517  { 0x0006c6, "Cyrillic_ef" },
518  { 0x0006c7, "Cyrillic_ghe" },
519  { 0x0006c8, "Cyrillic_ha" },
520  { 0x0006c9, "Cyrillic_i" },
521  { 0x0006ca, "Cyrillic_shorti" },
522  { 0x0006cb, "Cyrillic_ka" },
523  { 0x0006cc, "Cyrillic_el" },
524  { 0x0006cd, "Cyrillic_em" },
525  { 0x0006ce, "Cyrillic_en" },
526  { 0x0006cf, "Cyrillic_o" },
527  { 0x0006d0, "Cyrillic_pe" },
528  { 0x0006d1, "Cyrillic_ya" },
529  { 0x0006d2, "Cyrillic_er" },
530  { 0x0006d3, "Cyrillic_es" },
531  { 0x0006d4, "Cyrillic_te" },
532  { 0x0006d5, "Cyrillic_u" },
533  { 0x0006d6, "Cyrillic_zhe" },
534  { 0x0006d7, "Cyrillic_ve" },
535  { 0x0006d8, "Cyrillic_softsign" },
536  { 0x0006d9, "Cyrillic_yeru" },
537  { 0x0006da, "Cyrillic_ze" },
538  { 0x0006db, "Cyrillic_sha" },
539  { 0x0006dc, "Cyrillic_e" },
540  { 0x0006dd, "Cyrillic_shcha" },
541  { 0x0006de, "Cyrillic_che" },
542  { 0x0006df, "Cyrillic_hardsign" },
543  { 0x0006e0, "Cyrillic_YU" },
544  { 0x0006e1, "Cyrillic_A" },
545  { 0x0006e2, "Cyrillic_BE" },
546  { 0x0006e3, "Cyrillic_TSE" },
547  { 0x0006e4, "Cyrillic_DE" },
548  { 0x0006e5, "Cyrillic_IE" },
549  { 0x0006e6, "Cyrillic_EF" },
550  { 0x0006e7, "Cyrillic_GHE" },
551  { 0x0006e8, "Cyrillic_HA" },
552  { 0x0006e9, "Cyrillic_I" },
553  { 0x0006ea, "Cyrillic_SHORTI" },
554  { 0x0006eb, "Cyrillic_KA" },
555  { 0x0006ec, "Cyrillic_EL" },
556  { 0x0006ed, "Cyrillic_EM" },
557  { 0x0006ee, "Cyrillic_EN" },
558  { 0x0006ef, "Cyrillic_O" },
559  { 0x0006f0, "Cyrillic_PE" },
560  { 0x0006f1, "Cyrillic_YA" },
561  { 0x0006f2, "Cyrillic_ER" },
562  { 0x0006f3, "Cyrillic_ES" },
563  { 0x0006f4, "Cyrillic_TE" },
564  { 0x0006f5, "Cyrillic_U" },
565  { 0x0006f6, "Cyrillic_ZHE" },
566  { 0x0006f7, "Cyrillic_VE" },
567  { 0x0006f8, "Cyrillic_SOFTSIGN" },
568  { 0x0006f9, "Cyrillic_YERU" },
569  { 0x0006fa, "Cyrillic_ZE" },
570  { 0x0006fb, "Cyrillic_SHA" },
571  { 0x0006fc, "Cyrillic_E" },
572  { 0x0006fd, "Cyrillic_SHCHA" },
573  { 0x0006fe, "Cyrillic_CHE" },
574  { 0x0006ff, "Cyrillic_HARDSIGN" },
575  { 0x0007a1, "Greek_ALPHAaccent" },
576  { 0x0007a2, "Greek_EPSILONaccent" },
577  { 0x0007a3, "Greek_ETAaccent" },
578  { 0x0007a4, "Greek_IOTAaccent" },
579  { 0x0007a5, "Greek_IOTAdiaeresis" },
580  { 0x0007a7, "Greek_OMICRONaccent" },
581  { 0x0007a8, "Greek_UPSILONaccent" },
582  { 0x0007a9, "Greek_UPSILONdieresis" },
583  { 0x0007ab, "Greek_OMEGAaccent" },
584  { 0x0007ae, "Greek_accentdieresis" },
585  { 0x0007af, "Greek_horizbar" },
586  { 0x0007b1, "Greek_alphaaccent" },
587  { 0x0007b2, "Greek_epsilonaccent" },
588  { 0x0007b3, "Greek_etaaccent" },
589  { 0x0007b4, "Greek_iotaaccent" },
590  { 0x0007b5, "Greek_iotadieresis" },
591  { 0x0007b6, "Greek_iotaaccentdieresis" },
592  { 0x0007b7, "Greek_omicronaccent" },
593  { 0x0007b8, "Greek_upsilonaccent" },
594  { 0x0007b9, "Greek_upsilondieresis" },
595  { 0x0007ba, "Greek_upsilonaccentdieresis" },
596  { 0x0007bb, "Greek_omegaaccent" },
597  { 0x0007c1, "Greek_ALPHA" },
598  { 0x0007c2, "Greek_BETA" },
599  { 0x0007c3, "Greek_GAMMA" },
600  { 0x0007c4, "Greek_DELTA" },
601  { 0x0007c5, "Greek_EPSILON" },
602  { 0x0007c6, "Greek_ZETA" },
603  { 0x0007c7, "Greek_ETA" },
604  { 0x0007c8, "Greek_THETA" },
605  { 0x0007c9, "Greek_IOTA" },
606  { 0x0007ca, "Greek_KAPPA" },
607  { 0x0007cb, "Greek_LAMBDA" },
608  { 0x0007cb, "Greek_LAMDA" },
609  { 0x0007cc, "Greek_MU" },
610  { 0x0007cd, "Greek_NU" },
611  { 0x0007ce, "Greek_XI" },
612  { 0x0007cf, "Greek_OMICRON" },
613  { 0x0007d0, "Greek_PI" },
614  { 0x0007d1, "Greek_RHO" },
615  { 0x0007d2, "Greek_SIGMA" },
616  { 0x0007d4, "Greek_TAU" },
617  { 0x0007d5, "Greek_UPSILON" },
618  { 0x0007d6, "Greek_PHI" },
619  { 0x0007d7, "Greek_CHI" },
620  { 0x0007d8, "Greek_PSI" },
621  { 0x0007d9, "Greek_OMEGA" },
622  { 0x0007e1, "Greek_alpha" },
623  { 0x0007e2, "Greek_beta" },
624  { 0x0007e3, "Greek_gamma" },
625  { 0x0007e4, "Greek_delta" },
626  { 0x0007e5, "Greek_epsilon" },
627  { 0x0007e6, "Greek_zeta" },
628  { 0x0007e7, "Greek_eta" },
629  { 0x0007e8, "Greek_theta" },
630  { 0x0007e9, "Greek_iota" },
631  { 0x0007ea, "Greek_kappa" },
632  { 0x0007eb, "Greek_lambda" },
633  { 0x0007eb, "Greek_lamda" },
634  { 0x0007ec, "Greek_mu" },
635  { 0x0007ed, "Greek_nu" },
636  { 0x0007ee, "Greek_xi" },
637  { 0x0007ef, "Greek_omicron" },
638  { 0x0007f0, "Greek_pi" },
639  { 0x0007f1, "Greek_rho" },
640  { 0x0007f2, "Greek_sigma" },
641  { 0x0007f3, "Greek_finalsmallsigma" },
642  { 0x0007f4, "Greek_tau" },
643  { 0x0007f5, "Greek_upsilon" },
644  { 0x0007f6, "Greek_phi" },
645  { 0x0007f7, "Greek_chi" },
646  { 0x0007f8, "Greek_psi" },
647  { 0x0007f9, "Greek_omega" },
648  { 0x0008a1, "leftradical" },
649  { 0x0008a2, "topleftradical" },
650  { 0x0008a3, "horizconnector" },
651  { 0x0008a4, "topintegral" },
652  { 0x0008a5, "botintegral" },
653  { 0x0008a6, "vertconnector" },
654  { 0x0008a7, "topleftsqbracket" },
655  { 0x0008a8, "botleftsqbracket" },
656  { 0x0008a9, "toprightsqbracket" },
657  { 0x0008aa, "botrightsqbracket" },
658  { 0x0008ab, "topleftparens" },
659  { 0x0008ac, "botleftparens" },
660  { 0x0008ad, "toprightparens" },
661  { 0x0008ae, "botrightparens" },
662  { 0x0008af, "leftmiddlecurlybrace" },
663  { 0x0008b0, "rightmiddlecurlybrace" },
664  { 0x0008b1, "topleftsummation" },
665  { 0x0008b2, "botleftsummation" },
666  { 0x0008b3, "topvertsummationconnector" },
667  { 0x0008b4, "botvertsummationconnector" },
668  { 0x0008b5, "toprightsummation" },
669  { 0x0008b6, "botrightsummation" },
670  { 0x0008b7, "rightmiddlesummation" },
671  { 0x0008bc, "lessthanequal" },
672  { 0x0008bd, "notequal" },
673  { 0x0008be, "greaterthanequal" },
674  { 0x0008bf, "integral" },
675  { 0x0008c0, "therefore" },
676  { 0x0008c1, "variation" },
677  { 0x0008c2, "infinity" },
678  { 0x0008c5, "nabla" },
679  { 0x0008c8, "approximate" },
680  { 0x0008c9, "similarequal" },
681  { 0x0008cd, "ifonlyif" },
682  { 0x0008ce, "implies" },
683  { 0x0008cf, "identical" },
684  { 0x0008d6, "radical" },
685  { 0x0008da, "includedin" },
686  { 0x0008db, "includes" },
687  { 0x0008dc, "intersection" },
688  { 0x0008dd, "union" },
689  { 0x0008de, "logicaland" },
690  { 0x0008df, "logicalor" },
691  { 0x0008ef, "partialderivative" },
692  { 0x0008f6, "function" },
693  { 0x0008fb, "leftarrow" },
694  { 0x0008fc, "uparrow" },
695  { 0x0008fd, "rightarrow" },
696  { 0x0008fe, "downarrow" },
697  { 0x0009df, "blank" },
698  { 0x0009e0, "soliddiamond" },
699  { 0x0009e1, "checkerboard" },
700  { 0x0009e2, "ht" },
701  { 0x0009e3, "ff" },
702  { 0x0009e4, "cr" },
703  { 0x0009e5, "lf" },
704  { 0x0009e8, "nl" },
705  { 0x0009e9, "vt" },
706  { 0x0009ea, "lowrightcorner" },
707  { 0x0009eb, "uprightcorner" },
708  { 0x0009ec, "upleftcorner" },
709  { 0x0009ed, "lowleftcorner" },
710  { 0x0009ee, "crossinglines" },
711  { 0x0009ef, "horizlinescan1" },
712  { 0x0009f0, "horizlinescan3" },
713  { 0x0009f1, "horizlinescan5" },
714  { 0x0009f2, "horizlinescan7" },
715  { 0x0009f3, "horizlinescan9" },
716  { 0x0009f4, "leftt" },
717  { 0x0009f5, "rightt" },
718  { 0x0009f6, "bott" },
719  { 0x0009f7, "topt" },
720  { 0x0009f8, "vertbar" },
721  { 0x000aa1, "emspace" },
722  { 0x000aa2, "enspace" },
723  { 0x000aa3, "em3space" },
724  { 0x000aa4, "em4space" },
725  { 0x000aa5, "digitspace" },
726  { 0x000aa6, "punctspace" },
727  { 0x000aa7, "thinspace" },
728  { 0x000aa8, "hairspace" },
729  { 0x000aa9, "emdash" },
730  { 0x000aaa, "endash" },
731  { 0x000aac, "signifblank" },
732  { 0x000aae, "ellipsis" },
733  { 0x000aaf, "doubbaselinedot" },
734  { 0x000ab0, "onethird" },
735  { 0x000ab1, "twothirds" },
736  { 0x000ab2, "onefifth" },
737  { 0x000ab3, "twofifths" },
738  { 0x000ab4, "threefifths" },
739  { 0x000ab5, "fourfifths" },
740  { 0x000ab6, "onesixth" },
741  { 0x000ab7, "fivesixths" },
742  { 0x000ab8, "careof" },
743  { 0x000abb, "figdash" },
744  { 0x000abc, "leftanglebracket" },
745  { 0x000abd, "decimalpoint" },
746  { 0x000abe, "rightanglebracket" },
747  { 0x000abf, "marker" },
748  { 0x000ac3, "oneeighth" },
749  { 0x000ac4, "threeeighths" },
750  { 0x000ac5, "fiveeighths" },
751  { 0x000ac6, "seveneighths" },
752  { 0x000ac9, "trademark" },
753  { 0x000aca, "signaturemark" },
754  { 0x000acb, "trademarkincircle" },
755  { 0x000acc, "leftopentriangle" },
756  { 0x000acd, "rightopentriangle" },
757  { 0x000ace, "emopencircle" },
758  { 0x000acf, "emopenrectangle" },
759  { 0x000ad0, "leftsinglequotemark" },
760  { 0x000ad1, "rightsinglequotemark" },
761  { 0x000ad2, "leftdoublequotemark" },
762  { 0x000ad3, "rightdoublequotemark" },
763  { 0x000ad4, "prescription" },
764  { 0x000ad6, "minutes" },
765  { 0x000ad7, "seconds" },
766  { 0x000ad9, "latincross" },
767  { 0x000ada, "hexagram" },
768  { 0x000adb, "filledrectbullet" },
769  { 0x000adc, "filledlefttribullet" },
770  { 0x000add, "filledrighttribullet" },
771  { 0x000ade, "emfilledcircle" },
772  { 0x000adf, "emfilledrect" },
773  { 0x000ae0, "enopencircbullet" },
774  { 0x000ae1, "enopensquarebullet" },
775  { 0x000ae2, "openrectbullet" },
776  { 0x000ae3, "opentribulletup" },
777  { 0x000ae4, "opentribulletdown" },
778  { 0x000ae5, "openstar" },
779  { 0x000ae6, "enfilledcircbullet" },
780  { 0x000ae7, "enfilledsqbullet" },
781  { 0x000ae8, "filledtribulletup" },
782  { 0x000ae9, "filledtribulletdown" },
783  { 0x000aea, "leftpointer" },
784  { 0x000aeb, "rightpointer" },
785  { 0x000aec, "club" },
786  { 0x000aed, "diamond" },
787  { 0x000aee, "heart" },
788  { 0x000af0, "maltesecross" },
789  { 0x000af1, "dagger" },
790  { 0x000af2, "doubledagger" },
791  { 0x000af3, "checkmark" },
792  { 0x000af4, "ballotcross" },
793  { 0x000af5, "musicalsharp" },
794  { 0x000af6, "musicalflat" },
795  { 0x000af7, "malesymbol" },
796  { 0x000af8, "femalesymbol" },
797  { 0x000af9, "telephone" },
798  { 0x000afa, "telephonerecorder" },
799  { 0x000afb, "phonographcopyright" },
800  { 0x000afc, "caret" },
801  { 0x000afd, "singlelowquotemark" },
802  { 0x000afe, "doublelowquotemark" },
803  { 0x000aff, "cursor" },
804  { 0x000ba3, "leftcaret" },
805  { 0x000ba6, "rightcaret" },
806  { 0x000ba8, "downcaret" },
807  { 0x000ba9, "upcaret" },
808  { 0x000bc0, "overbar" },
809  { 0x000bc2, "downtack" },
810  { 0x000bc3, "upshoe" },
811  { 0x000bc4, "downstile" },
812  { 0x000bc6, "underbar" },
813  { 0x000bca, "jot" },
814  { 0x000bcc, "quad" },
815  { 0x000bce, "uptack" },
816  { 0x000bcf, "circle" },
817  { 0x000bd3, "upstile" },
818  { 0x000bd6, "downshoe" },
819  { 0x000bd8, "rightshoe" },
820  { 0x000bda, "leftshoe" },
821  { 0x000bdc, "lefttack" },
822  { 0x000bfc, "righttack" },
823  { 0x000cdf, "hebrew_doublelowline" },
824  { 0x000ce0, "hebrew_aleph" },
825  { 0x000ce1, "hebrew_bet" },
826  { 0x000ce1, "hebrew_beth" },
827  { 0x000ce2, "hebrew_gimel" },
828  { 0x000ce2, "hebrew_gimmel" },
829  { 0x000ce3, "hebrew_dalet" },
830  { 0x000ce3, "hebrew_daleth" },
831  { 0x000ce4, "hebrew_he" },
832  { 0x000ce5, "hebrew_waw" },
833  { 0x000ce6, "hebrew_zain" },
834  { 0x000ce6, "hebrew_zayin" },
835  { 0x000ce7, "hebrew_chet" },
836  { 0x000ce7, "hebrew_het" },
837  { 0x000ce8, "hebrew_tet" },
838  { 0x000ce8, "hebrew_teth" },
839  { 0x000ce9, "hebrew_yod" },
840  { 0x000cea, "hebrew_finalkaph" },
841  { 0x000ceb, "hebrew_kaph" },
842  { 0x000cec, "hebrew_lamed" },
843  { 0x000ced, "hebrew_finalmem" },
844  { 0x000cee, "hebrew_mem" },
845  { 0x000cef, "hebrew_finalnun" },
846  { 0x000cf0, "hebrew_nun" },
847  { 0x000cf1, "hebrew_samech" },
848  { 0x000cf1, "hebrew_samekh" },
849  { 0x000cf2, "hebrew_ayin" },
850  { 0x000cf3, "hebrew_finalpe" },
851  { 0x000cf4, "hebrew_pe" },
852  { 0x000cf5, "hebrew_finalzade" },
853  { 0x000cf5, "hebrew_finalzadi" },
854  { 0x000cf6, "hebrew_zade" },
855  { 0x000cf6, "hebrew_zadi" },
856  { 0x000cf7, "hebrew_kuf" },
857  { 0x000cf7, "hebrew_qoph" },
858  { 0x000cf8, "hebrew_resh" },
859  { 0x000cf9, "hebrew_shin" },
860  { 0x000cfa, "hebrew_taf" },
861  { 0x000cfa, "hebrew_taw" },
862  { 0x000da1, "Thai_kokai" },
863  { 0x000da2, "Thai_khokhai" },
864  { 0x000da3, "Thai_khokhuat" },
865  { 0x000da4, "Thai_khokhwai" },
866  { 0x000da5, "Thai_khokhon" },
867  { 0x000da6, "Thai_khorakhang" },
868  { 0x000da7, "Thai_ngongu" },
869  { 0x000da8, "Thai_chochan" },
870  { 0x000da9, "Thai_choching" },
871  { 0x000daa, "Thai_chochang" },
872  { 0x000dab, "Thai_soso" },
873  { 0x000dac, "Thai_chochoe" },
874  { 0x000dad, "Thai_yoying" },
875  { 0x000dae, "Thai_dochada" },
876  { 0x000daf, "Thai_topatak" },
877  { 0x000db0, "Thai_thothan" },
878  { 0x000db1, "Thai_thonangmontho" },
879  { 0x000db2, "Thai_thophuthao" },
880  { 0x000db3, "Thai_nonen" },
881  { 0x000db4, "Thai_dodek" },
882  { 0x000db5, "Thai_totao" },
883  { 0x000db6, "Thai_thothung" },
884  { 0x000db7, "Thai_thothahan" },
885  { 0x000db8, "Thai_thothong" },
886  { 0x000db9, "Thai_nonu" },
887  { 0x000dba, "Thai_bobaimai" },
888  { 0x000dbb, "Thai_popla" },
889  { 0x000dbc, "Thai_phophung" },
890  { 0x000dbd, "Thai_fofa" },
891  { 0x000dbe, "Thai_phophan" },
892  { 0x000dbf, "Thai_fofan" },
893  { 0x000dc0, "Thai_phosamphao" },
894  { 0x000dc1, "Thai_moma" },
895  { 0x000dc2, "Thai_yoyak" },
896  { 0x000dc3, "Thai_rorua" },
897  { 0x000dc4, "Thai_ru" },
898  { 0x000dc5, "Thai_loling" },
899  { 0x000dc6, "Thai_lu" },
900  { 0x000dc7, "Thai_wowaen" },
901  { 0x000dc8, "Thai_sosala" },
902  { 0x000dc9, "Thai_sorusi" },
903  { 0x000dca, "Thai_sosua" },
904  { 0x000dcb, "Thai_hohip" },
905  { 0x000dcc, "Thai_lochula" },
906  { 0x000dcd, "Thai_oang" },
907  { 0x000dce, "Thai_honokhuk" },
908  { 0x000dcf, "Thai_paiyannoi" },
909  { 0x000dd0, "Thai_saraa" },
910  { 0x000dd1, "Thai_maihanakat" },
911  { 0x000dd2, "Thai_saraaa" },
912  { 0x000dd3, "Thai_saraam" },
913  { 0x000dd4, "Thai_sarai" },
914  { 0x000dd5, "Thai_saraii" },
915  { 0x000dd6, "Thai_saraue" },
916  { 0x000dd7, "Thai_sarauee" },
917  { 0x000dd8, "Thai_sarau" },
918  { 0x000dd9, "Thai_sarauu" },
919  { 0x000dda, "Thai_phinthu" },
920  { 0x000dde, "Thai_maihanakat_maitho" },
921  { 0x000ddf, "Thai_baht" },
922  { 0x000de0, "Thai_sarae" },
923  { 0x000de1, "Thai_saraae" },
924  { 0x000de2, "Thai_sarao" },
925  { 0x000de3, "Thai_saraaimaimuan" },
926  { 0x000de4, "Thai_saraaimaimalai" },
927  { 0x000de5, "Thai_lakkhangyao" },
928  { 0x000de6, "Thai_maiyamok" },
929  { 0x000de7, "Thai_maitaikhu" },
930  { 0x000de8, "Thai_maiek" },
931  { 0x000de9, "Thai_maitho" },
932  { 0x000dea, "Thai_maitri" },
933  { 0x000deb, "Thai_maichattawa" },
934  { 0x000dec, "Thai_thanthakhat" },
935  { 0x000ded, "Thai_nikhahit" },
936  { 0x000df0, "Thai_leksun" },
937  { 0x000df1, "Thai_leknung" },
938  { 0x000df2, "Thai_leksong" },
939  { 0x000df3, "Thai_leksam" },
940  { 0x000df4, "Thai_leksi" },
941  { 0x000df5, "Thai_lekha" },
942  { 0x000df6, "Thai_lekhok" },
943  { 0x000df7, "Thai_lekchet" },
944  { 0x000df8, "Thai_lekpaet" },
945  { 0x000df9, "Thai_lekkao" },
946  { 0x000ea1, "Hangul_Kiyeog" },
947  { 0x000ea2, "Hangul_SsangKiyeog" },
948  { 0x000ea3, "Hangul_KiyeogSios" },
949  { 0x000ea4, "Hangul_Nieun" },
950  { 0x000ea5, "Hangul_NieunJieuj" },
951  { 0x000ea6, "Hangul_NieunHieuh" },
952  { 0x000ea7, "Hangul_Dikeud" },
953  { 0x000ea8, "Hangul_SsangDikeud" },
954  { 0x000ea9, "Hangul_Rieul" },
955  { 0x000eaa, "Hangul_RieulKiyeog" },
956  { 0x000eab, "Hangul_RieulMieum" },
957  { 0x000eac, "Hangul_RieulPieub" },
958  { 0x000ead, "Hangul_RieulSios" },
959  { 0x000eae, "Hangul_RieulTieut" },
960  { 0x000eaf, "Hangul_RieulPhieuf" },
961  { 0x000eb0, "Hangul_RieulHieuh" },
962  { 0x000eb1, "Hangul_Mieum" },
963  { 0x000eb2, "Hangul_Pieub" },
964  { 0x000eb3, "Hangul_SsangPieub" },
965  { 0x000eb4, "Hangul_PieubSios" },
966  { 0x000eb5, "Hangul_Sios" },
967  { 0x000eb6, "Hangul_SsangSios" },
968  { 0x000eb7, "Hangul_Ieung" },
969  { 0x000eb8, "Hangul_Jieuj" },
970  { 0x000eb9, "Hangul_SsangJieuj" },
971  { 0x000eba, "Hangul_Cieuc" },
972  { 0x000ebb, "Hangul_Khieuq" },
973  { 0x000ebc, "Hangul_Tieut" },
974  { 0x000ebd, "Hangul_Phieuf" },
975  { 0x000ebe, "Hangul_Hieuh" },
976  { 0x000ebf, "Hangul_A" },
977  { 0x000ec0, "Hangul_AE" },
978  { 0x000ec1, "Hangul_YA" },
979  { 0x000ec2, "Hangul_YAE" },
980  { 0x000ec3, "Hangul_EO" },
981  { 0x000ec4, "Hangul_E" },
982  { 0x000ec5, "Hangul_YEO" },
983  { 0x000ec6, "Hangul_YE" },
984  { 0x000ec7, "Hangul_O" },
985  { 0x000ec8, "Hangul_WA" },
986  { 0x000ec9, "Hangul_WAE" },
987  { 0x000eca, "Hangul_OE" },
988  { 0x000ecb, "Hangul_YO" },
989  { 0x000ecc, "Hangul_U" },
990  { 0x000ecd, "Hangul_WEO" },
991  { 0x000ece, "Hangul_WE" },
992  { 0x000ecf, "Hangul_WI" },
993  { 0x000ed0, "Hangul_YU" },
994  { 0x000ed1, "Hangul_EU" },
995  { 0x000ed2, "Hangul_YI" },
996  { 0x000ed3, "Hangul_I" },
997  { 0x000ed4, "Hangul_J_Kiyeog" },
998  { 0x000ed5, "Hangul_J_SsangKiyeog" },
999  { 0x000ed6, "Hangul_J_KiyeogSios" },
1000  { 0x000ed7, "Hangul_J_Nieun" },
1001  { 0x000ed8, "Hangul_J_NieunJieuj" },
1002  { 0x000ed9, "Hangul_J_NieunHieuh" },
1003  { 0x000eda, "Hangul_J_Dikeud" },
1004  { 0x000edb, "Hangul_J_Rieul" },
1005  { 0x000edc, "Hangul_J_RieulKiyeog" },
1006  { 0x000edd, "Hangul_J_RieulMieum" },
1007  { 0x000ede, "Hangul_J_RieulPieub" },
1008  { 0x000edf, "Hangul_J_RieulSios" },
1009  { 0x000ee0, "Hangul_J_RieulTieut" },
1010  { 0x000ee1, "Hangul_J_RieulPhieuf" },
1011  { 0x000ee2, "Hangul_J_RieulHieuh" },
1012  { 0x000ee3, "Hangul_J_Mieum" },
1013  { 0x000ee4, "Hangul_J_Pieub" },
1014  { 0x000ee5, "Hangul_J_PieubSios" },
1015  { 0x000ee6, "Hangul_J_Sios" },
1016  { 0x000ee7, "Hangul_J_SsangSios" },
1017  { 0x000ee8, "Hangul_J_Ieung" },
1018  { 0x000ee9, "Hangul_J_Jieuj" },
1019  { 0x000eea, "Hangul_J_Cieuc" },
1020  { 0x000eeb, "Hangul_J_Khieuq" },
1021  { 0x000eec, "Hangul_J_Tieut" },
1022  { 0x000eed, "Hangul_J_Phieuf" },
1023  { 0x000eee, "Hangul_J_Hieuh" },
1024  { 0x000eef, "Hangul_RieulYeorinHieuh" },
1025  { 0x000ef0, "Hangul_SunkyeongeumMieum" },
1026  { 0x000ef1, "Hangul_SunkyeongeumPieub" },
1027  { 0x000ef2, "Hangul_PanSios" },
1028  { 0x000ef3, "Hangul_KkogjiDalrinIeung" },
1029  { 0x000ef4, "Hangul_SunkyeongeumPhieuf" },
1030  { 0x000ef5, "Hangul_YeorinHieuh" },
1031  { 0x000ef6, "Hangul_AraeA" },
1032  { 0x000ef7, "Hangul_AraeAE" },
1033  { 0x000ef8, "Hangul_J_PanSios" },
1034  { 0x000ef9, "Hangul_J_KkogjiDalrinIeung" },
1035  { 0x000efa, "Hangul_J_YeorinHieuh" },
1036  { 0x000eff, "Korean_Won" },
1037  { 0x0013bc, "OE" },
1038  { 0x0013bd, "oe" },
1039  { 0x0013be, "Ydiaeresis" },
1040  { 0x0020a0, "EcuSign" },
1041  { 0x0020a1, "ColonSign" },
1042  { 0x0020a2, "CruzeiroSign" },
1043  { 0x0020a3, "FFrancSign" },
1044  { 0x0020a4, "LiraSign" },
1045  { 0x0020a5, "MillSign" },
1046  { 0x0020a6, "NairaSign" },
1047  { 0x0020a7, "PesetaSign" },
1048  { 0x0020a8, "RupeeSign" },
1049  { 0x0020a9, "WonSign" },
1050  { 0x0020aa, "NewSheqelSign" },
1051  { 0x0020ab, "DongSign" },
1052  { 0x0020ac, "EuroSign" },
1053  { 0x00fd01, "3270_Duplicate" },
1054  { 0x00fd02, "3270_FieldMark" },
1055  { 0x00fd03, "3270_Right2" },
1056  { 0x00fd04, "3270_Left2" },
1057  { 0x00fd05, "3270_BackTab" },
1058  { 0x00fd06, "3270_EraseEOF" },
1059  { 0x00fd07, "3270_EraseInput" },
1060  { 0x00fd08, "3270_Reset" },
1061  { 0x00fd09, "3270_Quit" },
1062  { 0x00fd0a, "3270_PA1" },
1063  { 0x00fd0b, "3270_PA2" },
1064  { 0x00fd0c, "3270_PA3" },
1065  { 0x00fd0d, "3270_Test" },
1066  { 0x00fd0e, "3270_Attn" },
1067  { 0x00fd0f, "3270_CursorBlink" },
1068  { 0x00fd10, "3270_AltCursor" },
1069  { 0x00fd11, "3270_KeyClick" },
1070  { 0x00fd12, "3270_Jump" },
1071  { 0x00fd13, "3270_Ident" },
1072  { 0x00fd14, "3270_Rule" },
1073  { 0x00fd15, "3270_Copy" },
1074  { 0x00fd16, "3270_Play" },
1075  { 0x00fd17, "3270_Setup" },
1076  { 0x00fd18, "3270_Record" },
1077  { 0x00fd19, "3270_ChangeScreen" },
1078  { 0x00fd1a, "3270_DeleteWord" },
1079  { 0x00fd1b, "3270_ExSelect" },
1080  { 0x00fd1c, "3270_CursorSelect" },
1081  { 0x00fd1d, "3270_PrintScreen" },
1082  { 0x00fd1e, "3270_Enter" },
1083  { 0x00fe01, "ISO_Lock" },
1084  { 0x00fe02, "ISO_Level2_Latch" },
1085  { 0x00fe03, "ISO_Level3_Shift" },
1086  { 0x00fe04, "ISO_Level3_Latch" },
1087  { 0x00fe05, "ISO_Level3_Lock" },
1088  { 0x00fe06, "ISO_Group_Latch" },
1089  { 0x00fe07, "ISO_Group_Lock" },
1090  { 0x00fe08, "ISO_Next_Group" },
1091  { 0x00fe09, "ISO_Next_Group_Lock" },
1092  { 0x00fe0a, "ISO_Prev_Group" },
1093  { 0x00fe0b, "ISO_Prev_Group_Lock" },
1094  { 0x00fe0c, "ISO_First_Group" },
1095  { 0x00fe0d, "ISO_First_Group_Lock" },
1096  { 0x00fe0e, "ISO_Last_Group" },
1097  { 0x00fe0f, "ISO_Last_Group_Lock" },
1098  { 0x00fe20, "ISO_Left_Tab" },
1099  { 0x00fe21, "ISO_Move_Line_Up" },
1100  { 0x00fe22, "ISO_Move_Line_Down" },
1101  { 0x00fe23, "ISO_Partial_Line_Up" },
1102  { 0x00fe24, "ISO_Partial_Line_Down" },
1103  { 0x00fe25, "ISO_Partial_Space_Left" },
1104  { 0x00fe26, "ISO_Partial_Space_Right" },
1105  { 0x00fe27, "ISO_Set_Margin_Left" },
1106  { 0x00fe28, "ISO_Set_Margin_Right" },
1107  { 0x00fe29, "ISO_Release_Margin_Left" },
1108  { 0x00fe2a, "ISO_Release_Margin_Right" },
1109  { 0x00fe2b, "ISO_Release_Both_Margins" },
1110  { 0x00fe2c, "ISO_Fast_Cursor_Left" },
1111  { 0x00fe2d, "ISO_Fast_Cursor_Right" },
1112  { 0x00fe2e, "ISO_Fast_Cursor_Up" },
1113  { 0x00fe2f, "ISO_Fast_Cursor_Down" },
1114  { 0x00fe30, "ISO_Continuous_Underline" },
1115  { 0x00fe31, "ISO_Discontinuous_Underline" },
1116  { 0x00fe32, "ISO_Emphasize" },
1117  { 0x00fe33, "ISO_Center_Object" },
1118  { 0x00fe34, "ISO_Enter" },
1119  { 0x00fe50, "dead_grave" },
1120  { 0x00fe51, "dead_acute" },
1121  { 0x00fe52, "dead_circumflex" },
1122  { 0x00fe53, "dead_tilde" },
1123  { 0x00fe54, "dead_macron" },
1124  { 0x00fe55, "dead_breve" },
1125  { 0x00fe56, "dead_abovedot" },
1126  { 0x00fe57, "dead_diaeresis" },
1127  { 0x00fe58, "dead_abovering" },
1128  { 0x00fe59, "dead_doubleacute" },
1129  { 0x00fe5a, "dead_caron" },
1130  { 0x00fe5b, "dead_cedilla" },
1131  { 0x00fe5c, "dead_ogonek" },
1132  { 0x00fe5d, "dead_iota" },
1133  { 0x00fe5e, "dead_voiced_sound" },
1134  { 0x00fe5f, "dead_semivoiced_sound" },
1135  { 0x00fe60, "dead_belowdot" },
1136  { 0x00fe70, "AccessX_Enable" },
1137  { 0x00fe71, "AccessX_Feedback_Enable" },
1138  { 0x00fe72, "RepeatKeys_Enable" },
1139  { 0x00fe73, "SlowKeys_Enable" },
1140  { 0x00fe74, "BounceKeys_Enable" },
1141  { 0x00fe75, "StickyKeys_Enable" },
1142  { 0x00fe76, "MouseKeys_Enable" },
1143  { 0x00fe77, "MouseKeys_Accel_Enable" },
1144  { 0x00fe78, "Overlay1_Enable" },
1145  { 0x00fe79, "Overlay2_Enable" },
1146  { 0x00fe7a, "AudibleBell_Enable" },
1147  { 0x00fed0, "First_Virtual_Screen" },
1148  { 0x00fed1, "Prev_Virtual_Screen" },
1149  { 0x00fed2, "Next_Virtual_Screen" },
1150  { 0x00fed4, "Last_Virtual_Screen" },
1151  { 0x00fed5, "Terminate_Server" },
1152  { 0x00fee0, "Pointer_Left" },
1153  { 0x00fee1, "Pointer_Right" },
1154  { 0x00fee2, "Pointer_Up" },
1155  { 0x00fee3, "Pointer_Down" },
1156  { 0x00fee4, "Pointer_UpLeft" },
1157  { 0x00fee5, "Pointer_UpRight" },
1158  { 0x00fee6, "Pointer_DownLeft" },
1159  { 0x00fee7, "Pointer_DownRight" },
1160  { 0x00fee8, "Pointer_Button_Dflt" },
1161  { 0x00fee9, "Pointer_Button1" },
1162  { 0x00feea, "Pointer_Button2" },
1163  { 0x00feeb, "Pointer_Button3" },
1164  { 0x00feec, "Pointer_Button4" },
1165  { 0x00feed, "Pointer_Button5" },
1166  { 0x00feee, "Pointer_DblClick_Dflt" },
1167  { 0x00feef, "Pointer_DblClick1" },
1168  { 0x00fef0, "Pointer_DblClick2" },
1169  { 0x00fef1, "Pointer_DblClick3" },
1170  { 0x00fef2, "Pointer_DblClick4" },
1171  { 0x00fef3, "Pointer_DblClick5" },
1172  { 0x00fef4, "Pointer_Drag_Dflt" },
1173  { 0x00fef5, "Pointer_Drag1" },
1174  { 0x00fef6, "Pointer_Drag2" },
1175  { 0x00fef7, "Pointer_Drag3" },
1176  { 0x00fef8, "Pointer_Drag4" },
1177  { 0x00fef9, "Pointer_EnableKeys" },
1178  { 0x00fefa, "Pointer_Accelerate" },
1179  { 0x00fefb, "Pointer_DfltBtnNext" },
1180  { 0x00fefc, "Pointer_DfltBtnPrev" },
1181  { 0x00fefd, "Pointer_Drag5" },
1182  { 0x00ff08, "BackSpace" },
1183  { 0x00ff09, "Tab" },
1184  { 0x00ff0a, "Linefeed" },
1185  { 0x00ff0b, "Clear" },
1186  { 0x00ff0d, "Return" },
1187  { 0x00ff13, "Pause" },
1188  { 0x00ff14, "Scroll_Lock" },
1189  { 0x00ff15, "Sys_Req" },
1190  { 0x00ff1b, "Escape" },
1191  { 0x00ff20, "Multi_key" },
1192  { 0x00ff21, "Kanji" },
1193  { 0x00ff22, "Muhenkan" },
1194  { 0x00ff23, "Henkan" },
1195  { 0x00ff23, "Henkan_Mode" },
1196  { 0x00ff24, "Romaji" },
1197  { 0x00ff25, "Hiragana" },
1198  { 0x00ff26, "Katakana" },
1199  { 0x00ff27, "Hiragana_Katakana" },
1200  { 0x00ff28, "Zenkaku" },
1201  { 0x00ff29, "Hankaku" },
1202  { 0x00ff2a, "Zenkaku_Hankaku" },
1203  { 0x00ff2b, "Touroku" },
1204  { 0x00ff2c, "Massyo" },
1205  { 0x00ff2d, "Kana_Lock" },
1206  { 0x00ff2e, "Kana_Shift" },
1207  { 0x00ff2f, "Eisu_Shift" },
1208  { 0x00ff30, "Eisu_toggle" },
1209  { 0x00ff31, "Hangul" },
1210  { 0x00ff32, "Hangul_Start" },
1211  { 0x00ff33, "Hangul_End" },
1212  { 0x00ff34, "Hangul_Hanja" },
1213  { 0x00ff35, "Hangul_Jamo" },
1214  { 0x00ff36, "Hangul_Romaja" },
1215  { 0x00ff37, "Codeinput" },
1216  { 0x00ff38, "Hangul_Jeonja" },
1217  { 0x00ff39, "Hangul_Banja" },
1218  { 0x00ff3a, "Hangul_PreHanja" },
1219  { 0x00ff3b, "Hangul_PostHanja" },
1220  { 0x00ff3c, "SingleCandidate" },
1221  { 0x00ff3d, "MultipleCandidate" },
1222  { 0x00ff3e, "PreviousCandidate" },
1223  { 0x00ff3f, "Hangul_Special" },
1224  { 0x00ff50, "Home" },
1225  { 0x00ff51, "Left" },
1226  { 0x00ff52, "Up" },
1227  { 0x00ff53, "Right" },
1228  { 0x00ff54, "Down" },
1229  { 0x00ff55, "Page_Up" },
1230  { 0x00ff55, "Prior" },
1231  { 0x00ff56, "Page_Down" },
1232  { 0x00ff56, "Next" },
1233  { 0x00ff57, "End" },
1234  { 0x00ff58, "Begin" },
1235  { 0x00ff60, "Select" },
1236  { 0x00ff61, "Print" },
1237  { 0x00ff62, "Execute" },
1238  { 0x00ff63, "Insert" },
1239  { 0x00ff65, "Undo" },
1240  { 0x00ff66, "Redo" },
1241  { 0x00ff67, "Menu" },
1242  { 0x00ff68, "Find" },
1243  { 0x00ff69, "Cancel" },
1244  { 0x00ff6a, "Help" },
1245  { 0x00ff6b, "Break" },
1246  { 0x00ff7e, "Arabic_switch" },
1247  { 0x00ff7e, "Greek_switch" },
1248  { 0x00ff7e, "Hangul_switch" },
1249  { 0x00ff7e, "Hebrew_switch" },
1250  { 0x00ff7e, "ISO_Group_Shift" },
1251  { 0x00ff7e, "Mode_switch" },
1252  { 0x00ff7e, "kana_switch" },
1253  { 0x00ff7e, "script_switch" },
1254  { 0x00ff7f, "Num_Lock" },
1255  { 0x00ff80, "KP_Space" },
1256  { 0x00ff89, "KP_Tab" },
1257  { 0x00ff8d, "KP_Enter" },
1258  { 0x00ff91, "KP_F1" },
1259  { 0x00ff92, "KP_F2" },
1260  { 0x00ff93, "KP_F3" },
1261  { 0x00ff94, "KP_F4" },
1262  { 0x00ff95, "KP_Home" },
1263  { 0x00ff96, "KP_Left" },
1264  { 0x00ff97, "KP_Up" },
1265  { 0x00ff98, "KP_Right" },
1266  { 0x00ff99, "KP_Down" },
1267  { 0x00ff9a, "KP_Page_Up" },
1268  { 0x00ff9a, "KP_Prior" },
1269  { 0x00ff9b, "KP_Page_Down" },
1270  { 0x00ff9b, "KP_Next" },
1271  { 0x00ff9c, "KP_End" },
1272  { 0x00ff9d, "KP_Begin" },
1273  { 0x00ff9e, "KP_Insert" },
1274  { 0x00ff9f, "KP_Delete" },
1275  { 0x00ffaa, "KP_Multiply" },
1276  { 0x00ffab, "KP_Add" },
1277  { 0x00ffac, "KP_Separator" },
1278  { 0x00ffad, "KP_Subtract" },
1279  { 0x00ffae, "KP_Decimal" },
1280  { 0x00ffaf, "KP_Divide" },
1281  { 0x00ffb0, "KP_0" },
1282  { 0x00ffb1, "KP_1" },
1283  { 0x00ffb2, "KP_2" },
1284  { 0x00ffb3, "KP_3" },
1285  { 0x00ffb4, "KP_4" },
1286  { 0x00ffb5, "KP_5" },
1287  { 0x00ffb6, "KP_6" },
1288  { 0x00ffb7, "KP_7" },
1289  { 0x00ffb8, "KP_8" },
1290  { 0x00ffb9, "KP_9" },
1291  { 0x00ffbd, "KP_Equal" },
1292  { 0x00ffbe, "F1" },
1293  { 0x00ffbf, "F2" },
1294  { 0x00ffc0, "F3" },
1295  { 0x00ffc1, "F4" },
1296  { 0x00ffc2, "F5" },
1297  { 0x00ffc3, "F6" },
1298  { 0x00ffc4, "F7" },
1299  { 0x00ffc5, "F8" },
1300  { 0x00ffc6, "F9" },
1301  { 0x00ffc7, "F10" },
1302  { 0x00ffc8, "F11" },
1303  { 0x00ffc9, "F12" },
1304  { 0x00ffca, "F13" },
1305  { 0x00ffcb, "F14" },
1306  { 0x00ffcc, "F15" },
1307  { 0x00ffcd, "F16" },
1308  { 0x00ffce, "F17" },
1309  { 0x00ffcf, "F18" },
1310  { 0x00ffd0, "F19" },
1311  { 0x00ffd1, "F20" },
1312  { 0x00ffd2, "F21" },
1313  { 0x00ffd3, "F22" },
1314  { 0x00ffd4, "F23" },
1315  { 0x00ffd5, "F24" },
1316  { 0x00ffd6, "F25" },
1317  { 0x00ffd7, "F26" },
1318  { 0x00ffd8, "F27" },
1319  { 0x00ffd9, "F28" },
1320  { 0x00ffda, "F29" },
1321  { 0x00ffdb, "F30" },
1322  { 0x00ffdc, "F31" },
1323  { 0x00ffdd, "F32" },
1324  { 0x00ffde, "F33" },
1325  { 0x00ffdf, "F34" },
1326  { 0x00ffe0, "F35" },
1327  { 0x00ffe1, "Shift_L" },
1328  { 0x00ffe2, "Shift_R" },
1329  { 0x00ffe3, "Control_L" },
1330  { 0x00ffe4, "Control_R" },
1331  { 0x00ffe5, "Caps_Lock" },
1332  { 0x00ffe6, "Shift_Lock" },
1333  { 0x00ffe7, "Meta_L" },
1334  { 0x00ffe8, "Meta_R" },
1335  { 0x00ffe9, "Alt_L" },
1336  { 0x00ffea, "Alt_R" },
1337  { 0x00ffeb, "Super_L" },
1338  { 0x00ffec, "Super_R" },
1339  { 0x00ffed, "Hyper_L" },
1340  { 0x00ffee, "Hyper_R" },
1341  { 0x00ffff, "Delete" },
1342  { 0xffffff, "VoidSymbol" },
1343};
1344
1345#define GDK_NUM_KEYS (sizeof (gdk_keys_by_keyval) / sizeof (gdk_keys_by_keyval[0]))
1346
1347static struct gdk_key *gdk_keys_by_name = NULL;
1348
1349static int
1350gdk_keys_keyval_compare (const void *pkey, const void *pbase)
1351{
1352  return (*(int *) pkey) - ((struct gdk_key *) pbase)->keyval;
1353}
1354
1355gchar*
1356gdk_keyval_name (guint keyval)
1357{
1358  static gchar buf[100];
1359  struct gdk_key *found;
1360
1361  /* Check for directly encoded 24-bit UCS characters: */
1362  if ((keyval & 0xff000000) == 0x01000000)
1363    {
1364      g_sprintf (buf, "U+%.04X", (keyval & 0x00ffffff));
1365      return buf;
1366    }
1367
1368  found = bsearch (&keyval, gdk_keys_by_keyval,
1369                   GDK_NUM_KEYS, sizeof (struct gdk_key),
1370                   gdk_keys_keyval_compare);
1371
1372  if (found != NULL)
1373    {
1374      while ((found > gdk_keys_by_keyval) &&
1375             ((found - 1)->keyval == keyval))
1376        found--;
1377           
1378      return (gchar *) found->name;
1379    }
1380  else if (keyval != 0)
1381    {
1382      g_sprintf (buf, "%#x", keyval);
1383      return buf;
1384    }
1385
1386  return NULL;
1387}
1388
1389static int
1390gdk_key_compare_by_name (const void *a, const void *b)
1391{
1392  return strcmp (((const struct gdk_key *) a)->name, ((const struct gdk_key *) b)->name);
1393}
1394
1395static int
1396gdk_keys_name_compare (const void *pkey, const void *pbase)
1397{
1398  return strcmp ((const char *) pkey, ((const struct gdk_key *) pbase)->name);
1399}
1400
1401guint
1402gdk_keyval_from_name (const gchar *keyval_name)
1403{
1404  struct gdk_key *found;
1405
1406  g_return_val_if_fail (keyval_name != NULL, 0);
1407 
1408  if (gdk_keys_by_name == NULL)
1409    {
1410      gdk_keys_by_name = g_new (struct gdk_key, GDK_NUM_KEYS);
1411
1412      memcpy (gdk_keys_by_name, gdk_keys_by_keyval,
1413              GDK_NUM_KEYS * sizeof (struct gdk_key));
1414
1415      qsort (gdk_keys_by_name, GDK_NUM_KEYS, sizeof (struct gdk_key),
1416             gdk_key_compare_by_name);
1417    }
1418
1419  found = bsearch (keyval_name, gdk_keys_by_name,
1420                   GDK_NUM_KEYS, sizeof (struct gdk_key),
1421                   gdk_keys_name_compare);
1422  if (found != NULL)
1423    return found->keyval;
1424  else
1425    return GDK_VoidSymbol;
1426}
1427
Note: See TracBrowser for help on using the repository browser.