/[rdesktop]/sourceforge.net/trunk/rdesktop/vnc/x11stubs.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /sourceforge.net/trunk/rdesktop/vnc/x11stubs.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 333 - (hide annotations)
Thu Feb 20 12:14:13 2003 UTC (21 years, 4 months ago) by astrand
File MIME type: text/plain
File size: 43844 byte(s)
Added rdp2vnc support

1 astrand 333 /*
2    
3     This file fakes some of X11's key handling for the special purpose of running
4     a standalone rdp2vnc (without linking to X11)
5    
6     */
7    
8     #include "x11stubs.h"
9     #include <string.h>
10    
11     /* ignored */
12     int *display;
13    
14     typedef struct
15     {
16     const char *string;
17     KeySym keysym;
18     }
19     StringToKeysym_t;
20    
21     StringToKeysym_t StringToKeysym[] = {
22     #ifndef KEYSYMFAKE_H
23     {"VoidSymbol", XK_VoidSymbol},
24     #ifdef XK_MISCELLANY
25     {"BackSpace", XK_BackSpace},
26     {"Tab", XK_Tab},
27     {"Linefeed", XK_Linefeed},
28     {"Clear", XK_Clear},
29     {"Return", XK_Return},
30     {"Pause", XK_Pause},
31     {"Scroll_Lock", XK_Scroll_Lock},
32     {"Sys_Req", XK_Sys_Req},
33     {"Escape", XK_Escape},
34     {"Delete", XK_Delete},
35     {"Multi_key", XK_Multi_key},
36     {"SingleCandidate", XK_SingleCandidate},
37     {"MultipleCandidate", XK_MultipleCandidate},
38     {"PreviousCandidate", XK_PreviousCandidate},
39     {"Kanji", XK_Kanji},
40     {"Muhenkan", XK_Muhenkan},
41     {"Henkan_Mode", XK_Henkan_Mode},
42     {"Henkan", XK_Henkan},
43     {"Romaji", XK_Romaji},
44     {"Hiragana", XK_Hiragana},
45     {"Katakana", XK_Katakana},
46     {"Hiragana_Katakana", XK_Hiragana_Katakana},
47     {"Zenkaku", XK_Zenkaku},
48     {"Hankaku", XK_Hankaku},
49     {"Zenkaku_Hankaku", XK_Zenkaku_Hankaku},
50     {"Touroku", XK_Touroku},
51     {"Massyo", XK_Massyo},
52     {"Kana_Lock", XK_Kana_Lock},
53     {"Kana_Shift", XK_Kana_Shift},
54     {"Eisu_Shift", XK_Eisu_Shift},
55     {"Eisu_toggle", XK_Eisu_toggle},
56     {"Zen_Koho", XK_Zen_Koho},
57     {"Mae_Koho", XK_Mae_Koho},
58     {"Home", XK_Home},
59     {"Left", XK_Left},
60     {"Up", XK_Up},
61     {"Right", XK_Right},
62     {"Down", XK_Down},
63     {"Prior", XK_Prior},
64     {"Page_Up", XK_Page_Up},
65     {"Next", XK_Next},
66     {"Page_Down", XK_Page_Down},
67     {"End", XK_End},
68     {"Begin", XK_Begin},
69     {"Select", XK_Select},
70     {"Print", XK_Print},
71     {"Execute", XK_Execute},
72     {"Insert", XK_Insert},
73     {"Undo", XK_Undo},
74     {"Redo", XK_Redo},
75     {"Menu", XK_Menu},
76     {"Find", XK_Find},
77     {"Cancel", XK_Cancel},
78     {"Help", XK_Help},
79     {"Break", XK_Break},
80     {"Mode_switch", XK_Mode_switch},
81     {"script_switch", XK_script_switch},
82     {"Num_Lock", XK_Num_Lock},
83     {"KP_Space", XK_KP_Space},
84     {"KP_Tab", XK_KP_Tab},
85     {"KP_Enter", XK_KP_Enter},
86     {"KP_F1", XK_KP_F1},
87     {"KP_F2", XK_KP_F2},
88     {"KP_F3", XK_KP_F3},
89     {"KP_F4", XK_KP_F4},
90     {"KP_Home", XK_KP_Home},
91     {"KP_Left", XK_KP_Left},
92     {"KP_Up", XK_KP_Up},
93     {"KP_Right", XK_KP_Right},
94     {"KP_Down", XK_KP_Down},
95     {"KP_Prior", XK_KP_Prior},
96     {"KP_Page_Up", XK_KP_Page_Up},
97     {"KP_Next", XK_KP_Next},
98     {"KP_Page_Down", XK_KP_Page_Down},
99     {"KP_End", XK_KP_End},
100     {"KP_Begin", XK_KP_Begin},
101     {"KP_Insert", XK_KP_Insert},
102     {"KP_Delete", XK_KP_Delete},
103     {"KP_Equal", XK_KP_Equal},
104     {"KP_Multiply", XK_KP_Multiply},
105     {"KP_Add", XK_KP_Add},
106     {"KP_Separator", XK_KP_Separator},
107     {"KP_Subtract", XK_KP_Subtract},
108     {"KP_Decimal", XK_KP_Decimal},
109     {"KP_Divide", XK_KP_Divide},
110     {"KP_0", XK_KP_0},
111     {"KP_1", XK_KP_1},
112     {"KP_2", XK_KP_2},
113     {"KP_3", XK_KP_3},
114     {"KP_4", XK_KP_4},
115     {"KP_5", XK_KP_5},
116     {"KP_6", XK_KP_6},
117     {"KP_7", XK_KP_7},
118     {"KP_8", XK_KP_8},
119     {"KP_9", XK_KP_9},
120     {"F1", XK_F1},
121     {"F2", XK_F2},
122     {"F3", XK_F3},
123     {"F4", XK_F4},
124     {"F5", XK_F5},
125     {"F6", XK_F6},
126     {"F7", XK_F7},
127     {"F8", XK_F8},
128     {"F9", XK_F9},
129     {"F10", XK_F10},
130     {"F11", XK_F11},
131     {"L1", XK_L1},
132     {"F12", XK_F12},
133     {"L2", XK_L2},
134     {"F13", XK_F13},
135     {"L3", XK_L3},
136     {"F14", XK_F14},
137     {"L4", XK_L4},
138     {"F15", XK_F15},
139     {"L5", XK_L5},
140     {"F16", XK_F16},
141     {"L6", XK_L6},
142     {"F17", XK_F17},
143     {"L7", XK_L7},
144     {"F18", XK_F18},
145     {"L8", XK_L8},
146     {"F19", XK_F19},
147     {"L9", XK_L9},
148     {"F20", XK_F20},
149     {"L10", XK_L10},
150     {"F21", XK_F21},
151     {"R1", XK_R1},
152     {"F22", XK_F22},
153     {"R2", XK_R2},
154     {"F23", XK_F23},
155     {"R3", XK_R3},
156     {"F24", XK_F24},
157     {"R4", XK_R4},
158     {"F25", XK_F25},
159     {"R5", XK_R5},
160     {"F26", XK_F26},
161     {"R6", XK_R6},
162     {"F27", XK_F27},
163     {"R7", XK_R7},
164     {"F28", XK_F28},
165     {"R8", XK_R8},
166     {"F29", XK_F29},
167     {"R9", XK_R9},
168     {"F30", XK_F30},
169     {"R10", XK_R10},
170     {"F31", XK_F31},
171     {"R11", XK_R11},
172     {"F32", XK_F32},
173     {"R12", XK_R12},
174     {"F33", XK_F33},
175     {"R13", XK_R13},
176     {"F34", XK_F34},
177     {"R14", XK_R14},
178     {"F35", XK_F35},
179     {"R15", XK_R15},
180     {"Shift_L", XK_Shift_L},
181     {"Shift_R", XK_Shift_R},
182     {"Control_L", XK_Control_L},
183     {"Control_R", XK_Control_R},
184     {"Caps_Lock", XK_Caps_Lock},
185     {"Shift_Lock", XK_Shift_Lock},
186     {"Meta_L", XK_Meta_L},
187     {"Meta_R", XK_Meta_R},
188     {"Alt_L", XK_Alt_L},
189     {"Alt_R", XK_Alt_R},
190     {"Super_L", XK_Super_L},
191     {"Super_R", XK_Super_R},
192     {"Hyper_L", XK_Hyper_L},
193     {"Hyper_R", XK_Hyper_R},
194     #endif /* XK_MISCELLANY */
195     #ifdef XK_XKB_KEYS
196     {"ISO_Lock", XK_ISO_Lock},
197     {"ISO_Level2_Latch", XK_ISO_Level2_Latch},
198     {"ISO_Level3_Shift", XK_ISO_Level3_Shift},
199     {"ISO_Level3_Latch", XK_ISO_Level3_Latch},
200     {"ISO_Level3_Lock", XK_ISO_Level3_Lock},
201     {"ISO_Group_Shift", XK_ISO_Group_Shift},
202     {"ISO_Group_Latch", XK_ISO_Group_Latch},
203     {"ISO_Group_Lock", XK_ISO_Group_Lock},
204     {"ISO_Next_Group", XK_ISO_Next_Group},
205     {"ISO_Next_Group_Lock", XK_ISO_Next_Group_Lock},
206     {"ISO_Prev_Group", XK_ISO_Prev_Group},
207     {"ISO_Prev_Group_Lock", XK_ISO_Prev_Group_Lock},
208     {"ISO_First_Group", XK_ISO_First_Group},
209     {"ISO_First_Group_Lock", XK_ISO_First_Group_Lock},
210     {"ISO_Last_Group", XK_ISO_Last_Group},
211     {"ISO_Last_Group_Lock", XK_ISO_Last_Group_Lock},
212     {"ISO_Left_Tab", XK_ISO_Left_Tab},
213     {"ISO_Move_Line_Up", XK_ISO_Move_Line_Up},
214     {"ISO_Move_Line_Down", XK_ISO_Move_Line_Down},
215     {"ISO_Partial_Line_Up", XK_ISO_Partial_Line_Up},
216     {"ISO_Partial_Line_Down", XK_ISO_Partial_Line_Down},
217     {"ISO_Partial_Space_Left", XK_ISO_Partial_Space_Left},
218     {"ISO_Partial_Space_Right", XK_ISO_Partial_Space_Right},
219     {"ISO_Set_Margin_Left", XK_ISO_Set_Margin_Left},
220     {"ISO_Set_Margin_Right", XK_ISO_Set_Margin_Right},
221     {"ISO_Release_Margin_Left", XK_ISO_Release_Margin_Left},
222     {"ISO_Release_Margin_Right", XK_ISO_Release_Margin_Right},
223     {"ISO_Release_Both_Margins", XK_ISO_Release_Both_Margins},
224     {"ISO_Fast_Cursor_Left", XK_ISO_Fast_Cursor_Left},
225     {"ISO_Fast_Cursor_Right", XK_ISO_Fast_Cursor_Right},
226     {"ISO_Fast_Cursor_Up", XK_ISO_Fast_Cursor_Up},
227     {"ISO_Fast_Cursor_Down", XK_ISO_Fast_Cursor_Down},
228     {"ISO_Continuous_Underline", XK_ISO_Continuous_Underline},
229     {"ISO_Discontinuous_Underline", XK_ISO_Discontinuous_Underline},
230     {"ISO_Emphasize", XK_ISO_Emphasize},
231     {"ISO_Center_Object", XK_ISO_Center_Object},
232     {"ISO_Enter", XK_ISO_Enter},
233     {"dead_grave", XK_dead_grave},
234     {"dead_acute", XK_dead_acute},
235     {"dead_circumflex", XK_dead_circumflex},
236     {"dead_tilde", XK_dead_tilde},
237     {"dead_macron", XK_dead_macron},
238     {"dead_breve", XK_dead_breve},
239     {"dead_abovedot", XK_dead_abovedot},
240     {"dead_diaeresis", XK_dead_diaeresis},
241     {"dead_abovering", XK_dead_abovering},
242     {"dead_doubleacute", XK_dead_doubleacute},
243     {"dead_caron", XK_dead_caron},
244     {"dead_cedilla", XK_dead_cedilla},
245     {"dead_ogonek", XK_dead_ogonek},
246     {"dead_iota", XK_dead_iota},
247     {"dead_voiced_sound", XK_dead_voiced_sound},
248     {"dead_semivoiced_sound", XK_dead_semivoiced_sound},
249     {"dead_belowdot", XK_dead_belowdot},
250     {"First_Virtual_Screen", XK_First_Virtual_Screen},
251     {"Prev_Virtual_Screen", XK_Prev_Virtual_Screen},
252     {"Next_Virtual_Screen", XK_Next_Virtual_Screen},
253     {"Last_Virtual_Screen", XK_Last_Virtual_Screen},
254     {"Terminate_Server", XK_Terminate_Server},
255     {"AccessX_Enable", XK_AccessX_Enable},
256     {"AccessX_Feedback_Enable", XK_AccessX_Feedback_Enable},
257     {"RepeatKeys_Enable", XK_RepeatKeys_Enable},
258     {"SlowKeys_Enable", XK_SlowKeys_Enable},
259     {"BounceKeys_Enable", XK_BounceKeys_Enable},
260     {"StickyKeys_Enable", XK_StickyKeys_Enable},
261     {"MouseKeys_Enable", XK_MouseKeys_Enable},
262     {"MouseKeys_Accel_Enable", XK_MouseKeys_Accel_Enable},
263     {"Overlay1_Enable", XK_Overlay1_Enable},
264     {"Overlay2_Enable", XK_Overlay2_Enable},
265     {"AudibleBell_Enable", XK_AudibleBell_Enable},
266     {"Pointer_Left", XK_Pointer_Left},
267     {"Pointer_Right", XK_Pointer_Right},
268     {"Pointer_Up", XK_Pointer_Up},
269     {"Pointer_Down", XK_Pointer_Down},
270     {"Pointer_UpLeft", XK_Pointer_UpLeft},
271     {"Pointer_UpRight", XK_Pointer_UpRight},
272     {"Pointer_DownLeft", XK_Pointer_DownLeft},
273     {"Pointer_DownRight", XK_Pointer_DownRight},
274     {"Pointer_Button_Dflt", XK_Pointer_Button_Dflt},
275     {"Pointer_Button1", XK_Pointer_Button1},
276     {"Pointer_Button2", XK_Pointer_Button2},
277     {"Pointer_Button3", XK_Pointer_Button3},
278     {"Pointer_Button4", XK_Pointer_Button4},
279     {"Pointer_Button5", XK_Pointer_Button5},
280     {"Pointer_DblClick_Dflt", XK_Pointer_DblClick_Dflt},
281     {"Pointer_DblClick1", XK_Pointer_DblClick1},
282     {"Pointer_DblClick2", XK_Pointer_DblClick2},
283     {"Pointer_DblClick3", XK_Pointer_DblClick3},
284     {"Pointer_DblClick4", XK_Pointer_DblClick4},
285     {"Pointer_DblClick5", XK_Pointer_DblClick5},
286     {"Pointer_Drag_Dflt", XK_Pointer_Drag_Dflt},
287     {"Pointer_Drag1", XK_Pointer_Drag1},
288     {"Pointer_Drag2", XK_Pointer_Drag2},
289     {"Pointer_Drag3", XK_Pointer_Drag3},
290     {"Pointer_Drag4", XK_Pointer_Drag4},
291     {"Pointer_Drag5", XK_Pointer_Drag5},
292     {"Pointer_EnableKeys", XK_Pointer_EnableKeys},
293     {"Pointer_Accelerate", XK_Pointer_Accelerate},
294     {"Pointer_DfltBtnNext", XK_Pointer_DfltBtnNext},
295     {"Pointer_DfltBtnPrev", XK_Pointer_DfltBtnPrev},
296     #endif
297     #ifdef XK_3270
298     {"3270_Duplicate", XK_3270_Duplicate},
299     {"3270_FieldMark", XK_3270_FieldMark},
300     {"3270_Right2", XK_3270_Right2},
301     {"3270_Left2", XK_3270_Left2},
302     {"3270_BackTab", XK_3270_BackTab},
303     {"3270_EraseEOF", XK_3270_EraseEOF},
304     {"3270_EraseInput", XK_3270_EraseInput},
305     {"3270_Reset", XK_3270_Reset},
306     {"3270_Quit", XK_3270_Quit},
307     {"3270_PA1", XK_3270_PA1},
308     {"3270_PA2", XK_3270_PA2},
309     {"3270_PA3", XK_3270_PA3},
310     {"3270_Test", XK_3270_Test},
311     {"3270_Attn", XK_3270_Attn},
312     {"3270_CursorBlink", XK_3270_CursorBlink},
313     {"3270_AltCursor", XK_3270_AltCursor},
314     {"3270_KeyClick", XK_3270_KeyClick},
315     {"3270_Jump", XK_3270_Jump},
316     {"3270_Ident", XK_3270_Ident},
317     {"3270_Rule", XK_3270_Rule},
318     {"3270_Copy", XK_3270_Copy},
319     {"3270_Play", XK_3270_Play},
320     {"3270_Setup", XK_3270_Setup},
321     {"3270_Record", XK_3270_Record},
322     {"3270_ChangeScreen", XK_3270_ChangeScreen},
323     {"3270_DeleteWord", XK_3270_DeleteWord},
324     {"3270_ExSelect", XK_3270_ExSelect},
325     {"3270_CursorSelect", XK_3270_CursorSelect},
326     {"3270_PrintScreen", XK_3270_PrintScreen},
327     {"3270_Enter", XK_3270_Enter},
328     #endif
329     #ifdef XK_LATIN1
330     {"space", XK_space},
331     {"exclam", XK_exclam},
332     {"quotedbl", XK_quotedbl},
333     {"numbersign", XK_numbersign},
334     {"dollar", XK_dollar},
335     {"percent", XK_percent},
336     {"ampersand", XK_ampersand},
337     {"apostrophe", XK_apostrophe},
338     {"quoteright", XK_quoteright},
339     {"parenleft", XK_parenleft},
340     {"parenright", XK_parenright},
341     {"asterisk", XK_asterisk},
342     {"plus", XK_plus},
343     {"comma", XK_comma},
344     {"minus", XK_minus},
345     {"period", XK_period},
346     {"slash", XK_slash},
347     {"0", XK_0},
348     {"1", XK_1},
349     {"2", XK_2},
350     {"3", XK_3},
351     {"4", XK_4},
352     {"5", XK_5},
353     {"6", XK_6},
354     {"7", XK_7},
355     {"8", XK_8},
356     {"9", XK_9},
357     {"colon", XK_colon},
358     {"semicolon", XK_semicolon},
359     {"less", XK_less},
360     {"equal", XK_equal},
361     {"greater", XK_greater},
362     {"question", XK_question},
363     {"at", XK_at},
364     {"A", XK_A},
365     {"B", XK_B},
366     {"C", XK_C},
367     {"D", XK_D},
368     {"E", XK_E},
369     {"F", XK_F},
370     {"G", XK_G},
371     {"H", XK_H},
372     {"I", XK_I},
373     {"J", XK_J},
374     {"K", XK_K},
375     {"L", XK_L},
376     {"M", XK_M},
377     {"N", XK_N},
378     {"O", XK_O},
379     {"P", XK_P},
380     {"Q", XK_Q},
381     {"R", XK_R},
382     {"S", XK_S},
383     {"T", XK_T},
384     {"U", XK_U},
385     {"V", XK_V},
386     {"W", XK_W},
387     {"X", XK_X},
388     {"Y", XK_Y},
389     {"Z", XK_Z},
390     {"bracketleft", XK_bracketleft},
391     {"backslash", XK_backslash},
392     {"bracketright", XK_bracketright},
393     {"asciicircum", XK_asciicircum},
394     {"underscore", XK_underscore},
395     {"grave", XK_grave},
396     {"quoteleft", XK_quoteleft},
397     {"a", XK_a},
398     {"b", XK_b},
399     {"c", XK_c},
400     {"d", XK_d},
401     {"e", XK_e},
402     {"f", XK_f},
403     {"g", XK_g},
404     {"h", XK_h},
405     {"i", XK_i},
406     {"j", XK_j},
407     {"k", XK_k},
408     {"l", XK_l},
409     {"m", XK_m},
410     {"n", XK_n},
411     {"o", XK_o},
412     {"p", XK_p},
413     {"q", XK_q},
414     {"r", XK_r},
415     {"s", XK_s},
416     {"t", XK_t},
417     {"u", XK_u},
418     {"v", XK_v},
419     {"w", XK_w},
420     {"x", XK_x},
421     {"y", XK_y},
422     {"z", XK_z},
423     {"braceleft", XK_braceleft},
424     {"bar", XK_bar},
425     {"braceright", XK_braceright},
426     {"asciitilde", XK_asciitilde},
427     {"nobreakspace", XK_nobreakspace},
428     {"exclamdown", XK_exclamdown},
429     {"cent", XK_cent},
430     {"sterling", XK_sterling},
431     {"currency", XK_currency},
432     {"yen", XK_yen},
433     {"brokenbar", XK_brokenbar},
434     {"section", XK_section},
435     {"diaeresis", XK_diaeresis},
436     {"copyright", XK_copyright},
437     {"ordfeminine", XK_ordfeminine},
438     {"guillemotleft", XK_guillemotleft},
439     {"notsign", XK_notsign},
440     {"hyphen", XK_hyphen},
441     {"registered", XK_registered},
442     {"macron", XK_macron},
443     {"degree", XK_degree},
444     {"plusminus", XK_plusminus},
445     {"twosuperior", XK_twosuperior},
446     {"threesuperior", XK_threesuperior},
447     {"acute", XK_acute},
448     {"mu", XK_mu},
449     {"paragraph", XK_paragraph},
450     {"periodcentered", XK_periodcentered},
451     {"cedilla", XK_cedilla},
452     {"onesuperior", XK_onesuperior},
453     {"masculine", XK_masculine},
454     {"guillemotright", XK_guillemotright},
455     {"onequarter", XK_onequarter},
456     {"onehalf", XK_onehalf},
457     {"threequarters", XK_threequarters},
458     {"questiondown", XK_questiondown},
459     {"Agrave", XK_Agrave},
460     {"Aacute", XK_Aacute},
461     {"Acircumflex", XK_Acircumflex},
462     {"Atilde", XK_Atilde},
463     {"Adiaeresis", XK_Adiaeresis},
464     {"Aring", XK_Aring},
465     {"AE", XK_AE},
466     {"Ccedilla", XK_Ccedilla},
467     {"Egrave", XK_Egrave},
468     {"Eacute", XK_Eacute},
469     {"Ecircumflex", XK_Ecircumflex},
470     {"Ediaeresis", XK_Ediaeresis},
471     {"Igrave", XK_Igrave},
472     {"Iacute", XK_Iacute},
473     {"Icircumflex", XK_Icircumflex},
474     {"Idiaeresis", XK_Idiaeresis},
475     {"ETH", XK_ETH},
476     {"Eth", XK_Eth},
477     {"Ntilde", XK_Ntilde},
478     {"Ograve", XK_Ograve},
479     {"Oacute", XK_Oacute},
480     {"Ocircumflex", XK_Ocircumflex},
481     {"Otilde", XK_Otilde},
482     {"Odiaeresis", XK_Odiaeresis},
483     {"multiply", XK_multiply},
484     {"Ooblique", XK_Ooblique},
485     {"Ugrave", XK_Ugrave},
486     {"Uacute", XK_Uacute},
487     {"Ucircumflex", XK_Ucircumflex},
488     {"Udiaeresis", XK_Udiaeresis},
489     {"Yacute", XK_Yacute},
490     {"THORN", XK_THORN},
491     {"Thorn", XK_Thorn},
492     {"ssharp", XK_ssharp},
493     {"agrave", XK_agrave},
494     {"aacute", XK_aacute},
495     {"acircumflex", XK_acircumflex},
496     {"atilde", XK_atilde},
497     {"adiaeresis", XK_adiaeresis},
498     {"aring", XK_aring},
499     {"ae", XK_ae},
500     {"ccedilla", XK_ccedilla},
501     {"egrave", XK_egrave},
502     {"eacute", XK_eacute},
503     {"ecircumflex", XK_ecircumflex},
504     {"ediaeresis", XK_ediaeresis},
505     {"igrave", XK_igrave},
506     {"iacute", XK_iacute},
507     {"icircumflex", XK_icircumflex},
508     {"idiaeresis", XK_idiaeresis},
509     {"eth", XK_eth},
510     {"ntilde", XK_ntilde},
511     {"ograve", XK_ograve},
512     {"oacute", XK_oacute},
513     {"ocircumflex", XK_ocircumflex},
514     {"otilde", XK_otilde},
515     {"odiaeresis", XK_odiaeresis},
516     {"division", XK_division},
517     {"oslash", XK_oslash},
518     {"ugrave", XK_ugrave},
519     {"uacute", XK_uacute},
520     {"ucircumflex", XK_ucircumflex},
521     {"udiaeresis", XK_udiaeresis},
522     {"yacute", XK_yacute},
523     {"thorn", XK_thorn},
524     {"ydiaeresis", XK_ydiaeresis},
525     #endif /* XK_LATIN1 */
526     #ifdef XK_LATIN2
527     {"Aogonek", XK_Aogonek},
528     {"breve", XK_breve},
529     {"Lstroke", XK_Lstroke},
530     {"Lcaron", XK_Lcaron},
531     {"Sacute", XK_Sacute},
532     {"Scaron", XK_Scaron},
533     {"Scedilla", XK_Scedilla},
534     {"Tcaron", XK_Tcaron},
535     {"Zacute", XK_Zacute},
536     {"Zcaron", XK_Zcaron},
537     {"Zabovedot", XK_Zabovedot},
538     {"aogonek", XK_aogonek},
539     {"ogonek", XK_ogonek},
540     {"lstroke", XK_lstroke},
541     {"lcaron", XK_lcaron},
542     {"sacute", XK_sacute},
543     {"caron", XK_caron},
544     {"scaron", XK_scaron},
545     {"scedilla", XK_scedilla},
546     {"tcaron", XK_tcaron},
547     {"zacute", XK_zacute},
548     {"doubleacute", XK_doubleacute},
549     {"zcaron", XK_zcaron},
550     {"zabovedot", XK_zabovedot},
551     {"Racute", XK_Racute},
552     {"Abreve", XK_Abreve},
553     {"Lacute", XK_Lacute},
554     {"Cacute", XK_Cacute},
555     {"Ccaron", XK_Ccaron},
556     {"Eogonek", XK_Eogonek},
557     {"Ecaron", XK_Ecaron},
558     {"Dcaron", XK_Dcaron},
559     {"Dstroke", XK_Dstroke},
560     {"Nacute", XK_Nacute},
561     {"Ncaron", XK_Ncaron},
562     {"Odoubleacute", XK_Odoubleacute},
563     {"Rcaron", XK_Rcaron},
564     {"Uring", XK_Uring},
565     {"Udoubleacute", XK_Udoubleacute},
566     {"Tcedilla", XK_Tcedilla},
567     {"racute", XK_racute},
568     {"abreve", XK_abreve},
569     {"lacute", XK_lacute},
570     {"cacute", XK_cacute},
571     {"ccaron", XK_ccaron},
572     {"eogonek", XK_eogonek},
573     {"ecaron", XK_ecaron},
574     {"dcaron", XK_dcaron},
575     {"dstroke", XK_dstroke},
576     {"nacute", XK_nacute},
577     {"ncaron", XK_ncaron},
578     {"odoubleacute", XK_odoubleacute},
579     {"udoubleacute", XK_udoubleacute},
580     {"rcaron", XK_rcaron},
581     {"uring", XK_uring},
582     {"tcedilla", XK_tcedilla},
583     {"abovedot", XK_abovedot},
584     #endif /* XK_LATIN2 */
585     #ifdef XK_LATIN3
586     {"Hstroke", XK_Hstroke},
587     {"Hcircumflex", XK_Hcircumflex},
588     {"Iabovedot", XK_Iabovedot},
589     {"Gbreve", XK_Gbreve},
590     {"Jcircumflex", XK_Jcircumflex},
591     {"hstroke", XK_hstroke},
592     {"hcircumflex", XK_hcircumflex},
593     {"idotless", XK_idotless},
594     {"gbreve", XK_gbreve},
595     {"jcircumflex", XK_jcircumflex},
596     {"Cabovedot", XK_Cabovedot},
597     {"Ccircumflex", XK_Ccircumflex},
598     {"Gabovedot", XK_Gabovedot},
599     {"Gcircumflex", XK_Gcircumflex},
600     {"Ubreve", XK_Ubreve},
601     {"Scircumflex", XK_Scircumflex},
602     {"cabovedot", XK_cabovedot},
603     {"ccircumflex", XK_ccircumflex},
604     {"gabovedot", XK_gabovedot},
605     {"gcircumflex", XK_gcircumflex},
606     {"ubreve", XK_ubreve},
607     {"scircumflex", XK_scircumflex},
608     #endif /* XK_LATIN3 */
609     #ifdef XK_LATIN4
610     {"kra", XK_kra},
611     {"kappa", XK_kappa},
612     {"Rcedilla", XK_Rcedilla},
613     {"Itilde", XK_Itilde},
614     {"Lcedilla", XK_Lcedilla},
615     {"Emacron", XK_Emacron},
616     {"Gcedilla", XK_Gcedilla},
617     {"Tslash", XK_Tslash},
618     {"rcedilla", XK_rcedilla},
619     {"itilde", XK_itilde},
620     {"lcedilla", XK_lcedilla},
621     {"emacron", XK_emacron},
622     {"gcedilla", XK_gcedilla},
623     {"tslash", XK_tslash},
624     {"ENG", XK_ENG},
625     {"eng", XK_eng},
626     {"Amacron", XK_Amacron},
627     {"Iogonek", XK_Iogonek},
628     {"Eabovedot", XK_Eabovedot},
629     {"Imacron", XK_Imacron},
630     {"Ncedilla", XK_Ncedilla},
631     {"Omacron", XK_Omacron},
632     {"Kcedilla", XK_Kcedilla},
633     {"Uogonek", XK_Uogonek},
634     {"Utilde", XK_Utilde},
635     {"Umacron", XK_Umacron},
636     {"amacron", XK_amacron},
637     {"iogonek", XK_iogonek},
638     {"eabovedot", XK_eabovedot},
639     {"imacron", XK_imacron},
640     {"ncedilla", XK_ncedilla},
641     {"omacron", XK_omacron},
642     {"kcedilla", XK_kcedilla},
643     {"uogonek", XK_uogonek},
644     {"utilde", XK_utilde},
645     {"umacron", XK_umacron},
646     #endif /* XK_LATIN4 */
647     #ifdef XK_KATAKANA
648     {"overline", XK_overline},
649     {"kana_fullstop", XK_kana_fullstop},
650     {"kana_openingbracket", XK_kana_openingbracket},
651     {"kana_closingbracket", XK_kana_closingbracket},
652     {"kana_comma", XK_kana_comma},
653     {"kana_conjunctive", XK_kana_conjunctive},
654     {"kana_middledot", XK_kana_middledot},
655     {"kana_WO", XK_kana_WO},
656     {"kana_a", XK_kana_a},
657     {"kana_i", XK_kana_i},
658     {"kana_u", XK_kana_u},
659     {"kana_e", XK_kana_e},
660     {"kana_o", XK_kana_o},
661     {"kana_ya", XK_kana_ya},
662     {"kana_yu", XK_kana_yu},
663     {"kana_yo", XK_kana_yo},
664     {"kana_tsu", XK_kana_tsu},
665     {"kana_tu", XK_kana_tu},
666     {"prolongedsound", XK_prolongedsound},
667     {"kana_A", XK_kana_A},
668     {"kana_I", XK_kana_I},
669     {"kana_U", XK_kana_U},
670     {"kana_E", XK_kana_E},
671     {"kana_O", XK_kana_O},
672     {"kana_KA", XK_kana_KA},
673     {"kana_KI", XK_kana_KI},
674     {"kana_KU", XK_kana_KU},
675     {"kana_KE", XK_kana_KE},
676     {"kana_KO", XK_kana_KO},
677     {"kana_SA", XK_kana_SA},
678     {"kana_SHI", XK_kana_SHI},
679     {"kana_SU", XK_kana_SU},
680     {"kana_SE", XK_kana_SE},
681     {"kana_SO", XK_kana_SO},
682     {"kana_TA", XK_kana_TA},
683     {"kana_CHI", XK_kana_CHI},
684     {"kana_TI", XK_kana_TI},
685     {"kana_TSU", XK_kana_TSU},
686     {"kana_TU", XK_kana_TU},
687     {"kana_TE", XK_kana_TE},
688     {"kana_TO", XK_kana_TO},
689     {"kana_NA", XK_kana_NA},
690     {"kana_NI", XK_kana_NI},
691     {"kana_NU", XK_kana_NU},
692     {"kana_NE", XK_kana_NE},
693     {"kana_NO", XK_kana_NO},
694     {"kana_HA", XK_kana_HA},
695     {"kana_HI", XK_kana_HI},
696     {"kana_FU", XK_kana_FU},
697     {"kana_HU", XK_kana_HU},
698     {"kana_HE", XK_kana_HE},
699     {"kana_HO", XK_kana_HO},
700     {"kana_MA", XK_kana_MA},
701     {"kana_MI", XK_kana_MI},
702     {"kana_MU", XK_kana_MU},
703     {"kana_ME", XK_kana_ME},
704     {"kana_MO", XK_kana_MO},
705     {"kana_YA", XK_kana_YA},
706     {"kana_YU", XK_kana_YU},
707     {"kana_YO", XK_kana_YO},
708     {"kana_RA", XK_kana_RA},
709     {"kana_RI", XK_kana_RI},
710     {"kana_RU", XK_kana_RU},
711     {"kana_RE", XK_kana_RE},
712     {"kana_RO", XK_kana_RO},
713     {"kana_WA", XK_kana_WA},
714     {"kana_N", XK_kana_N},
715     {"voicedsound", XK_voicedsound},
716     {"semivoicedsound", XK_semivoicedsound},
717     {"kana_switch", XK_kana_switch},
718     #endif /* XK_KATAKANA */
719     #ifdef XK_ARABIC
720     {"Arabic_comma", XK_Arabic_comma},
721     {"Arabic_semicolon", XK_Arabic_semicolon},
722     {"Arabic_question_mark", XK_Arabic_question_mark},
723     {"Arabic_hamza", XK_Arabic_hamza},
724     {"Arabic_maddaonalef", XK_Arabic_maddaonalef},
725     {"Arabic_hamzaonalef", XK_Arabic_hamzaonalef},
726     {"Arabic_hamzaonwaw", XK_Arabic_hamzaonwaw},
727     {"Arabic_hamzaunderalef", XK_Arabic_hamzaunderalef},
728     {"Arabic_hamzaonyeh", XK_Arabic_hamzaonyeh},
729     {"Arabic_alef", XK_Arabic_alef},
730     {"Arabic_beh", XK_Arabic_beh},
731     {"Arabic_tehmarbuta", XK_Arabic_tehmarbuta},
732     {"Arabic_teh", XK_Arabic_teh},
733     {"Arabic_theh", XK_Arabic_theh},
734     {"Arabic_jeem", XK_Arabic_jeem},
735     {"Arabic_hah", XK_Arabic_hah},
736     {"Arabic_khah", XK_Arabic_khah},
737     {"Arabic_dal", XK_Arabic_dal},
738     {"Arabic_thal", XK_Arabic_thal},
739     {"Arabic_ra", XK_Arabic_ra},
740     {"Arabic_zain", XK_Arabic_zain},
741     {"Arabic_seen", XK_Arabic_seen},
742     {"Arabic_sheen", XK_Arabic_sheen},
743     {"Arabic_sad", XK_Arabic_sad},
744     {"Arabic_dad", XK_Arabic_dad},
745     {"Arabic_tah", XK_Arabic_tah},
746     {"Arabic_zah", XK_Arabic_zah},
747     {"Arabic_ain", XK_Arabic_ain},
748     {"Arabic_ghain", XK_Arabic_ghain},
749     {"Arabic_tatweel", XK_Arabic_tatweel},
750     {"Arabic_feh", XK_Arabic_feh},
751     {"Arabic_qaf", XK_Arabic_qaf},
752     {"Arabic_kaf", XK_Arabic_kaf},
753     {"Arabic_lam", XK_Arabic_lam},
754     {"Arabic_meem", XK_Arabic_meem},
755     {"Arabic_noon", XK_Arabic_noon},
756     {"Arabic_ha", XK_Arabic_ha},
757     {"Arabic_heh", XK_Arabic_heh},
758     {"Arabic_waw", XK_Arabic_waw},
759     {"Arabic_alefmaksura", XK_Arabic_alefmaksura},
760     {"Arabic_yeh", XK_Arabic_yeh},
761     {"Arabic_fathatan", XK_Arabic_fathatan},
762     {"Arabic_dammatan", XK_Arabic_dammatan},
763     {"Arabic_kasratan", XK_Arabic_kasratan},
764     {"Arabic_fatha", XK_Arabic_fatha},
765     {"Arabic_damma", XK_Arabic_damma},
766     {"Arabic_kasra", XK_Arabic_kasra},
767     {"Arabic_shadda", XK_Arabic_shadda},
768     {"Arabic_sukun", XK_Arabic_sukun},
769     {"Arabic_switch", XK_Arabic_switch},
770     #endif /* XK_ARABIC */
771     #ifdef XK_CYRILLIC
772     {"Serbian_dje", XK_Serbian_dje},
773     {"Macedonia_gje", XK_Macedonia_gje},
774     {"Cyrillic_io", XK_Cyrillic_io},
775     {"Ukrainian_ie", XK_Ukrainian_ie},
776     {"Ukranian_je", XK_Ukranian_je},
777     {"Macedonia_dse", XK_Macedonia_dse},
778     {"Ukrainian_i", XK_Ukrainian_i},
779     {"Ukranian_i", XK_Ukranian_i},
780     {"Ukrainian_yi", XK_Ukrainian_yi},
781     {"Ukranian_yi", XK_Ukranian_yi},
782     {"Cyrillic_je", XK_Cyrillic_je},
783     {"Serbian_je", XK_Serbian_je},
784     {"Cyrillic_lje", XK_Cyrillic_lje},
785     {"Serbian_lje", XK_Serbian_lje},
786     {"Cyrillic_nje", XK_Cyrillic_nje},
787     {"Serbian_nje", XK_Serbian_nje},
788     {"Serbian_tshe", XK_Serbian_tshe},
789     {"Macedonia_kje", XK_Macedonia_kje},
790     {"Byelorussian_shortu", XK_Byelorussian_shortu},
791     {"Cyrillic_dzhe", XK_Cyrillic_dzhe},
792     {"Serbian_dze", XK_Serbian_dze},
793     {"numerosign", XK_numerosign},
794     {"Serbian_DJE", XK_Serbian_DJE},
795     {"Macedonia_GJE", XK_Macedonia_GJE},
796     {"Cyrillic_IO", XK_Cyrillic_IO},
797     {"Ukrainian_IE", XK_Ukrainian_IE},
798     {"Ukranian_JE", XK_Ukranian_JE},
799     {"Macedonia_DSE", XK_Macedonia_DSE},
800     {"Ukrainian_I", XK_Ukrainian_I},
801     {"Ukranian_I", XK_Ukranian_I},
802     {"Ukrainian_YI", XK_Ukrainian_YI},
803     {"Ukranian_YI", XK_Ukranian_YI},
804     {"Cyrillic_JE", XK_Cyrillic_JE},
805     {"Serbian_JE", XK_Serbian_JE},
806     {"Cyrillic_LJE", XK_Cyrillic_LJE},
807     {"Serbian_LJE", XK_Serbian_LJE},
808     {"Cyrillic_NJE", XK_Cyrillic_NJE},
809     {"Serbian_NJE", XK_Serbian_NJE},
810     {"Serbian_TSHE", XK_Serbian_TSHE},
811     {"Macedonia_KJE", XK_Macedonia_KJE},
812     {"Byelorussian_SHORTU", XK_Byelorussian_SHORTU},
813     {"Cyrillic_DZHE", XK_Cyrillic_DZHE},
814     {"Serbian_DZE", XK_Serbian_DZE},
815     {"Cyrillic_yu", XK_Cyrillic_yu},
816     {"Cyrillic_a", XK_Cyrillic_a},
817     {"Cyrillic_be", XK_Cyrillic_be},
818     {"Cyrillic_tse", XK_Cyrillic_tse},
819     {"Cyrillic_de", XK_Cyrillic_de},
820     {"Cyrillic_ie", XK_Cyrillic_ie},
821     {"Cyrillic_ef", XK_Cyrillic_ef},
822     {"Cyrillic_ghe", XK_Cyrillic_ghe},
823     {"Cyrillic_ha", XK_Cyrillic_ha},
824     {"Cyrillic_i", XK_Cyrillic_i},
825     {"Cyrillic_shorti", XK_Cyrillic_shorti},
826     {"Cyrillic_ka", XK_Cyrillic_ka},
827     {"Cyrillic_el", XK_Cyrillic_el},
828     {"Cyrillic_em", XK_Cyrillic_em},
829     {"Cyrillic_en", XK_Cyrillic_en},
830     {"Cyrillic_o", XK_Cyrillic_o},
831     {"Cyrillic_pe", XK_Cyrillic_pe},
832     {"Cyrillic_ya", XK_Cyrillic_ya},
833     {"Cyrillic_er", XK_Cyrillic_er},
834     {"Cyrillic_es", XK_Cyrillic_es},
835     {"Cyrillic_te", XK_Cyrillic_te},
836     {"Cyrillic_u", XK_Cyrillic_u},
837     {"Cyrillic_zhe", XK_Cyrillic_zhe},
838     {"Cyrillic_ve", XK_Cyrillic_ve},
839     {"Cyrillic_softsign", XK_Cyrillic_softsign},
840     {"Cyrillic_yeru", XK_Cyrillic_yeru},
841     {"Cyrillic_ze", XK_Cyrillic_ze},
842     {"Cyrillic_sha", XK_Cyrillic_sha},
843     {"Cyrillic_e", XK_Cyrillic_e},
844     {"Cyrillic_shcha", XK_Cyrillic_shcha},
845     {"Cyrillic_che", XK_Cyrillic_che},
846     {"Cyrillic_hardsign", XK_Cyrillic_hardsign},
847     {"Cyrillic_YU", XK_Cyrillic_YU},
848     {"Cyrillic_A", XK_Cyrillic_A},
849     {"Cyrillic_BE", XK_Cyrillic_BE},
850     {"Cyrillic_TSE", XK_Cyrillic_TSE},
851     {"Cyrillic_DE", XK_Cyrillic_DE},
852     {"Cyrillic_IE", XK_Cyrillic_IE},
853     {"Cyrillic_EF", XK_Cyrillic_EF},
854     {"Cyrillic_GHE", XK_Cyrillic_GHE},
855     {"Cyrillic_HA", XK_Cyrillic_HA},
856     {"Cyrillic_I", XK_Cyrillic_I},
857     {"Cyrillic_SHORTI", XK_Cyrillic_SHORTI},
858     {"Cyrillic_KA", XK_Cyrillic_KA},
859     {"Cyrillic_EL", XK_Cyrillic_EL},
860     {"Cyrillic_EM", XK_Cyrillic_EM},
861     {"Cyrillic_EN", XK_Cyrillic_EN},
862     {"Cyrillic_O", XK_Cyrillic_O},
863     {"Cyrillic_PE", XK_Cyrillic_PE},
864     {"Cyrillic_YA", XK_Cyrillic_YA},
865     {"Cyrillic_ER", XK_Cyrillic_ER},
866     {"Cyrillic_ES", XK_Cyrillic_ES},
867     {"Cyrillic_TE", XK_Cyrillic_TE},
868     {"Cyrillic_U", XK_Cyrillic_U},
869     {"Cyrillic_ZHE", XK_Cyrillic_ZHE},
870     {"Cyrillic_VE", XK_Cyrillic_VE},
871     {"Cyrillic_SOFTSIGN", XK_Cyrillic_SOFTSIGN},
872     {"Cyrillic_YERU", XK_Cyrillic_YERU},
873     {"Cyrillic_ZE", XK_Cyrillic_ZE},
874     {"Cyrillic_SHA", XK_Cyrillic_SHA},
875     {"Cyrillic_E", XK_Cyrillic_E},
876     {"Cyrillic_SHCHA", XK_Cyrillic_SHCHA},
877     {"Cyrillic_CHE", XK_Cyrillic_CHE},
878     {"Cyrillic_HARDSIGN", XK_Cyrillic_HARDSIGN},
879     #endif /* XK_CYRILLIC */
880     #ifdef XK_GREEK
881     {"Greek_ALPHAaccent", XK_Greek_ALPHAaccent},
882     {"Greek_EPSILONaccent", XK_Greek_EPSILONaccent},
883     {"Greek_ETAaccent", XK_Greek_ETAaccent},
884     {"Greek_IOTAaccent", XK_Greek_IOTAaccent},
885     {"Greek_IOTAdieresis", XK_Greek_IOTAdieresis},
886     {"Greek_OMICRONaccent", XK_Greek_OMICRONaccent},
887     {"Greek_UPSILONaccent", XK_Greek_UPSILONaccent},
888     {"Greek_UPSILONdieresis", XK_Greek_UPSILONdieresis},
889     {"Greek_OMEGAaccent", XK_Greek_OMEGAaccent},
890     {"Greek_accentdieresis", XK_Greek_accentdieresis},
891     {"Greek_horizbar", XK_Greek_horizbar},
892     {"Greek_alphaaccent", XK_Greek_alphaaccent},
893     {"Greek_epsilonaccent", XK_Greek_epsilonaccent},
894     {"Greek_etaaccent", XK_Greek_etaaccent},
895     {"Greek_iotaaccent", XK_Greek_iotaaccent},
896     {"Greek_iotadieresis", XK_Greek_iotadieresis},
897     {"Greek_iotaaccentdieresis", XK_Greek_iotaaccentdieresis},
898     {"Greek_omicronaccent", XK_Greek_omicronaccent},
899     {"Greek_upsilonaccent", XK_Greek_upsilonaccent},
900     {"Greek_upsilondieresis", XK_Greek_upsilondieresis},
901     {"Greek_upsilonaccentdieresis", XK_Greek_upsilonaccentdieresis},
902     {"Greek_omegaaccent", XK_Greek_omegaaccent},
903     {"Greek_ALPHA", XK_Greek_ALPHA},
904     {"Greek_BETA", XK_Greek_BETA},
905     {"Greek_GAMMA", XK_Greek_GAMMA},
906     {"Greek_DELTA", XK_Greek_DELTA},
907     {"Greek_EPSILON", XK_Greek_EPSILON},
908     {"Greek_ZETA", XK_Greek_ZETA},
909     {"Greek_ETA", XK_Greek_ETA},
910     {"Greek_THETA", XK_Greek_THETA},
911     {"Greek_IOTA", XK_Greek_IOTA},
912     {"Greek_KAPPA", XK_Greek_KAPPA},
913     {"Greek_LAMDA", XK_Greek_LAMDA},
914     {"Greek_LAMBDA", XK_Greek_LAMBDA},
915     {"Greek_MU", XK_Greek_MU},
916     {"Greek_NU", XK_Greek_NU},
917     {"Greek_XI", XK_Greek_XI},
918     {"Greek_OMICRON", XK_Greek_OMICRON},
919     {"Greek_PI", XK_Greek_PI},
920     {"Greek_RHO", XK_Greek_RHO},
921     {"Greek_SIGMA", XK_Greek_SIGMA},
922     {"Greek_TAU", XK_Greek_TAU},
923     {"Greek_UPSILON", XK_Greek_UPSILON},
924     {"Greek_PHI", XK_Greek_PHI},
925     {"Greek_CHI", XK_Greek_CHI},
926     {"Greek_PSI", XK_Greek_PSI},
927     {"Greek_OMEGA", XK_Greek_OMEGA},
928     {"Greek_alpha", XK_Greek_alpha},
929     {"Greek_beta", XK_Greek_beta},
930     {"Greek_gamma", XK_Greek_gamma},
931     {"Greek_delta", XK_Greek_delta},
932     {"Greek_epsilon", XK_Greek_epsilon},
933     {"Greek_zeta", XK_Greek_zeta},
934     {"Greek_eta", XK_Greek_eta},
935     {"Greek_theta", XK_Greek_theta},
936     {"Greek_iota", XK_Greek_iota},
937     {"Greek_kappa", XK_Greek_kappa},
938     {"Greek_lamda", XK_Greek_lamda},
939     {"Greek_lambda", XK_Greek_lambda},
940     {"Greek_mu", XK_Greek_mu},
941     {"Greek_nu", XK_Greek_nu},
942     {"Greek_xi", XK_Greek_xi},
943     {"Greek_omicron", XK_Greek_omicron},
944     {"Greek_pi", XK_Greek_pi},
945     {"Greek_rho", XK_Greek_rho},
946     {"Greek_sigma", XK_Greek_sigma},
947     {"Greek_finalsmallsigma", XK_Greek_finalsmallsigma},
948     {"Greek_tau", XK_Greek_tau},
949     {"Greek_upsilon", XK_Greek_upsilon},
950     {"Greek_phi", XK_Greek_phi},
951     {"Greek_chi", XK_Greek_chi},
952     {"Greek_psi", XK_Greek_psi},
953     {"Greek_omega", XK_Greek_omega},
954     {"Greek_switch", XK_Greek_switch},
955     #endif /* XK_GREEK */
956     #ifdef XK_TECHNICAL
957     {"leftradical", XK_leftradical},
958     {"topleftradical", XK_topleftradical},
959     {"horizconnector", XK_horizconnector},
960     {"topintegral", XK_topintegral},
961     {"botintegral", XK_botintegral},
962     {"vertconnector", XK_vertconnector},
963     {"topleftsqbracket", XK_topleftsqbracket},
964     {"botleftsqbracket", XK_botleftsqbracket},
965     {"toprightsqbracket", XK_toprightsqbracket},
966     {"botrightsqbracket", XK_botrightsqbracket},
967     {"topleftparens", XK_topleftparens},
968     {"botleftparens", XK_botleftparens},
969     {"toprightparens", XK_toprightparens},
970     {"botrightparens", XK_botrightparens},
971     {"leftmiddlecurlybrace", XK_leftmiddlecurlybrace},
972     {"rightmiddlecurlybrace", XK_rightmiddlecurlybrace},
973     {"topleftsummation", XK_topleftsummation},
974     {"botleftsummation", XK_botleftsummation},
975     {"topvertsummationconnector", XK_topvertsummationconnector},
976     {"botvertsummationconnector", XK_botvertsummationconnector},
977     {"toprightsummation", XK_toprightsummation},
978     {"botrightsummation", XK_botrightsummation},
979     {"rightmiddlesummation", XK_rightmiddlesummation},
980     {"lessthanequal", XK_lessthanequal},
981     {"notequal", XK_notequal},
982     {"greaterthanequal", XK_greaterthanequal},
983     {"integral", XK_integral},
984     {"therefore", XK_therefore},
985     {"variation", XK_variation},
986     {"infinity", XK_infinity},
987     {"nabla", XK_nabla},
988     {"approximate", XK_approximate},
989     {"similarequal", XK_similarequal},
990     {"ifonlyif", XK_ifonlyif},
991     {"implies", XK_implies},
992     {"identical", XK_identical},
993     {"radical", XK_radical},
994     {"includedin", XK_includedin},
995     {"includes", XK_includes},
996     {"intersection", XK_intersection},
997     {"union", XK_union},
998     {"logicaland", XK_logicaland},
999     {"logicalor", XK_logicalor},
1000     {"partialderivative", XK_partialderivative},
1001     {"function", XK_function},
1002     {"leftarrow", XK_leftarrow},
1003     {"uparrow", XK_uparrow},
1004     {"rightarrow", XK_rightarrow},
1005     {"downarrow", XK_downarrow},
1006     #endif /* XK_TECHNICAL */
1007     #ifdef XK_SPECIAL
1008     {"blank", XK_blank},
1009     {"soliddiamond", XK_soliddiamond},
1010     {"checkerboard", XK_checkerboard},
1011     {"ht", XK_ht},
1012     {"ff", XK_ff},
1013     {"cr", XK_cr},
1014     {"lf", XK_lf},
1015     {"nl", XK_nl},
1016     {"vt", XK_vt},
1017     {"lowrightcorner", XK_lowrightcorner},
1018     {"uprightcorner", XK_uprightcorner},
1019     {"upleftcorner", XK_upleftcorner},
1020     {"lowleftcorner", XK_lowleftcorner},
1021     {"crossinglines", XK_crossinglines},
1022     {"horizlinescan1", XK_horizlinescan1},
1023     {"horizlinescan3", XK_horizlinescan3},
1024     {"horizlinescan5", XK_horizlinescan5},
1025     {"horizlinescan7", XK_horizlinescan7},
1026     {"horizlinescan9", XK_horizlinescan9},
1027     {"leftt", XK_leftt},
1028     {"rightt", XK_rightt},
1029     {"bott", XK_bott},
1030     {"topt", XK_topt},
1031     {"vertbar", XK_vertbar},
1032     #endif /* XK_SPECIAL */
1033     #ifdef XK_PUBLISHING
1034     {"emspace", XK_emspace},
1035     {"enspace", XK_enspace},
1036     {"em3space", XK_em3space},
1037     {"em4space", XK_em4space},
1038     {"digitspace", XK_digitspace},
1039     {"punctspace", XK_punctspace},
1040     {"thinspace", XK_thinspace},
1041     {"hairspace", XK_hairspace},
1042     {"emdash", XK_emdash},
1043     {"endash", XK_endash},
1044     {"signifblank", XK_signifblank},
1045     {"ellipsis", XK_ellipsis},
1046     {"doubbaselinedot", XK_doubbaselinedot},
1047     {"onethird", XK_onethird},
1048     {"twothirds", XK_twothirds},
1049     {"onefifth", XK_onefifth},
1050     {"twofifths", XK_twofifths},
1051     {"threefifths", XK_threefifths},
1052     {"fourfifths", XK_fourfifths},
1053     {"onesixth", XK_onesixth},
1054     {"fivesixths", XK_fivesixths},
1055     {"careof", XK_careof},
1056     {"figdash", XK_figdash},
1057     {"leftanglebracket", XK_leftanglebracket},
1058     {"decimalpoint", XK_decimalpoint},
1059     {"rightanglebracket", XK_rightanglebracket},
1060     {"marker", XK_marker},
1061     {"oneeighth", XK_oneeighth},
1062     {"threeeighths", XK_threeeighths},
1063     {"fiveeighths", XK_fiveeighths},
1064     {"seveneighths", XK_seveneighths},
1065     {"trademark", XK_trademark},
1066     {"signaturemark", XK_signaturemark},
1067     {"trademarkincircle", XK_trademarkincircle},
1068     {"leftopentriangle", XK_leftopentriangle},
1069     {"rightopentriangle", XK_rightopentriangle},
1070     {"emopencircle", XK_emopencircle},
1071     {"emopenrectangle", XK_emopenrectangle},
1072     {"leftsinglequotemark", XK_leftsinglequotemark},
1073     {"rightsinglequotemark", XK_rightsinglequotemark},
1074     {"leftdoublequotemark", XK_leftdoublequotemark},
1075     {"rightdoublequotemark", XK_rightdoublequotemark},
1076     {"prescription", XK_prescription},
1077     {"minutes", XK_minutes},
1078     {"seconds", XK_seconds},
1079     {"latincross", XK_latincross},
1080     {"hexagram", XK_hexagram},
1081     {"filledrectbullet", XK_filledrectbullet},
1082     {"filledlefttribullet", XK_filledlefttribullet},
1083     {"filledrighttribullet", XK_filledrighttribullet},
1084     {"emfilledcircle", XK_emfilledcircle},
1085     {"emfilledrect", XK_emfilledrect},
1086     {"enopencircbullet", XK_enopencircbullet},
1087     {"enopensquarebullet", XK_enopensquarebullet},
1088     {"openrectbullet", XK_openrectbullet},
1089     {"opentribulletup", XK_opentribulletup},
1090     {"opentribulletdown", XK_opentribulletdown},
1091     {"openstar", XK_openstar},
1092     {"enfilledcircbullet", XK_enfilledcircbullet},
1093     {"enfilledsqbullet", XK_enfilledsqbullet},
1094     {"filledtribulletup", XK_filledtribulletup},
1095     {"filledtribulletdown", XK_filledtribulletdown},
1096     {"leftpointer", XK_leftpointer},
1097     {"rightpointer", XK_rightpointer},
1098     {"club", XK_club},
1099     {"diamond", XK_diamond},
1100     {"heart", XK_heart},
1101     {"maltesecross", XK_maltesecross},
1102     {"dagger", XK_dagger},
1103     {"doubledagger", XK_doubledagger},
1104     {"checkmark", XK_checkmark},
1105     {"ballotcross", XK_ballotcross},
1106     {"musicalsharp", XK_musicalsharp},
1107     {"musicalflat", XK_musicalflat},
1108     {"malesymbol", XK_malesymbol},
1109     {"femalesymbol", XK_femalesymbol},
1110     {"telephone", XK_telephone},
1111     {"telephonerecorder", XK_telephonerecorder},
1112     {"phonographcopyright", XK_phonographcopyright},
1113     {"caret", XK_caret},
1114     {"singlelowquotemark", XK_singlelowquotemark},
1115     {"doublelowquotemark", XK_doublelowquotemark},
1116     {"cursor", XK_cursor},
1117     #endif /* XK_PUBLISHING */
1118     #ifdef XK_APL
1119     {"leftcaret", XK_leftcaret},
1120     {"rightcaret", XK_rightcaret},
1121     {"downcaret", XK_downcaret},
1122     {"upcaret", XK_upcaret},
1123     {"overbar", XK_overbar},
1124     {"downtack", XK_downtack},
1125     {"upshoe", XK_upshoe},
1126     {"downstile", XK_downstile},
1127     {"underbar", XK_underbar},
1128     {"jot", XK_jot},
1129     {"quad", XK_quad},
1130     {"uptack", XK_uptack},
1131     {"circle", XK_circle},
1132     {"upstile", XK_upstile},
1133     {"downshoe", XK_downshoe},
1134     {"rightshoe", XK_rightshoe},
1135     {"leftshoe", XK_leftshoe},
1136     {"lefttack", XK_lefttack},
1137     {"righttack", XK_righttack},
1138     #endif /* XK_APL */
1139     #ifdef XK_HEBREW
1140     {"hebrew_doublelowline", XK_hebrew_doublelowline},
1141     {"hebrew_aleph", XK_hebrew_aleph},
1142     {"hebrew_bet", XK_hebrew_bet},
1143     {"hebrew_beth", XK_hebrew_beth},
1144     {"hebrew_gimel", XK_hebrew_gimel},
1145     {"hebrew_gimmel", XK_hebrew_gimmel},
1146     {"hebrew_dalet", XK_hebrew_dalet},
1147     {"hebrew_daleth", XK_hebrew_daleth},
1148     {"hebrew_he", XK_hebrew_he},
1149     {"hebrew_waw", XK_hebrew_waw},
1150     {"hebrew_zain", XK_hebrew_zain},
1151     {"hebrew_zayin", XK_hebrew_zayin},
1152     {"hebrew_chet", XK_hebrew_chet},
1153     {"hebrew_het", XK_hebrew_het},
1154     {"hebrew_tet", XK_hebrew_tet},
1155     {"hebrew_teth", XK_hebrew_teth},
1156     {"hebrew_yod", XK_hebrew_yod},
1157     {"hebrew_finalkaph", XK_hebrew_finalkaph},
1158     {"hebrew_kaph", XK_hebrew_kaph},
1159     {"hebrew_lamed", XK_hebrew_lamed},
1160     {"hebrew_finalmem", XK_hebrew_finalmem},
1161     {"hebrew_mem", XK_hebrew_mem},
1162     {"hebrew_finalnun", XK_hebrew_finalnun},
1163     {"hebrew_nun", XK_hebrew_nun},
1164     {"hebrew_samech", XK_hebrew_samech},
1165     {"hebrew_samekh", XK_hebrew_samekh},
1166     {"hebrew_ayin", XK_hebrew_ayin},
1167     {"hebrew_finalpe", XK_hebrew_finalpe},
1168     {"hebrew_pe", XK_hebrew_pe},
1169     {"hebrew_finalzade", XK_hebrew_finalzade},
1170     {"hebrew_finalzadi", XK_hebrew_finalzadi},
1171     {"hebrew_zade", XK_hebrew_zade},
1172     {"hebrew_zadi", XK_hebrew_zadi},
1173     {"hebrew_qoph", XK_hebrew_qoph},
1174     {"hebrew_kuf", XK_hebrew_kuf},
1175     {"hebrew_resh", XK_hebrew_resh},
1176     {"hebrew_shin", XK_hebrew_shin},
1177     {"hebrew_taw", XK_hebrew_taw},
1178     {"hebrew_taf", XK_hebrew_taf},
1179     {"Hebrew_switch", XK_Hebrew_switch},
1180     #endif /* XK_HEBREW */
1181     #ifdef XK_THAI
1182     {"Thai_kokai", XK_Thai_kokai},
1183     {"Thai_khokhai", XK_Thai_khokhai},
1184     {"Thai_khokhuat", XK_Thai_khokhuat},
1185     {"Thai_khokhwai", XK_Thai_khokhwai},
1186     {"Thai_khokhon", XK_Thai_khokhon},
1187     {"Thai_khorakhang", XK_Thai_khorakhang},
1188     {"Thai_ngongu", XK_Thai_ngongu},
1189     {"Thai_chochan", XK_Thai_chochan},
1190     {"Thai_choching", XK_Thai_choching},
1191     {"Thai_chochang", XK_Thai_chochang},
1192     {"Thai_soso", XK_Thai_soso},
1193     {"Thai_chochoe", XK_Thai_chochoe},
1194     {"Thai_yoying", XK_Thai_yoying},
1195     {"Thai_dochada", XK_Thai_dochada},
1196     {"Thai_topatak", XK_Thai_topatak},
1197     {"Thai_thothan", XK_Thai_thothan},
1198     {"Thai_thonangmontho", XK_Thai_thonangmontho},
1199     {"Thai_thophuthao", XK_Thai_thophuthao},
1200     {"Thai_nonen", XK_Thai_nonen},
1201     {"Thai_dodek", XK_Thai_dodek},
1202     {"Thai_totao", XK_Thai_totao},
1203     {"Thai_thothung", XK_Thai_thothung},
1204     {"Thai_thothahan", XK_Thai_thothahan},
1205     {"Thai_thothong", XK_Thai_thothong},
1206     {"Thai_nonu", XK_Thai_nonu},
1207     {"Thai_bobaimai", XK_Thai_bobaimai},
1208     {"Thai_popla", XK_Thai_popla},
1209     {"Thai_phophung", XK_Thai_phophung},
1210     {"Thai_fofa", XK_Thai_fofa},
1211     {"Thai_phophan", XK_Thai_phophan},
1212     {"Thai_fofan", XK_Thai_fofan},
1213     {"Thai_phosamphao", XK_Thai_phosamphao},
1214     {"Thai_moma", XK_Thai_moma},
1215     {"Thai_yoyak", XK_Thai_yoyak},
1216     {"Thai_rorua", XK_Thai_rorua},
1217     {"Thai_ru", XK_Thai_ru},
1218     {"Thai_loling", XK_Thai_loling},
1219     {"Thai_lu", XK_Thai_lu},
1220     {"Thai_wowaen", XK_Thai_wowaen},
1221     {"Thai_sosala", XK_Thai_sosala},
1222     {"Thai_sorusi", XK_Thai_sorusi},
1223     {"Thai_sosua", XK_Thai_sosua},
1224     {"Thai_hohip", XK_Thai_hohip},
1225     {"Thai_lochula", XK_Thai_lochula},
1226     {"Thai_oang", XK_Thai_oang},
1227     {"Thai_honokhuk", XK_Thai_honokhuk},
1228     {"Thai_paiyannoi", XK_Thai_paiyannoi},
1229     {"Thai_saraa", XK_Thai_saraa},
1230     {"Thai_maihanakat", XK_Thai_maihanakat},
1231     {"Thai_saraaa", XK_Thai_saraaa},
1232     {"Thai_saraam", XK_Thai_saraam},
1233     {"Thai_sarai", XK_Thai_sarai},
1234     {"Thai_saraii", XK_Thai_saraii},
1235     {"Thai_saraue", XK_Thai_saraue},
1236     {"Thai_sarauee", XK_Thai_sarauee},
1237     {"Thai_sarau", XK_Thai_sarau},
1238     {"Thai_sarauu", XK_Thai_sarauu},
1239     {"Thai_phinthu", XK_Thai_phinthu},
1240     {"Thai_maihanakat_maitho", XK_Thai_maihanakat_maitho},
1241     {"Thai_baht", XK_Thai_baht},
1242     {"Thai_sarae", XK_Thai_sarae},
1243     {"Thai_saraae", XK_Thai_saraae},
1244     {"Thai_sarao", XK_Thai_sarao},
1245     {"Thai_saraaimaimuan", XK_Thai_saraaimaimuan},
1246     {"Thai_saraaimaimalai", XK_Thai_saraaimaimalai},
1247     {"Thai_lakkhangyao", XK_Thai_lakkhangyao},
1248     {"Thai_maiyamok", XK_Thai_maiyamok},
1249     {"Thai_maitaikhu", XK_Thai_maitaikhu},
1250     {"Thai_maiek", XK_Thai_maiek},
1251     {"Thai_maitho", XK_Thai_maitho},
1252     {"Thai_maitri", XK_Thai_maitri},
1253     {"Thai_maichattawa", XK_Thai_maichattawa},
1254     {"Thai_thanthakhat", XK_Thai_thanthakhat},
1255     {"Thai_nikhahit", XK_Thai_nikhahit},
1256     {"Thai_leksun", XK_Thai_leksun},
1257     {"Thai_leknung", XK_Thai_leknung},
1258     {"Thai_leksong", XK_Thai_leksong},
1259     {"Thai_leksam", XK_Thai_leksam},
1260     {"Thai_leksi", XK_Thai_leksi},
1261     {"Thai_lekha", XK_Thai_lekha},
1262     {"Thai_lekhok", XK_Thai_lekhok},
1263     {"Thai_lekchet", XK_Thai_lekchet},
1264     {"Thai_lekpaet", XK_Thai_lekpaet},
1265     {"Thai_lekkao", XK_Thai_lekkao},
1266     #endif /* XK_THAI */
1267     #ifdef XK_KOREAN
1268     {"Hangul", XK_Hangul},
1269     {"Hangul_Start", XK_Hangul_Start},
1270     {"Hangul_End", XK_Hangul_End},
1271     {"Hangul_Hanja", XK_Hangul_Hanja},
1272     {"Hangul_Jamo", XK_Hangul_Jamo},
1273     {"Hangul_Romaja", XK_Hangul_Romaja},
1274     {"Hangul_Codeinput", XK_Hangul_Codeinput},
1275     {"Hangul_Jeonja", XK_Hangul_Jeonja},
1276     {"Hangul_Banja", XK_Hangul_Banja},
1277     {"Hangul_PreHanja", XK_Hangul_PreHanja},
1278     {"Hangul_PostHanja", XK_Hangul_PostHanja},
1279     {"Hangul_SingleCandidate", XK_Hangul_SingleCandidate},
1280     {"Hangul_MultipleCandidate", XK_Hangul_MultipleCandidate},
1281     {"Hangul_PreviousCandidate", XK_Hangul_PreviousCandidate},
1282     {"Hangul_Special", XK_Hangul_Special},
1283     {"Hangul_switch", XK_Hangul_switch},
1284     {"Hangul_Kiyeog", XK_Hangul_Kiyeog},
1285     {"Hangul_SsangKiyeog", XK_Hangul_SsangKiyeog},
1286     {"Hangul_KiyeogSios", XK_Hangul_KiyeogSios},
1287     {"Hangul_Nieun", XK_Hangul_Nieun},
1288     {"Hangul_NieunJieuj", XK_Hangul_NieunJieuj},
1289     {"Hangul_NieunHieuh", XK_Hangul_NieunHieuh},
1290     {"Hangul_Dikeud", XK_Hangul_Dikeud},
1291     {"Hangul_SsangDikeud", XK_Hangul_SsangDikeud},
1292     {"Hangul_Rieul", XK_Hangul_Rieul},
1293     {"Hangul_RieulKiyeog", XK_Hangul_RieulKiyeog},
1294     {"Hangul_RieulMieum", XK_Hangul_RieulMieum},
1295     {"Hangul_RieulPieub", XK_Hangul_RieulPieub},
1296     {"Hangul_RieulSios", XK_Hangul_RieulSios},
1297     {"Hangul_RieulTieut", XK_Hangul_RieulTieut},
1298     {"Hangul_RieulPhieuf", XK_Hangul_RieulPhieuf},
1299     {"Hangul_RieulHieuh", XK_Hangul_RieulHieuh},
1300     {"Hangul_Mieum", XK_Hangul_Mieum},
1301     {"Hangul_Pieub", XK_Hangul_Pieub},
1302     {"Hangul_SsangPieub", XK_Hangul_SsangPieub},
1303     {"Hangul_PieubSios", XK_Hangul_PieubSios},
1304     {"Hangul_Sios", XK_Hangul_Sios},
1305     {"Hangul_SsangSios", XK_Hangul_SsangSios},
1306     {"Hangul_Ieung", XK_Hangul_Ieung},
1307     {"Hangul_Jieuj", XK_Hangul_Jieuj},
1308     {"Hangul_SsangJieuj", XK_Hangul_SsangJieuj},
1309     {"Hangul_Cieuc", XK_Hangul_Cieuc},
1310     {"Hangul_Khieuq", XK_Hangul_Khieuq},
1311     {"Hangul_Tieut", XK_Hangul_Tieut},
1312     {"Hangul_Phieuf", XK_Hangul_Phieuf},
1313     {"Hangul_Hieuh", XK_Hangul_Hieuh},
1314     {"Hangul_A", XK_Hangul_A},
1315     {"Hangul_AE", XK_Hangul_AE},
1316     {"Hangul_YA", XK_Hangul_YA},
1317     {"Hangul_YAE", XK_Hangul_YAE},
1318     {"Hangul_EO", XK_Hangul_EO},
1319     {"Hangul_E", XK_Hangul_E},
1320     {"Hangul_YEO", XK_Hangul_YEO},
1321     {"Hangul_YE", XK_Hangul_YE},
1322     {"Hangul_O", XK_Hangul_O},
1323     {"Hangul_WA", XK_Hangul_WA},
1324     {"Hangul_WAE", XK_Hangul_WAE},
1325     {"Hangul_OE", XK_Hangul_OE},
1326     {"Hangul_YO", XK_Hangul_YO},
1327     {"Hangul_U", XK_Hangul_U},
1328     {"Hangul_WEO", XK_Hangul_WEO},
1329     {"Hangul_WE", XK_Hangul_WE},
1330     {"Hangul_WI", XK_Hangul_WI},
1331     {"Hangul_YU", XK_Hangul_YU},
1332     {"Hangul_EU", XK_Hangul_EU},
1333     {"Hangul_YI", XK_Hangul_YI},
1334     {"Hangul_I", XK_Hangul_I},
1335     {"Hangul_J_Kiyeog", XK_Hangul_J_Kiyeog},
1336     {"Hangul_J_SsangKiyeog", XK_Hangul_J_SsangKiyeog},
1337     {"Hangul_J_KiyeogSios", XK_Hangul_J_KiyeogSios},
1338     {"Hangul_J_Nieun", XK_Hangul_J_Nieun},
1339     {"Hangul_J_NieunJieuj", XK_Hangul_J_NieunJieuj},
1340     {"Hangul_J_NieunHieuh", XK_Hangul_J_NieunHieuh},
1341     {"Hangul_J_Dikeud", XK_Hangul_J_Dikeud},
1342     {"Hangul_J_Rieul", XK_Hangul_J_Rieul},
1343     {"Hangul_J_RieulKiyeog", XK_Hangul_J_RieulKiyeog},
1344     {"Hangul_J_RieulMieum", XK_Hangul_J_RieulMieum},
1345     {"Hangul_J_RieulPieub", XK_Hangul_J_RieulPieub},
1346     {"Hangul_J_RieulSios", XK_Hangul_J_RieulSios},
1347     {"Hangul_J_RieulTieut", XK_Hangul_J_RieulTieut},
1348     {"Hangul_J_RieulPhieuf", XK_Hangul_J_RieulPhieuf},
1349     {"Hangul_J_RieulHieuh", XK_Hangul_J_RieulHieuh},
1350     {"Hangul_J_Mieum", XK_Hangul_J_Mieum},
1351     {"Hangul_J_Pieub", XK_Hangul_J_Pieub},
1352     {"Hangul_J_PieubSios", XK_Hangul_J_PieubSios},
1353     {"Hangul_J_Sios", XK_Hangul_J_Sios},
1354     {"Hangul_J_SsangSios", XK_Hangul_J_SsangSios},
1355     {"Hangul_J_Ieung", XK_Hangul_J_Ieung},
1356     {"Hangul_J_Jieuj", XK_Hangul_J_Jieuj},
1357     {"Hangul_J_Cieuc", XK_Hangul_J_Cieuc},
1358     {"Hangul_J_Khieuq", XK_Hangul_J_Khieuq},
1359     {"Hangul_J_Tieut", XK_Hangul_J_Tieut},
1360     {"Hangul_J_Phieuf", XK_Hangul_J_Phieuf},
1361     {"Hangul_J_Hieuh", XK_Hangul_J_Hieuh},
1362     {"Hangul_RieulYeorinHieuh", XK_Hangul_RieulYeorinHieuh},
1363     {"Hangul_SunkyeongeumMieum", XK_Hangul_SunkyeongeumMieum},
1364     {"Hangul_SunkyeongeumPieub", XK_Hangul_SunkyeongeumPieub},
1365     {"Hangul_PanSios", XK_Hangul_PanSios},
1366     {"Hangul_KkogjiDalrinIeung", XK_Hangul_KkogjiDalrinIeung},
1367     {"Hangul_SunkyeongeumPhieuf", XK_Hangul_SunkyeongeumPhieuf},
1368     {"Hangul_YeorinHieuh", XK_Hangul_YeorinHieuh},
1369     {"Hangul_AraeA", XK_Hangul_AraeA},
1370     {"Hangul_AraeAE", XK_Hangul_AraeAE},
1371     {"Hangul_J_PanSios", XK_Hangul_J_PanSios},
1372     {"Hangul_J_KkogjiDalrinIeung", XK_Hangul_J_KkogjiDalrinIeung},
1373     {"Hangul_J_YeorinHieuh", XK_Hangul_J_YeorinHieuh},
1374     {"Korean_Won", XK_Korean_Won},
1375     #endif /* XK_KOREAN */
1376     {"EuroSign", XK_EuroSign},
1377     #endif
1378     {"NoSymbol", NoSymbol}
1379     };
1380    
1381     KeySym
1382     XStringToKeysym(const char *str)
1383     {
1384     int i;
1385     for (i = 0; StringToKeysym[i].keysym != NoSymbol
1386     && strcmp(StringToKeysym[i].string, str); i++);
1387     return StringToKeysym[i].keysym;
1388     }
1389    
1390     const char *
1391     XKeysymToString(KeySym keysym)
1392     {
1393     int i;
1394     for (i = 0; StringToKeysym[i].keysym != NoSymbol
1395     && StringToKeysym[i].keysym != keysym; i++);
1396     return StringToKeysym[i].string;
1397     }
1398    
1399     void
1400     XDisplayKeycodes(Display * display, int *min_keycode, int *max_keycode)
1401     {
1402     /* VNC keycodes are non-existant */
1403     *min_keycode = 0xffff;
1404     *max_keycode = 0;
1405     }

  ViewVC Help
Powered by ViewVC 1.1.26