diff options
Diffstat (limited to 'x11vnc/nox11_funcs.h')
-rw-r--r-- | x11vnc/nox11_funcs.h | 2820 |
1 files changed, 2820 insertions, 0 deletions
diff --git a/x11vnc/nox11_funcs.h b/x11vnc/nox11_funcs.h new file mode 100644 index 0000000..e127309 --- /dev/null +++ b/x11vnc/nox11_funcs.h @@ -0,0 +1,2820 @@ +#if 0 +generated by util script makekeysyms.pl: + +----- +#!/usr/bin/perl + +print "#if 0\n"; +print "generated by util script makekeysyms.pl:\n\n"; +print "-----\n"; +system("cat $0"); +print "-----\n"; +print "#endif\n\n"; + +# probably should use rfb/keysym.h: +$file = shift; +$file = "/usr/X11R6/include/X11/keysymdef.h" unless $file; + +open(KS, "<$file") || die "$file: $!"; + +while (<KS>) { + chomp; + next if /^#define (XK_MISCELLANY|XK_XKB_KEYS|XK_LATIN1|XK_LATIN2|XK_LATIN3|XK_LATIN4|XK_GREEK)/; + next if /^#define (XK_LATIN8|XK_LATIN9|XK_CAUCASUS|XK_KATAKANA|XK_ARABIC|XK_CYRILLIC|XK_HEBREW|XK_THAI|XK_KOREAN|XK_ARMENIAN|XK_GEORGIAN|XK_VIETNAMESE|XK_CURRENCY)/; + if (/^#define\s+(XK_\w+)/) { + push @xk, $1; + } elsif (/^#(ifdef|ifndef|endif)/) { + $_ =~ s/ifndef XK_0/ifndef XK_0_nosuch/; + push @xk, $_; + } +} +close(KS); + +print <<"END"; + +KeySym XStringToKeysym(char *s) { +END +foreach $ks (@xk) { + $s = $ks; + if ($ks =~ /#/) { + print "$ks\n"; + next; + } + $s =~ s/^XK_//; + print " if (!strcmp(s, \"$s\")) return $ks;\n"; +} +print <<"END"; + return NoSymbol; +} + +END + +print <<"END"; + +char *XKeysymToString(KeySym k) { +END +foreach $ks (@xk) { + $s = $ks; + if ($ks =~ /#/) { + print "$ks\n"; + next; + } + $s =~ s/^XK_//; + print " if (k == $ks) return \"$s\";\n"; +} +print <<"END"; + return NULL; +} + +KeySym XKeycodeToKeysym(Display *display, KeyCode keycode, int index) { + return NoSymbol; +} + +KeyCode XKeysymToKeycode(Display *display, KeySym keysym) { + return NoSymbol; +} + +XErrorHandler XSetErrorHandler (XErrorHandler h) { + return h; +} + +END + +exit 0; +----- +#endif + + +KeySym XStringToKeysym(char *s) { +#ifndef XK_0_nosuch + if (!strcmp(s, "VoidSymbol")) return XK_VoidSymbol; +#ifdef XK_MISCELLANY + if (!strcmp(s, "BackSpace")) return XK_BackSpace; + if (!strcmp(s, "Tab")) return XK_Tab; + if (!strcmp(s, "Linefeed")) return XK_Linefeed; + if (!strcmp(s, "Clear")) return XK_Clear; + if (!strcmp(s, "Return")) return XK_Return; + if (!strcmp(s, "Pause")) return XK_Pause; + if (!strcmp(s, "Scroll_Lock")) return XK_Scroll_Lock; + if (!strcmp(s, "Sys_Req")) return XK_Sys_Req; + if (!strcmp(s, "Escape")) return XK_Escape; + if (!strcmp(s, "Delete")) return XK_Delete; + if (!strcmp(s, "Multi_key")) return XK_Multi_key; + if (!strcmp(s, "SingleCandidate")) return XK_SingleCandidate; + if (!strcmp(s, "MultipleCandidate")) return XK_MultipleCandidate; + if (!strcmp(s, "PreviousCandidate")) return XK_PreviousCandidate; + if (!strcmp(s, "Kanji")) return XK_Kanji; + if (!strcmp(s, "Muhenkan")) return XK_Muhenkan; + if (!strcmp(s, "Henkan_Mode")) return XK_Henkan_Mode; + if (!strcmp(s, "Henkan")) return XK_Henkan; + if (!strcmp(s, "Romaji")) return XK_Romaji; + if (!strcmp(s, "Hiragana")) return XK_Hiragana; + if (!strcmp(s, "Katakana")) return XK_Katakana; + if (!strcmp(s, "Hiragana_Katakana")) return XK_Hiragana_Katakana; + if (!strcmp(s, "Zenkaku")) return XK_Zenkaku; + if (!strcmp(s, "Hankaku")) return XK_Hankaku; + if (!strcmp(s, "Zenkaku_Hankaku")) return XK_Zenkaku_Hankaku; + if (!strcmp(s, "Touroku")) return XK_Touroku; + if (!strcmp(s, "Massyo")) return XK_Massyo; + if (!strcmp(s, "Kana_Lock")) return XK_Kana_Lock; + if (!strcmp(s, "Kana_Shift")) return XK_Kana_Shift; + if (!strcmp(s, "Eisu_Shift")) return XK_Eisu_Shift; + if (!strcmp(s, "Eisu_toggle")) return XK_Eisu_toggle; + if (!strcmp(s, "Zen_Koho")) return XK_Zen_Koho; + if (!strcmp(s, "Mae_Koho")) return XK_Mae_Koho; + if (!strcmp(s, "Home")) return XK_Home; + if (!strcmp(s, "Left")) return XK_Left; + if (!strcmp(s, "Up")) return XK_Up; + if (!strcmp(s, "Right")) return XK_Right; + if (!strcmp(s, "Down")) return XK_Down; + if (!strcmp(s, "Prior")) return XK_Prior; + if (!strcmp(s, "Page_Up")) return XK_Page_Up; + if (!strcmp(s, "Next")) return XK_Next; + if (!strcmp(s, "Page_Down")) return XK_Page_Down; + if (!strcmp(s, "End")) return XK_End; + if (!strcmp(s, "Begin")) return XK_Begin; + if (!strcmp(s, "Select")) return XK_Select; + if (!strcmp(s, "Print")) return XK_Print; + if (!strcmp(s, "Execute")) return XK_Execute; + if (!strcmp(s, "Insert")) return XK_Insert; + if (!strcmp(s, "Undo")) return XK_Undo; + if (!strcmp(s, "Redo")) return XK_Redo; + if (!strcmp(s, "Menu")) return XK_Menu; + if (!strcmp(s, "Find")) return XK_Find; + if (!strcmp(s, "Cancel")) return XK_Cancel; + if (!strcmp(s, "Help")) return XK_Help; + if (!strcmp(s, "Break")) return XK_Break; + if (!strcmp(s, "Mode_switch")) return XK_Mode_switch; + if (!strcmp(s, "script_switch")) return XK_script_switch; + if (!strcmp(s, "Num_Lock")) return XK_Num_Lock; + if (!strcmp(s, "KP_Space")) return XK_KP_Space; + if (!strcmp(s, "KP_Tab")) return XK_KP_Tab; + if (!strcmp(s, "KP_Enter")) return XK_KP_Enter; + if (!strcmp(s, "KP_F1")) return XK_KP_F1; + if (!strcmp(s, "KP_F2")) return XK_KP_F2; + if (!strcmp(s, "KP_F3")) return XK_KP_F3; + if (!strcmp(s, "KP_F4")) return XK_KP_F4; + if (!strcmp(s, "KP_Home")) return XK_KP_Home; + if (!strcmp(s, "KP_Left")) return XK_KP_Left; + if (!strcmp(s, "KP_Up")) return XK_KP_Up; + if (!strcmp(s, "KP_Right")) return XK_KP_Right; + if (!strcmp(s, "KP_Down")) return XK_KP_Down; + if (!strcmp(s, "KP_Prior")) return XK_KP_Prior; + if (!strcmp(s, "KP_Page_Up")) return XK_KP_Page_Up; + if (!strcmp(s, "KP_Next")) return XK_KP_Next; + if (!strcmp(s, "KP_Page_Down")) return XK_KP_Page_Down; + if (!strcmp(s, "KP_End")) return XK_KP_End; + if (!strcmp(s, "KP_Begin")) return XK_KP_Begin; + if (!strcmp(s, "KP_Insert")) return XK_KP_Insert; + if (!strcmp(s, "KP_Delete")) return XK_KP_Delete; + if (!strcmp(s, "KP_Equal")) return XK_KP_Equal; + if (!strcmp(s, "KP_Multiply")) return XK_KP_Multiply; + if (!strcmp(s, "KP_Add")) return XK_KP_Add; + if (!strcmp(s, "KP_Separator")) return XK_KP_Separator; + if (!strcmp(s, "KP_Subtract")) return XK_KP_Subtract; + if (!strcmp(s, "KP_Decimal")) return XK_KP_Decimal; + if (!strcmp(s, "KP_Divide")) return XK_KP_Divide; + if (!strcmp(s, "KP_0")) return XK_KP_0; + if (!strcmp(s, "KP_1")) return XK_KP_1; + if (!strcmp(s, "KP_2")) return XK_KP_2; + if (!strcmp(s, "KP_3")) return XK_KP_3; + if (!strcmp(s, "KP_4")) return XK_KP_4; + if (!strcmp(s, "KP_5")) return XK_KP_5; + if (!strcmp(s, "KP_6")) return XK_KP_6; + if (!strcmp(s, "KP_7")) return XK_KP_7; + if (!strcmp(s, "KP_8")) return XK_KP_8; + if (!strcmp(s, "KP_9")) return XK_KP_9; + if (!strcmp(s, "F1")) return XK_F1; + if (!strcmp(s, "F2")) return XK_F2; + if (!strcmp(s, "F3")) return XK_F3; + if (!strcmp(s, "F4")) return XK_F4; + if (!strcmp(s, "F5")) return XK_F5; + if (!strcmp(s, "F6")) return XK_F6; + if (!strcmp(s, "F7")) return XK_F7; + if (!strcmp(s, "F8")) return XK_F8; + if (!strcmp(s, "F9")) return XK_F9; + if (!strcmp(s, "F10")) return XK_F10; + if (!strcmp(s, "F11")) return XK_F11; + if (!strcmp(s, "L1")) return XK_L1; + if (!strcmp(s, "F12")) return XK_F12; + if (!strcmp(s, "L2")) return XK_L2; + if (!strcmp(s, "F13")) return XK_F13; + if (!strcmp(s, "L3")) return XK_L3; + if (!strcmp(s, "F14")) return XK_F14; + if (!strcmp(s, "L4")) return XK_L4; + if (!strcmp(s, "F15")) return XK_F15; + if (!strcmp(s, "L5")) return XK_L5; + if (!strcmp(s, "F16")) return XK_F16; + if (!strcmp(s, "L6")) return XK_L6; + if (!strcmp(s, "F17")) return XK_F17; + if (!strcmp(s, "L7")) return XK_L7; + if (!strcmp(s, "F18")) return XK_F18; + if (!strcmp(s, "L8")) return XK_L8; + if (!strcmp(s, "F19")) return XK_F19; + if (!strcmp(s, "L9")) return XK_L9; + if (!strcmp(s, "F20")) return XK_F20; + if (!strcmp(s, "L10")) return XK_L10; + if (!strcmp(s, "F21")) return XK_F21; + if (!strcmp(s, "R1")) return XK_R1; + if (!strcmp(s, "F22")) return XK_F22; + if (!strcmp(s, "R2")) return XK_R2; + if (!strcmp(s, "F23")) return XK_F23; + if (!strcmp(s, "R3")) return XK_R3; + if (!strcmp(s, "F24")) return XK_F24; + if (!strcmp(s, "R4")) return XK_R4; + if (!strcmp(s, "F25")) return XK_F25; + if (!strcmp(s, "R5")) return XK_R5; + if (!strcmp(s, "F26")) return XK_F26; + if (!strcmp(s, "R6")) return XK_R6; + if (!strcmp(s, "F27")) return XK_F27; + if (!strcmp(s, "R7")) return XK_R7; + if (!strcmp(s, "F28")) return XK_F28; + if (!strcmp(s, "R8")) return XK_R8; + if (!strcmp(s, "F29")) return XK_F29; + if (!strcmp(s, "R9")) return XK_R9; + if (!strcmp(s, "F30")) return XK_F30; + if (!strcmp(s, "R10")) return XK_R10; + if (!strcmp(s, "F31")) return XK_F31; + if (!strcmp(s, "R11")) return XK_R11; + if (!strcmp(s, "F32")) return XK_F32; + if (!strcmp(s, "R12")) return XK_R12; + if (!strcmp(s, "F33")) return XK_F33; + if (!strcmp(s, "R13")) return XK_R13; + if (!strcmp(s, "F34")) return XK_F34; + if (!strcmp(s, "R14")) return XK_R14; + if (!strcmp(s, "F35")) return XK_F35; + if (!strcmp(s, "R15")) return XK_R15; + if (!strcmp(s, "Shift_L")) return XK_Shift_L; + if (!strcmp(s, "Shift_R")) return XK_Shift_R; + if (!strcmp(s, "Control_L")) return XK_Control_L; + if (!strcmp(s, "Control_R")) return XK_Control_R; + if (!strcmp(s, "Caps_Lock")) return XK_Caps_Lock; + if (!strcmp(s, "Shift_Lock")) return XK_Shift_Lock; + if (!strcmp(s, "Meta_L")) return XK_Meta_L; + if (!strcmp(s, "Meta_R")) return XK_Meta_R; + if (!strcmp(s, "Alt_L")) return XK_Alt_L; + if (!strcmp(s, "Alt_R")) return XK_Alt_R; + if (!strcmp(s, "Super_L")) return XK_Super_L; + if (!strcmp(s, "Super_R")) return XK_Super_R; + if (!strcmp(s, "Hyper_L")) return XK_Hyper_L; + if (!strcmp(s, "Hyper_R")) return XK_Hyper_R; +#endif /* XK_MISCELLANY */ +#ifdef XK_XKB_KEYS + if (!strcmp(s, "ISO_Lock")) return XK_ISO_Lock; + if (!strcmp(s, "ISO_Level2_Latch")) return XK_ISO_Level2_Latch; + if (!strcmp(s, "ISO_Level3_Shift")) return XK_ISO_Level3_Shift; + if (!strcmp(s, "ISO_Level3_Latch")) return XK_ISO_Level3_Latch; + if (!strcmp(s, "ISO_Level3_Lock")) return XK_ISO_Level3_Lock; + if (!strcmp(s, "ISO_Group_Shift")) return XK_ISO_Group_Shift; + if (!strcmp(s, "ISO_Group_Latch")) return XK_ISO_Group_Latch; + if (!strcmp(s, "ISO_Group_Lock")) return XK_ISO_Group_Lock; + if (!strcmp(s, "ISO_Next_Group")) return XK_ISO_Next_Group; + if (!strcmp(s, "ISO_Next_Group_Lock")) return XK_ISO_Next_Group_Lock; + if (!strcmp(s, "ISO_Prev_Group")) return XK_ISO_Prev_Group; + if (!strcmp(s, "ISO_Prev_Group_Lock")) return XK_ISO_Prev_Group_Lock; + if (!strcmp(s, "ISO_First_Group")) return XK_ISO_First_Group; + if (!strcmp(s, "ISO_First_Group_Lock")) return XK_ISO_First_Group_Lock; + if (!strcmp(s, "ISO_Last_Group")) return XK_ISO_Last_Group; + if (!strcmp(s, "ISO_Last_Group_Lock")) return XK_ISO_Last_Group_Lock; + if (!strcmp(s, "ISO_Left_Tab")) return XK_ISO_Left_Tab; + if (!strcmp(s, "ISO_Move_Line_Up")) return XK_ISO_Move_Line_Up; + if (!strcmp(s, "ISO_Move_Line_Down")) return XK_ISO_Move_Line_Down; + if (!strcmp(s, "ISO_Partial_Line_Up")) return XK_ISO_Partial_Line_Up; + if (!strcmp(s, "ISO_Partial_Line_Down")) return XK_ISO_Partial_Line_Down; + if (!strcmp(s, "ISO_Partial_Space_Left")) return XK_ISO_Partial_Space_Left; + if (!strcmp(s, "ISO_Partial_Space_Right")) return XK_ISO_Partial_Space_Right; + if (!strcmp(s, "ISO_Set_Margin_Left")) return XK_ISO_Set_Margin_Left; + if (!strcmp(s, "ISO_Set_Margin_Right")) return XK_ISO_Set_Margin_Right; + if (!strcmp(s, "ISO_Release_Margin_Left")) return XK_ISO_Release_Margin_Left; + if (!strcmp(s, "ISO_Release_Margin_Right")) return XK_ISO_Release_Margin_Right; + if (!strcmp(s, "ISO_Release_Both_Margins")) return XK_ISO_Release_Both_Margins; + if (!strcmp(s, "ISO_Fast_Cursor_Left")) return XK_ISO_Fast_Cursor_Left; + if (!strcmp(s, "ISO_Fast_Cursor_Right")) return XK_ISO_Fast_Cursor_Right; + if (!strcmp(s, "ISO_Fast_Cursor_Up")) return XK_ISO_Fast_Cursor_Up; + if (!strcmp(s, "ISO_Fast_Cursor_Down")) return XK_ISO_Fast_Cursor_Down; + if (!strcmp(s, "ISO_Continuous_Underline")) return XK_ISO_Continuous_Underline; + if (!strcmp(s, "ISO_Discontinuous_Underline")) return XK_ISO_Discontinuous_Underline; + if (!strcmp(s, "ISO_Emphasize")) return XK_ISO_Emphasize; + if (!strcmp(s, "ISO_Center_Object")) return XK_ISO_Center_Object; + if (!strcmp(s, "ISO_Enter")) return XK_ISO_Enter; + if (!strcmp(s, "dead_grave")) return XK_dead_grave; + if (!strcmp(s, "dead_acute")) return XK_dead_acute; + if (!strcmp(s, "dead_circumflex")) return XK_dead_circumflex; + if (!strcmp(s, "dead_tilde")) return XK_dead_tilde; + if (!strcmp(s, "dead_macron")) return XK_dead_macron; + if (!strcmp(s, "dead_breve")) return XK_dead_breve; + if (!strcmp(s, "dead_abovedot")) return XK_dead_abovedot; + if (!strcmp(s, "dead_diaeresis")) return XK_dead_diaeresis; + if (!strcmp(s, "dead_abovering")) return XK_dead_abovering; + if (!strcmp(s, "dead_doubleacute")) return XK_dead_doubleacute; + if (!strcmp(s, "dead_caron")) return XK_dead_caron; + if (!strcmp(s, "dead_cedilla")) return XK_dead_cedilla; + if (!strcmp(s, "dead_ogonek")) return XK_dead_ogonek; + if (!strcmp(s, "dead_iota")) return XK_dead_iota; + if (!strcmp(s, "dead_voiced_sound")) return XK_dead_voiced_sound; + if (!strcmp(s, "dead_semivoiced_sound")) return XK_dead_semivoiced_sound; + if (!strcmp(s, "dead_belowdot")) return XK_dead_belowdot; + if (!strcmp(s, "First_Virtual_Screen")) return XK_First_Virtual_Screen; + if (!strcmp(s, "Prev_Virtual_Screen")) return XK_Prev_Virtual_Screen; + if (!strcmp(s, "Next_Virtual_Screen")) return XK_Next_Virtual_Screen; + if (!strcmp(s, "Last_Virtual_Screen")) return XK_Last_Virtual_Screen; + if (!strcmp(s, "Terminate_Server")) return XK_Terminate_Server; + if (!strcmp(s, "AccessX_Enable")) return XK_AccessX_Enable; + if (!strcmp(s, "AccessX_Feedback_Enable")) return XK_AccessX_Feedback_Enable; + if (!strcmp(s, "RepeatKeys_Enable")) return XK_RepeatKeys_Enable; + if (!strcmp(s, "SlowKeys_Enable")) return XK_SlowKeys_Enable; + if (!strcmp(s, "BounceKeys_Enable")) return XK_BounceKeys_Enable; + if (!strcmp(s, "StickyKeys_Enable")) return XK_StickyKeys_Enable; + if (!strcmp(s, "MouseKeys_Enable")) return XK_MouseKeys_Enable; + if (!strcmp(s, "MouseKeys_Accel_Enable")) return XK_MouseKeys_Accel_Enable; + if (!strcmp(s, "Overlay1_Enable")) return XK_Overlay1_Enable; + if (!strcmp(s, "Overlay2_Enable")) return XK_Overlay2_Enable; + if (!strcmp(s, "AudibleBell_Enable")) return XK_AudibleBell_Enable; + if (!strcmp(s, "Pointer_Left")) return XK_Pointer_Left; + if (!strcmp(s, "Pointer_Right")) return XK_Pointer_Right; + if (!strcmp(s, "Pointer_Up")) return XK_Pointer_Up; + if (!strcmp(s, "Pointer_Down")) return XK_Pointer_Down; + if (!strcmp(s, "Pointer_UpLeft")) return XK_Pointer_UpLeft; + if (!strcmp(s, "Pointer_UpRight")) return XK_Pointer_UpRight; + if (!strcmp(s, "Pointer_DownLeft")) return XK_Pointer_DownLeft; + if (!strcmp(s, "Pointer_DownRight")) return XK_Pointer_DownRight; + if (!strcmp(s, "Pointer_Button_Dflt")) return XK_Pointer_Button_Dflt; + if (!strcmp(s, "Pointer_Button1")) return XK_Pointer_Button1; + if (!strcmp(s, "Pointer_Button2")) return XK_Pointer_Button2; + if (!strcmp(s, "Pointer_Button3")) return XK_Pointer_Button3; + if (!strcmp(s, "Pointer_Button4")) return XK_Pointer_Button4; + if (!strcmp(s, "Pointer_Button5")) return XK_Pointer_Button5; + if (!strcmp(s, "Pointer_DblClick_Dflt")) return XK_Pointer_DblClick_Dflt; + if (!strcmp(s, "Pointer_DblClick1")) return XK_Pointer_DblClick1; + if (!strcmp(s, "Pointer_DblClick2")) return XK_Pointer_DblClick2; + if (!strcmp(s, "Pointer_DblClick3")) return XK_Pointer_DblClick3; + if (!strcmp(s, "Pointer_DblClick4")) return XK_Pointer_DblClick4; + if (!strcmp(s, "Pointer_DblClick5")) return XK_Pointer_DblClick5; + if (!strcmp(s, "Pointer_Drag_Dflt")) return XK_Pointer_Drag_Dflt; + if (!strcmp(s, "Pointer_Drag1")) return XK_Pointer_Drag1; + if (!strcmp(s, "Pointer_Drag2")) return XK_Pointer_Drag2; + if (!strcmp(s, "Pointer_Drag3")) return XK_Pointer_Drag3; + if (!strcmp(s, "Pointer_Drag4")) return XK_Pointer_Drag4; + if (!strcmp(s, "Pointer_Drag5")) return XK_Pointer_Drag5; + if (!strcmp(s, "Pointer_EnableKeys")) return XK_Pointer_EnableKeys; + if (!strcmp(s, "Pointer_Accelerate")) return XK_Pointer_Accelerate; + if (!strcmp(s, "Pointer_DfltBtnNext")) return XK_Pointer_DfltBtnNext; + if (!strcmp(s, "Pointer_DfltBtnPrev")) return XK_Pointer_DfltBtnPrev; +#endif +#ifdef XK_3270 + if (!strcmp(s, "3270_Duplicate")) return XK_3270_Duplicate; + if (!strcmp(s, "3270_FieldMark")) return XK_3270_FieldMark; + if (!strcmp(s, "3270_Right2")) return XK_3270_Right2; + if (!strcmp(s, "3270_Left2")) return XK_3270_Left2; + if (!strcmp(s, "3270_BackTab")) return XK_3270_BackTab; + if (!strcmp(s, "3270_EraseEOF")) return XK_3270_EraseEOF; + if (!strcmp(s, "3270_EraseInput")) return XK_3270_EraseInput; + if (!strcmp(s, "3270_Reset")) return XK_3270_Reset; + if (!strcmp(s, "3270_Quit")) return XK_3270_Quit; + if (!strcmp(s, "3270_PA1")) return XK_3270_PA1; + if (!strcmp(s, "3270_PA2")) return XK_3270_PA2; + if (!strcmp(s, "3270_PA3")) return XK_3270_PA3; + if (!strcmp(s, "3270_Test")) return XK_3270_Test; + if (!strcmp(s, "3270_Attn")) return XK_3270_Attn; + if (!strcmp(s, "3270_CursorBlink")) return XK_3270_CursorBlink; + if (!strcmp(s, "3270_AltCursor")) return XK_3270_AltCursor; + if (!strcmp(s, "3270_KeyClick")) return XK_3270_KeyClick; + if (!strcmp(s, "3270_Jump")) return XK_3270_Jump; + if (!strcmp(s, "3270_Ident")) return XK_3270_Ident; + if (!strcmp(s, "3270_Rule")) return XK_3270_Rule; + if (!strcmp(s, "3270_Copy")) return XK_3270_Copy; + if (!strcmp(s, "3270_Play")) return XK_3270_Play; + if (!strcmp(s, "3270_Setup")) return XK_3270_Setup; + if (!strcmp(s, "3270_Record")) return XK_3270_Record; + if (!strcmp(s, "3270_ChangeScreen")) return XK_3270_ChangeScreen; + if (!strcmp(s, "3270_DeleteWord")) return XK_3270_DeleteWord; + if (!strcmp(s, "3270_ExSelect")) return XK_3270_ExSelect; + if (!strcmp(s, "3270_CursorSelect")) return XK_3270_CursorSelect; + if (!strcmp(s, "3270_PrintScreen")) return XK_3270_PrintScreen; + if (!strcmp(s, "3270_Enter")) return XK_3270_Enter; +#endif +#ifdef XK_LATIN1 + if (!strcmp(s, "space")) return XK_space; + if (!strcmp(s, "exclam")) return XK_exclam; + if (!strcmp(s, "quotedbl")) return XK_quotedbl; + if (!strcmp(s, "numbersign")) return XK_numbersign; + if (!strcmp(s, "dollar")) return XK_dollar; + if (!strcmp(s, "percent")) return XK_percent; + if (!strcmp(s, "ampersand")) return XK_ampersand; + if (!strcmp(s, "apostrophe")) return XK_apostrophe; + if (!strcmp(s, "quoteright")) return XK_quoteright; + if (!strcmp(s, "parenleft")) return XK_parenleft; + if (!strcmp(s, "parenright")) return XK_parenright; + if (!strcmp(s, "asterisk")) return XK_asterisk; + if (!strcmp(s, "plus")) return XK_plus; + if (!strcmp(s, "comma")) return XK_comma; + if (!strcmp(s, "minus")) return XK_minus; + if (!strcmp(s, "period")) return XK_period; + if (!strcmp(s, "slash")) return XK_slash; + if (!strcmp(s, "0")) return XK_0; + if (!strcmp(s, "1")) return XK_1; + if (!strcmp(s, "2")) return XK_2; + if (!strcmp(s, "3")) return XK_3; + if (!strcmp(s, "4")) return XK_4; + if (!strcmp(s, "5")) return XK_5; + if (!strcmp(s, "6")) return XK_6; + if (!strcmp(s, "7")) return XK_7; + if (!strcmp(s, "8")) return XK_8; + if (!strcmp(s, "9")) return XK_9; + if (!strcmp(s, "colon")) return XK_colon; + if (!strcmp(s, "semicolon")) return XK_semicolon; + if (!strcmp(s, "less")) return XK_less; + if (!strcmp(s, "equal")) return XK_equal; + if (!strcmp(s, "greater")) return XK_greater; + if (!strcmp(s, "question")) return XK_question; + if (!strcmp(s, "at")) return XK_at; + if (!strcmp(s, "A")) return XK_A; + if (!strcmp(s, "B")) return XK_B; + if (!strcmp(s, "C")) return XK_C; + if (!strcmp(s, "D")) return XK_D; + if (!strcmp(s, "E")) return XK_E; + if (!strcmp(s, "F")) return XK_F; + if (!strcmp(s, "G")) return XK_G; + if (!strcmp(s, "H")) return XK_H; + if (!strcmp(s, "I")) return XK_I; + if (!strcmp(s, "J")) return XK_J; + if (!strcmp(s, "K")) return XK_K; + if (!strcmp(s, "L")) return XK_L; + if (!strcmp(s, "M")) return XK_M; + if (!strcmp(s, "N")) return XK_N; + if (!strcmp(s, "O")) return XK_O; + if (!strcmp(s, "P")) return XK_P; + if (!strcmp(s, "Q")) return XK_Q; + if (!strcmp(s, "R")) return XK_R; + if (!strcmp(s, "S")) return XK_S; + if (!strcmp(s, "T")) return XK_T; + if (!strcmp(s, "U")) return XK_U; + if (!strcmp(s, "V")) return XK_V; + if (!strcmp(s, "W")) return XK_W; + if (!strcmp(s, "X")) return XK_X; + if (!strcmp(s, "Y")) return XK_Y; + if (!strcmp(s, "Z")) return XK_Z; + if (!strcmp(s, "bracketleft")) return XK_bracketleft; + if (!strcmp(s, "backslash")) return XK_backslash; + if (!strcmp(s, "bracketright")) return XK_bracketright; + if (!strcmp(s, "asciicircum")) return XK_asciicircum; + if (!strcmp(s, "underscore")) return XK_underscore; + if (!strcmp(s, "grave")) return XK_grave; + if (!strcmp(s, "quoteleft")) return XK_quoteleft; + if (!strcmp(s, "a")) return XK_a; + if (!strcmp(s, "b")) return XK_b; + if (!strcmp(s, "c")) return XK_c; + if (!strcmp(s, "d")) return XK_d; + if (!strcmp(s, "e")) return XK_e; + if (!strcmp(s, "f")) return XK_f; + if (!strcmp(s, "g")) return XK_g; + if (!strcmp(s, "h")) return XK_h; + if (!strcmp(s, "i")) return XK_i; + if (!strcmp(s, "j")) return XK_j; + if (!strcmp(s, "k")) return XK_k; + if (!strcmp(s, "l")) return XK_l; + if (!strcmp(s, "m")) return XK_m; + if (!strcmp(s, "n")) return XK_n; + if (!strcmp(s, "o")) return XK_o; + if (!strcmp(s, "p")) return XK_p; + if (!strcmp(s, "q")) return XK_q; + if (!strcmp(s, "r")) return XK_r; + if (!strcmp(s, "s")) return XK_s; + if (!strcmp(s, "t")) return XK_t; + if (!strcmp(s, "u")) return XK_u; + if (!strcmp(s, "v")) return XK_v; + if (!strcmp(s, "w")) return XK_w; + if (!strcmp(s, "x")) return XK_x; + if (!strcmp(s, "y")) return XK_y; + if (!strcmp(s, "z")) return XK_z; + if (!strcmp(s, "braceleft")) return XK_braceleft; + if (!strcmp(s, "bar")) return XK_bar; + if (!strcmp(s, "braceright")) return XK_braceright; + if (!strcmp(s, "asciitilde")) return XK_asciitilde; + if (!strcmp(s, "nobreakspace")) return XK_nobreakspace; + if (!strcmp(s, "exclamdown")) return XK_exclamdown; + if (!strcmp(s, "cent")) return XK_cent; + if (!strcmp(s, "sterling")) return XK_sterling; + if (!strcmp(s, "currency")) return XK_currency; + if (!strcmp(s, "yen")) return XK_yen; + if (!strcmp(s, "brokenbar")) return XK_brokenbar; + if (!strcmp(s, "section")) return XK_section; + if (!strcmp(s, "diaeresis")) return XK_diaeresis; + if (!strcmp(s, "copyright")) return XK_copyright; + if (!strcmp(s, "ordfeminine")) return XK_ordfeminine; + if (!strcmp(s, "guillemotleft")) return XK_guillemotleft; + if (!strcmp(s, "notsign")) return XK_notsign; + if (!strcmp(s, "hyphen")) return XK_hyphen; + if (!strcmp(s, "registered")) return XK_registered; + if (!strcmp(s, "macron")) return XK_macron; + if (!strcmp(s, "degree")) return XK_degree; + if (!strcmp(s, "plusminus")) return XK_plusminus; + if (!strcmp(s, "twosuperior")) return XK_twosuperior; + if (!strcmp(s, "threesuperior")) return XK_threesuperior; + if (!strcmp(s, "acute")) return XK_acute; + if (!strcmp(s, "mu")) return XK_mu; + if (!strcmp(s, "paragraph")) return XK_paragraph; + if (!strcmp(s, "periodcentered")) return XK_periodcentered; + if (!strcmp(s, "cedilla")) return XK_cedilla; + if (!strcmp(s, "onesuperior")) return XK_onesuperior; + if (!strcmp(s, "masculine")) return XK_masculine; + if (!strcmp(s, "guillemotright")) return XK_guillemotright; + if (!strcmp(s, "onequarter")) return XK_onequarter; + if (!strcmp(s, "onehalf")) return XK_onehalf; + if (!strcmp(s, "threequarters")) return XK_threequarters; + if (!strcmp(s, "questiondown")) return XK_questiondown; + if (!strcmp(s, "Agrave")) return XK_Agrave; + if (!strcmp(s, "Aacute")) return XK_Aacute; + if (!strcmp(s, "Acircumflex")) return XK_Acircumflex; + if (!strcmp(s, "Atilde")) return XK_Atilde; + if (!strcmp(s, "Adiaeresis")) return XK_Adiaeresis; + if (!strcmp(s, "Aring")) return XK_Aring; + if (!strcmp(s, "AE")) return XK_AE; + if (!strcmp(s, "Ccedilla")) return XK_Ccedilla; + if (!strcmp(s, "Egrave")) return XK_Egrave; + if (!strcmp(s, "Eacute")) return XK_Eacute; + if (!strcmp(s, "Ecircumflex")) return XK_Ecircumflex; + if (!strcmp(s, "Ediaeresis")) return XK_Ediaeresis; + if (!strcmp(s, "Igrave")) return XK_Igrave; + if (!strcmp(s, "Iacute")) return XK_Iacute; + if (!strcmp(s, "Icircumflex")) return XK_Icircumflex; + if (!strcmp(s, "Idiaeresis")) return XK_Idiaeresis; + if (!strcmp(s, "ETH")) return XK_ETH; + if (!strcmp(s, "Eth")) return XK_Eth; + if (!strcmp(s, "Ntilde")) return XK_Ntilde; + if (!strcmp(s, "Ograve")) return XK_Ograve; + if (!strcmp(s, "Oacute")) return XK_Oacute; + if (!strcmp(s, "Ocircumflex")) return XK_Ocircumflex; + if (!strcmp(s, "Otilde")) return XK_Otilde; + if (!strcmp(s, "Odiaeresis")) return XK_Odiaeresis; + if (!strcmp(s, "multiply")) return XK_multiply; + if (!strcmp(s, "Ooblique")) return XK_Ooblique; + if (!strcmp(s, "Ugrave")) return XK_Ugrave; + if (!strcmp(s, "Uacute")) return XK_Uacute; + if (!strcmp(s, "Ucircumflex")) return XK_Ucircumflex; + if (!strcmp(s, "Udiaeresis")) return XK_Udiaeresis; + if (!strcmp(s, "Yacute")) return XK_Yacute; + if (!strcmp(s, "THORN")) return XK_THORN; + if (!strcmp(s, "Thorn")) return XK_Thorn; + if (!strcmp(s, "ssharp")) return XK_ssharp; + if (!strcmp(s, "agrave")) return XK_agrave; + if (!strcmp(s, "aacute")) return XK_aacute; + if (!strcmp(s, "acircumflex")) return XK_acircumflex; + if (!strcmp(s, "atilde")) return XK_atilde; + if (!strcmp(s, "adiaeresis")) return XK_adiaeresis; + if (!strcmp(s, "aring")) return XK_aring; + if (!strcmp(s, "ae")) return XK_ae; + if (!strcmp(s, "ccedilla")) return XK_ccedilla; + if (!strcmp(s, "egrave")) return XK_egrave; + if (!strcmp(s, "eacute")) return XK_eacute; + if (!strcmp(s, "ecircumflex")) return XK_ecircumflex; + if (!strcmp(s, "ediaeresis")) return XK_ediaeresis; + if (!strcmp(s, "igrave")) return XK_igrave; + if (!strcmp(s, "iacute")) return XK_iacute; + if (!strcmp(s, "icircumflex")) return XK_icircumflex; + if (!strcmp(s, "idiaeresis")) return XK_idiaeresis; + if (!strcmp(s, "eth")) return XK_eth; + if (!strcmp(s, "ntilde")) return XK_ntilde; + if (!strcmp(s, "ograve")) return XK_ograve; + if (!strcmp(s, "oacute")) return XK_oacute; + if (!strcmp(s, "ocircumflex")) return XK_ocircumflex; + if (!strcmp(s, "otilde")) return XK_otilde; + if (!strcmp(s, "odiaeresis")) return XK_odiaeresis; + if (!strcmp(s, "division")) return XK_division; + if (!strcmp(s, "oslash")) return XK_oslash; + if (!strcmp(s, "ugrave")) return XK_ugrave; + if (!strcmp(s, "uacute")) return XK_uacute; + if (!strcmp(s, "ucircumflex")) return XK_ucircumflex; + if (!strcmp(s, "udiaeresis")) return XK_udiaeresis; + if (!strcmp(s, "yacute")) return XK_yacute; + if (!strcmp(s, "thorn")) return XK_thorn; + if (!strcmp(s, "ydiaeresis")) return XK_ydiaeresis; +#endif /* XK_LATIN1 */ +#ifdef XK_LATIN2 + if (!strcmp(s, "Aogonek")) return XK_Aogonek; + if (!strcmp(s, "breve")) return XK_breve; + if (!strcmp(s, "Lstroke")) return XK_Lstroke; + if (!strcmp(s, "Lcaron")) return XK_Lcaron; + if (!strcmp(s, "Sacute")) return XK_Sacute; + if (!strcmp(s, "Scaron")) return XK_Scaron; + if (!strcmp(s, "Scedilla")) return XK_Scedilla; + if (!strcmp(s, "Tcaron")) return XK_Tcaron; + if (!strcmp(s, "Zacute")) return XK_Zacute; + if (!strcmp(s, "Zcaron")) return XK_Zcaron; + if (!strcmp(s, "Zabovedot")) return XK_Zabovedot; + if (!strcmp(s, "aogonek")) return XK_aogonek; + if (!strcmp(s, "ogonek")) return XK_ogonek; + if (!strcmp(s, "lstroke")) return XK_lstroke; + if (!strcmp(s, "lcaron")) return XK_lcaron; + if (!strcmp(s, "sacute")) return XK_sacute; + if (!strcmp(s, "caron")) return XK_caron; + if (!strcmp(s, "scaron")) return XK_scaron; + if (!strcmp(s, "scedilla")) return XK_scedilla; + if (!strcmp(s, "tcaron")) return XK_tcaron; + if (!strcmp(s, "zacute")) return XK_zacute; + if (!strcmp(s, "doubleacute")) return XK_doubleacute; + if (!strcmp(s, "zcaron")) return XK_zcaron; + if (!strcmp(s, "zabovedot")) return XK_zabovedot; + if (!strcmp(s, "Racute")) return XK_Racute; + if (!strcmp(s, "Abreve")) return XK_Abreve; + if (!strcmp(s, "Lacute")) return XK_Lacute; + if (!strcmp(s, "Cacute")) return XK_Cacute; + if (!strcmp(s, "Ccaron")) return XK_Ccaron; + if (!strcmp(s, "Eogonek")) return XK_Eogonek; + if (!strcmp(s, "Ecaron")) return XK_Ecaron; + if (!strcmp(s, "Dcaron")) return XK_Dcaron; + if (!strcmp(s, "Dstroke")) return XK_Dstroke; + if (!strcmp(s, "Nacute")) return XK_Nacute; + if (!strcmp(s, "Ncaron")) return XK_Ncaron; + if (!strcmp(s, "Odoubleacute")) return XK_Odoubleacute; + if (!strcmp(s, "Rcaron")) return XK_Rcaron; + if (!strcmp(s, "Uring")) return XK_Uring; + if (!strcmp(s, "Udoubleacute")) return XK_Udoubleacute; + if (!strcmp(s, "Tcedilla")) return XK_Tcedilla; + if (!strcmp(s, "racute")) return XK_racute; + if (!strcmp(s, "abreve")) return XK_abreve; + if (!strcmp(s, "lacute")) return XK_lacute; + if (!strcmp(s, "cacute")) return XK_cacute; + if (!strcmp(s, "ccaron")) return XK_ccaron; + if (!strcmp(s, "eogonek")) return XK_eogonek; + if (!strcmp(s, "ecaron")) return XK_ecaron; + if (!strcmp(s, "dcaron")) return XK_dcaron; + if (!strcmp(s, "dstroke")) return XK_dstroke; + if (!strcmp(s, "nacute")) return XK_nacute; + if (!strcmp(s, "ncaron")) return XK_ncaron; + if (!strcmp(s, "odoubleacute")) return XK_odoubleacute; + if (!strcmp(s, "udoubleacute")) return XK_udoubleacute; + if (!strcmp(s, "rcaron")) return XK_rcaron; + if (!strcmp(s, "uring")) return XK_uring; + if (!strcmp(s, "tcedilla")) return XK_tcedilla; + if (!strcmp(s, "abovedot")) return XK_abovedot; +#endif /* XK_LATIN2 */ +#ifdef XK_LATIN3 + if (!strcmp(s, "Hstroke")) return XK_Hstroke; + if (!strcmp(s, "Hcircumflex")) return XK_Hcircumflex; + if (!strcmp(s, "Iabovedot")) return XK_Iabovedot; + if (!strcmp(s, "Gbreve")) return XK_Gbreve; + if (!strcmp(s, "Jcircumflex")) return XK_Jcircumflex; + if (!strcmp(s, "hstroke")) return XK_hstroke; + if (!strcmp(s, "hcircumflex")) return XK_hcircumflex; + if (!strcmp(s, "idotless")) return XK_idotless; + if (!strcmp(s, "gbreve")) return XK_gbreve; + if (!strcmp(s, "jcircumflex")) return XK_jcircumflex; + if (!strcmp(s, "Cabovedot")) return XK_Cabovedot; + if (!strcmp(s, "Ccircumflex")) return XK_Ccircumflex; + if (!strcmp(s, "Gabovedot")) return XK_Gabovedot; + if (!strcmp(s, "Gcircumflex")) return XK_Gcircumflex; + if (!strcmp(s, "Ubreve")) return XK_Ubreve; + if (!strcmp(s, "Scircumflex")) return XK_Scircumflex; + if (!strcmp(s, "cabovedot")) return XK_cabovedot; + if (!strcmp(s, "ccircumflex")) return XK_ccircumflex; + if (!strcmp(s, "gabovedot")) return XK_gabovedot; + if (!strcmp(s, "gcircumflex")) return XK_gcircumflex; + if (!strcmp(s, "ubreve")) return XK_ubreve; + if (!strcmp(s, "scircumflex")) return XK_scircumflex; +#endif /* XK_LATIN3 */ +#ifdef XK_LATIN4 + if (!strcmp(s, "kra")) return XK_kra; + if (!strcmp(s, "kappa")) return XK_kappa; + if (!strcmp(s, "Rcedilla")) return XK_Rcedilla; + if (!strcmp(s, "Itilde")) return XK_Itilde; + if (!strcmp(s, "Lcedilla")) return XK_Lcedilla; + if (!strcmp(s, "Emacron")) return XK_Emacron; + if (!strcmp(s, "Gcedilla")) return XK_Gcedilla; + if (!strcmp(s, "Tslash")) return XK_Tslash; + if (!strcmp(s, "rcedilla")) return XK_rcedilla; + if (!strcmp(s, "itilde")) return XK_itilde; + if (!strcmp(s, "lcedilla")) return XK_lcedilla; + if (!strcmp(s, "emacron")) return XK_emacron; + if (!strcmp(s, "gcedilla")) return XK_gcedilla; + if (!strcmp(s, "tslash")) return XK_tslash; + if (!strcmp(s, "ENG")) return XK_ENG; + if (!strcmp(s, "eng")) return XK_eng; + if (!strcmp(s, "Amacron")) return XK_Amacron; + if (!strcmp(s, "Iogonek")) return XK_Iogonek; + if (!strcmp(s, "Eabovedot")) return XK_Eabovedot; + if (!strcmp(s, "Imacron")) return XK_Imacron; + if (!strcmp(s, "Ncedilla")) return XK_Ncedilla; + if (!strcmp(s, "Omacron")) return XK_Omacron; + if (!strcmp(s, "Kcedilla")) return XK_Kcedilla; + if (!strcmp(s, "Uogonek")) return XK_Uogonek; + if (!strcmp(s, "Utilde")) return XK_Utilde; + if (!strcmp(s, "Umacron")) return XK_Umacron; + if (!strcmp(s, "amacron")) return XK_amacron; + if (!strcmp(s, "iogonek")) return XK_iogonek; + if (!strcmp(s, "eabovedot")) return XK_eabovedot; + if (!strcmp(s, "imacron")) return XK_imacron; + if (!strcmp(s, "ncedilla")) return XK_ncedilla; + if (!strcmp(s, "omacron")) return XK_omacron; + if (!strcmp(s, "kcedilla")) return XK_kcedilla; + if (!strcmp(s, "uogonek")) return XK_uogonek; + if (!strcmp(s, "utilde")) return XK_utilde; + if (!strcmp(s, "umacron")) return XK_umacron; +#endif /* XK_LATIN4 */ +#ifdef XK_KATAKANA + if (!strcmp(s, "overline")) return XK_overline; + if (!strcmp(s, "kana_fullstop")) return XK_kana_fullstop; + if (!strcmp(s, "kana_openingbracket")) return XK_kana_openingbracket; + if (!strcmp(s, "kana_closingbracket")) return XK_kana_closingbracket; + if (!strcmp(s, "kana_comma")) return XK_kana_comma; + if (!strcmp(s, "kana_conjunctive")) return XK_kana_conjunctive; + if (!strcmp(s, "kana_middledot")) return XK_kana_middledot; + if (!strcmp(s, "kana_WO")) return XK_kana_WO; + if (!strcmp(s, "kana_a")) return XK_kana_a; + if (!strcmp(s, "kana_i")) return XK_kana_i; + if (!strcmp(s, "kana_u")) return XK_kana_u; + if (!strcmp(s, "kana_e")) return XK_kana_e; + if (!strcmp(s, "kana_o")) return XK_kana_o; + if (!strcmp(s, "kana_ya")) return XK_kana_ya; + if (!strcmp(s, "kana_yu")) return XK_kana_yu; + if (!strcmp(s, "kana_yo")) return XK_kana_yo; + if (!strcmp(s, "kana_tsu")) return XK_kana_tsu; + if (!strcmp(s, "kana_tu")) return XK_kana_tu; + if (!strcmp(s, "prolongedsound")) return XK_prolongedsound; + if (!strcmp(s, "kana_A")) return XK_kana_A; + if (!strcmp(s, "kana_I")) return XK_kana_I; + if (!strcmp(s, "kana_U")) return XK_kana_U; + if (!strcmp(s, "kana_E")) return XK_kana_E; + if (!strcmp(s, "kana_O")) return XK_kana_O; + if (!strcmp(s, "kana_KA")) return XK_kana_KA; + if (!strcmp(s, "kana_KI")) return XK_kana_KI; + if (!strcmp(s, "kana_KU")) return XK_kana_KU; + if (!strcmp(s, "kana_KE")) return XK_kana_KE; + if (!strcmp(s, "kana_KO")) return XK_kana_KO; + if (!strcmp(s, "kana_SA")) return XK_kana_SA; + if (!strcmp(s, "kana_SHI")) return XK_kana_SHI; + if (!strcmp(s, "kana_SU")) return XK_kana_SU; + if (!strcmp(s, "kana_SE")) return XK_kana_SE; + if (!strcmp(s, "kana_SO")) return XK_kana_SO; + if (!strcmp(s, "kana_TA")) return XK_kana_TA; + if (!strcmp(s, "kana_CHI")) return XK_kana_CHI; + if (!strcmp(s, "kana_TI")) return XK_kana_TI; + if (!strcmp(s, "kana_TSU")) return XK_kana_TSU; + if (!strcmp(s, "kana_TU")) return XK_kana_TU; + if (!strcmp(s, "kana_TE")) return XK_kana_TE; + if (!strcmp(s, "kana_TO")) return XK_kana_TO; + if (!strcmp(s, "kana_NA")) return XK_kana_NA; + if (!strcmp(s, "kana_NI")) return XK_kana_NI; + if (!strcmp(s, "kana_NU")) return XK_kana_NU; + if (!strcmp(s, "kana_NE")) return XK_kana_NE; + if (!strcmp(s, "kana_NO")) return XK_kana_NO; + if (!strcmp(s, "kana_HA")) return XK_kana_HA; + if (!strcmp(s, "kana_HI")) return XK_kana_HI; + if (!strcmp(s, "kana_FU")) return XK_kana_FU; + if (!strcmp(s, "kana_HU")) return XK_kana_HU; + if (!strcmp(s, "kana_HE")) return XK_kana_HE; + if (!strcmp(s, "kana_HO")) return XK_kana_HO; + if (!strcmp(s, "kana_MA")) return XK_kana_MA; + if (!strcmp(s, "kana_MI")) return XK_kana_MI; + if (!strcmp(s, "kana_MU")) return XK_kana_MU; + if (!strcmp(s, "kana_ME")) return XK_kana_ME; + if (!strcmp(s, "kana_MO")) return XK_kana_MO; + if (!strcmp(s, "kana_YA")) return XK_kana_YA; + if (!strcmp(s, "kana_YU")) return XK_kana_YU; + if (!strcmp(s, "kana_YO")) return XK_kana_YO; + if (!strcmp(s, "kana_RA")) return XK_kana_RA; + if (!strcmp(s, "kana_RI")) return XK_kana_RI; + if (!strcmp(s, "kana_RU")) return XK_kana_RU; + if (!strcmp(s, "kana_RE")) return XK_kana_RE; + if (!strcmp(s, "kana_RO")) return XK_kana_RO; + if (!strcmp(s, "kana_WA")) return XK_kana_WA; + if (!strcmp(s, "kana_N")) return XK_kana_N; + if (!strcmp(s, "voicedsound")) return XK_voicedsound; + if (!strcmp(s, "semivoicedsound")) return XK_semivoicedsound; + if (!strcmp(s, "kana_switch")) return XK_kana_switch; +#endif /* XK_KATAKANA */ +#ifdef XK_ARABIC + if (!strcmp(s, "Arabic_comma")) return XK_Arabic_comma; + if (!strcmp(s, "Arabic_semicolon")) return XK_Arabic_semicolon; + if (!strcmp(s, "Arabic_question_mark")) return XK_Arabic_question_mark; + if (!strcmp(s, "Arabic_hamza")) return XK_Arabic_hamza; + if (!strcmp(s, "Arabic_maddaonalef")) return XK_Arabic_maddaonalef; + if (!strcmp(s, "Arabic_hamzaonalef")) return XK_Arabic_hamzaonalef; + if (!strcmp(s, "Arabic_hamzaonwaw")) return XK_Arabic_hamzaonwaw; + if (!strcmp(s, "Arabic_hamzaunderalef")) return XK_Arabic_hamzaunderalef; + if (!strcmp(s, "Arabic_hamzaonyeh")) return XK_Arabic_hamzaonyeh; + if (!strcmp(s, "Arabic_alef")) return XK_Arabic_alef; + if (!strcmp(s, "Arabic_beh")) return XK_Arabic_beh; + if (!strcmp(s, "Arabic_tehmarbuta")) return XK_Arabic_tehmarbuta; + if (!strcmp(s, "Arabic_teh")) return XK_Arabic_teh; + if (!strcmp(s, "Arabic_theh")) return XK_Arabic_theh; + if (!strcmp(s, "Arabic_jeem")) return XK_Arabic_jeem; + if (!strcmp(s, "Arabic_hah")) return XK_Arabic_hah; + if (!strcmp(s, "Arabic_khah")) return XK_Arabic_khah; + if (!strcmp(s, "Arabic_dal")) return XK_Arabic_dal; + if (!strcmp(s, "Arabic_thal")) return XK_Arabic_thal; + if (!strcmp(s, "Arabic_ra")) return XK_Arabic_ra; + if (!strcmp(s, "Arabic_zain")) return XK_Arabic_zain; + if (!strcmp(s, "Arabic_seen")) return XK_Arabic_seen; + if (!strcmp(s, "Arabic_sheen")) return XK_Arabic_sheen; + if (!strcmp(s, "Arabic_sad")) return XK_Arabic_sad; + if (!strcmp(s, "Arabic_dad")) return XK_Arabic_dad; + if (!strcmp(s, "Arabic_tah")) return XK_Arabic_tah; + if (!strcmp(s, "Arabic_zah")) return XK_Arabic_zah; + if (!strcmp(s, "Arabic_ain")) return XK_Arabic_ain; + if (!strcmp(s, "Arabic_ghain")) return XK_Arabic_ghain; + if (!strcmp(s, "Arabic_tatweel")) return XK_Arabic_tatweel; + if (!strcmp(s, "Arabic_feh")) return XK_Arabic_feh; + if (!strcmp(s, "Arabic_qaf")) return XK_Arabic_qaf; + if (!strcmp(s, "Arabic_kaf")) return XK_Arabic_kaf; + if (!strcmp(s, "Arabic_lam")) return XK_Arabic_lam; + if (!strcmp(s, "Arabic_meem")) return XK_Arabic_meem; + if (!strcmp(s, "Arabic_noon")) return XK_Arabic_noon; + if (!strcmp(s, "Arabic_ha")) return XK_Arabic_ha; + if (!strcmp(s, "Arabic_heh")) return XK_Arabic_heh; + if (!strcmp(s, "Arabic_waw")) return XK_Arabic_waw; + if (!strcmp(s, "Arabic_alefmaksura")) return XK_Arabic_alefmaksura; + if (!strcmp(s, "Arabic_yeh")) return XK_Arabic_yeh; + if (!strcmp(s, "Arabic_fathatan")) return XK_Arabic_fathatan; + if (!strcmp(s, "Arabic_dammatan")) return XK_Arabic_dammatan; + if (!strcmp(s, "Arabic_kasratan")) return XK_Arabic_kasratan; + if (!strcmp(s, "Arabic_fatha")) return XK_Arabic_fatha; + if (!strcmp(s, "Arabic_damma")) return XK_Arabic_damma; + if (!strcmp(s, "Arabic_kasra")) return XK_Arabic_kasra; + if (!strcmp(s, "Arabic_shadda")) return XK_Arabic_shadda; + if (!strcmp(s, "Arabic_sukun")) return XK_Arabic_sukun; + if (!strcmp(s, "Arabic_switch")) return XK_Arabic_switch; +#endif /* XK_ARABIC */ +#ifdef XK_CYRILLIC + if (!strcmp(s, "Serbian_dje")) return XK_Serbian_dje; + if (!strcmp(s, "Macedonia_gje")) return XK_Macedonia_gje; + if (!strcmp(s, "Cyrillic_io")) return XK_Cyrillic_io; + if (!strcmp(s, "Ukrainian_ie")) return XK_Ukrainian_ie; + if (!strcmp(s, "Ukranian_je")) return XK_Ukranian_je; + if (!strcmp(s, "Macedonia_dse")) return XK_Macedonia_dse; + if (!strcmp(s, "Ukrainian_i")) return XK_Ukrainian_i; + if (!strcmp(s, "Ukranian_i")) return XK_Ukranian_i; + if (!strcmp(s, "Ukrainian_yi")) return XK_Ukrainian_yi; + if (!strcmp(s, "Ukranian_yi")) return XK_Ukranian_yi; + if (!strcmp(s, "Cyrillic_je")) return XK_Cyrillic_je; + if (!strcmp(s, "Serbian_je")) return XK_Serbian_je; + if (!strcmp(s, "Cyrillic_lje")) return XK_Cyrillic_lje; + if (!strcmp(s, "Serbian_lje")) return XK_Serbian_lje; + if (!strcmp(s, "Cyrillic_nje")) return XK_Cyrillic_nje; + if (!strcmp(s, "Serbian_nje")) return XK_Serbian_nje; + if (!strcmp(s, "Serbian_tshe")) return XK_Serbian_tshe; + if (!strcmp(s, "Macedonia_kje")) return XK_Macedonia_kje; + if (!strcmp(s, "Byelorussian_shortu")) return XK_Byelorussian_shortu; + if (!strcmp(s, "Cyrillic_dzhe")) return XK_Cyrillic_dzhe; + if (!strcmp(s, "Serbian_dze")) return XK_Serbian_dze; + if (!strcmp(s, "numerosign")) return XK_numerosign; + if (!strcmp(s, "Serbian_DJE")) return XK_Serbian_DJE; + if (!strcmp(s, "Macedonia_GJE")) return XK_Macedonia_GJE; + if (!strcmp(s, "Cyrillic_IO")) return XK_Cyrillic_IO; + if (!strcmp(s, "Ukrainian_IE")) return XK_Ukrainian_IE; + if (!strcmp(s, "Ukranian_JE")) return XK_Ukranian_JE; + if (!strcmp(s, "Macedonia_DSE")) return XK_Macedonia_DSE; + if (!strcmp(s, "Ukrainian_I")) return XK_Ukrainian_I; + if (!strcmp(s, "Ukranian_I")) return XK_Ukranian_I; + if (!strcmp(s, "Ukrainian_YI")) return XK_Ukrainian_YI; + if (!strcmp(s, "Ukranian_YI")) return XK_Ukranian_YI; + if (!strcmp(s, "Cyrillic_JE")) return XK_Cyrillic_JE; + if (!strcmp(s, "Serbian_JE")) return XK_Serbian_JE; + if (!strcmp(s, "Cyrillic_LJE")) return XK_Cyrillic_LJE; + if (!strcmp(s, "Serbian_LJE")) return XK_Serbian_LJE; + if (!strcmp(s, "Cyrillic_NJE")) return XK_Cyrillic_NJE; + if (!strcmp(s, "Serbian_NJE")) return XK_Serbian_NJE; + if (!strcmp(s, "Serbian_TSHE")) return XK_Serbian_TSHE; + if (!strcmp(s, "Macedonia_KJE")) return XK_Macedonia_KJE; + if (!strcmp(s, "Byelorussian_SHORTU")) return XK_Byelorussian_SHORTU; + if (!strcmp(s, "Cyrillic_DZHE")) return XK_Cyrillic_DZHE; + if (!strcmp(s, "Serbian_DZE")) return XK_Serbian_DZE; + if (!strcmp(s, "Cyrillic_yu")) return XK_Cyrillic_yu; + if (!strcmp(s, "Cyrillic_a")) return XK_Cyrillic_a; + if (!strcmp(s, "Cyrillic_be")) return XK_Cyrillic_be; + if (!strcmp(s, "Cyrillic_tse")) return XK_Cyrillic_tse; + if (!strcmp(s, "Cyrillic_de")) return XK_Cyrillic_de; + if (!strcmp(s, "Cyrillic_ie")) return XK_Cyrillic_ie; + if (!strcmp(s, "Cyrillic_ef")) return XK_Cyrillic_ef; + if (!strcmp(s, "Cyrillic_ghe")) return XK_Cyrillic_ghe; + if (!strcmp(s, "Cyrillic_ha")) return XK_Cyrillic_ha; + if (!strcmp(s, "Cyrillic_i")) return XK_Cyrillic_i; + if (!strcmp(s, "Cyrillic_shorti")) return XK_Cyrillic_shorti; + if (!strcmp(s, "Cyrillic_ka")) return XK_Cyrillic_ka; + if (!strcmp(s, "Cyrillic_el")) return XK_Cyrillic_el; + if (!strcmp(s, "Cyrillic_em")) return XK_Cyrillic_em; + if (!strcmp(s, "Cyrillic_en")) return XK_Cyrillic_en; + if (!strcmp(s, "Cyrillic_o")) return XK_Cyrillic_o; + if (!strcmp(s, "Cyrillic_pe")) return XK_Cyrillic_pe; + if (!strcmp(s, "Cyrillic_ya")) return XK_Cyrillic_ya; + if (!strcmp(s, "Cyrillic_er")) return XK_Cyrillic_er; + if (!strcmp(s, "Cyrillic_es")) return XK_Cyrillic_es; + if (!strcmp(s, "Cyrillic_te")) return XK_Cyrillic_te; + if (!strcmp(s, "Cyrillic_u")) return XK_Cyrillic_u; + if (!strcmp(s, "Cyrillic_zhe")) return XK_Cyrillic_zhe; + if (!strcmp(s, "Cyrillic_ve")) return XK_Cyrillic_ve; + if (!strcmp(s, "Cyrillic_softsign")) return XK_Cyrillic_softsign; + if (!strcmp(s, "Cyrillic_yeru")) return XK_Cyrillic_yeru; + if (!strcmp(s, "Cyrillic_ze")) return XK_Cyrillic_ze; + if (!strcmp(s, "Cyrillic_sha")) return XK_Cyrillic_sha; + if (!strcmp(s, "Cyrillic_e")) return XK_Cyrillic_e; + if (!strcmp(s, "Cyrillic_shcha")) return XK_Cyrillic_shcha; + if (!strcmp(s, "Cyrillic_che")) return XK_Cyrillic_che; + if (!strcmp(s, "Cyrillic_hardsign")) return XK_Cyrillic_hardsign; + if (!strcmp(s, "Cyrillic_YU")) return XK_Cyrillic_YU; + if (!strcmp(s, "Cyrillic_A")) return XK_Cyrillic_A; + if (!strcmp(s, "Cyrillic_BE")) return XK_Cyrillic_BE; + if (!strcmp(s, "Cyrillic_TSE")) return XK_Cyrillic_TSE; + if (!strcmp(s, "Cyrillic_DE")) return XK_Cyrillic_DE; + if (!strcmp(s, "Cyrillic_IE")) return XK_Cyrillic_IE; + if (!strcmp(s, "Cyrillic_EF")) return XK_Cyrillic_EF; + if (!strcmp(s, "Cyrillic_GHE")) return XK_Cyrillic_GHE; + if (!strcmp(s, "Cyrillic_HA")) return XK_Cyrillic_HA; + if (!strcmp(s, "Cyrillic_I")) return XK_Cyrillic_I; + if (!strcmp(s, "Cyrillic_SHORTI")) return XK_Cyrillic_SHORTI; + if (!strcmp(s, "Cyrillic_KA")) return XK_Cyrillic_KA; + if (!strcmp(s, "Cyrillic_EL")) return XK_Cyrillic_EL; + if (!strcmp(s, "Cyrillic_EM")) return XK_Cyrillic_EM; + if (!strcmp(s, "Cyrillic_EN")) return XK_Cyrillic_EN; + if (!strcmp(s, "Cyrillic_O")) return XK_Cyrillic_O; + if (!strcmp(s, "Cyrillic_PE")) return XK_Cyrillic_PE; + if (!strcmp(s, "Cyrillic_YA")) return XK_Cyrillic_YA; + if (!strcmp(s, "Cyrillic_ER")) return XK_Cyrillic_ER; + if (!strcmp(s, "Cyrillic_ES")) return XK_Cyrillic_ES; + if (!strcmp(s, "Cyrillic_TE")) return XK_Cyrillic_TE; + if (!strcmp(s, "Cyrillic_U")) return XK_Cyrillic_U; + if (!strcmp(s, "Cyrillic_ZHE")) return XK_Cyrillic_ZHE; + if (!strcmp(s, "Cyrillic_VE")) return XK_Cyrillic_VE; + if (!strcmp(s, "Cyrillic_SOFTSIGN")) return XK_Cyrillic_SOFTSIGN; + if (!strcmp(s, "Cyrillic_YERU")) return XK_Cyrillic_YERU; + if (!strcmp(s, "Cyrillic_ZE")) return XK_Cyrillic_ZE; + if (!strcmp(s, "Cyrillic_SHA")) return XK_Cyrillic_SHA; + if (!strcmp(s, "Cyrillic_E")) return XK_Cyrillic_E; + if (!strcmp(s, "Cyrillic_SHCHA")) return XK_Cyrillic_SHCHA; + if (!strcmp(s, "Cyrillic_CHE")) return XK_Cyrillic_CHE; + if (!strcmp(s, "Cyrillic_HARDSIGN")) return XK_Cyrillic_HARDSIGN; +#endif /* XK_CYRILLIC */ +#ifdef XK_GREEK + if (!strcmp(s, "Greek_ALPHAaccent")) return XK_Greek_ALPHAaccent; + if (!strcmp(s, "Greek_EPSILONaccent")) return XK_Greek_EPSILONaccent; + if (!strcmp(s, "Greek_ETAaccent")) return XK_Greek_ETAaccent; + if (!strcmp(s, "Greek_IOTAaccent")) return XK_Greek_IOTAaccent; + if (!strcmp(s, "Greek_IOTAdieresis")) return XK_Greek_IOTAdieresis; + if (!strcmp(s, "Greek_OMICRONaccent")) return XK_Greek_OMICRONaccent; + if (!strcmp(s, "Greek_UPSILONaccent")) return XK_Greek_UPSILONaccent; + if (!strcmp(s, "Greek_UPSILONdieresis")) return XK_Greek_UPSILONdieresis; + if (!strcmp(s, "Greek_OMEGAaccent")) return XK_Greek_OMEGAaccent; + if (!strcmp(s, "Greek_accentdieresis")) return XK_Greek_accentdieresis; + if (!strcmp(s, "Greek_horizbar")) return XK_Greek_horizbar; + if (!strcmp(s, "Greek_alphaaccent")) return XK_Greek_alphaaccent; + if (!strcmp(s, "Greek_epsilonaccent")) return XK_Greek_epsilonaccent; + if (!strcmp(s, "Greek_etaaccent")) return XK_Greek_etaaccent; + if (!strcmp(s, "Greek_iotaaccent")) return XK_Greek_iotaaccent; + if (!strcmp(s, "Greek_iotadieresis")) return XK_Greek_iotadieresis; + if (!strcmp(s, "Greek_iotaaccentdieresis")) return XK_Greek_iotaaccentdieresis; + if (!strcmp(s, "Greek_omicronaccent")) return XK_Greek_omicronaccent; + if (!strcmp(s, "Greek_upsilonaccent")) return XK_Greek_upsilonaccent; + if (!strcmp(s, "Greek_upsilondieresis")) return XK_Greek_upsilondieresis; + if (!strcmp(s, "Greek_upsilonaccentdieresis")) return XK_Greek_upsilonaccentdieresis; + if (!strcmp(s, "Greek_omegaaccent")) return XK_Greek_omegaaccent; + if (!strcmp(s, "Greek_ALPHA")) return XK_Greek_ALPHA; + if (!strcmp(s, "Greek_BETA")) return XK_Greek_BETA; + if (!strcmp(s, "Greek_GAMMA")) return XK_Greek_GAMMA; + if (!strcmp(s, "Greek_DELTA")) return XK_Greek_DELTA; + if (!strcmp(s, "Greek_EPSILON")) return XK_Greek_EPSILON; + if (!strcmp(s, "Greek_ZETA")) return XK_Greek_ZETA; + if (!strcmp(s, "Greek_ETA")) return XK_Greek_ETA; + if (!strcmp(s, "Greek_THETA")) return XK_Greek_THETA; + if (!strcmp(s, "Greek_IOTA")) return XK_Greek_IOTA; + if (!strcmp(s, "Greek_KAPPA")) return XK_Greek_KAPPA; + if (!strcmp(s, "Greek_LAMDA")) return XK_Greek_LAMDA; + if (!strcmp(s, "Greek_LAMBDA")) return XK_Greek_LAMBDA; + if (!strcmp(s, "Greek_MU")) return XK_Greek_MU; + if (!strcmp(s, "Greek_NU")) return XK_Greek_NU; + if (!strcmp(s, "Greek_XI")) return XK_Greek_XI; + if (!strcmp(s, "Greek_OMICRON")) return XK_Greek_OMICRON; + if (!strcmp(s, "Greek_PI")) return XK_Greek_PI; + if (!strcmp(s, "Greek_RHO")) return XK_Greek_RHO; + if (!strcmp(s, "Greek_SIGMA")) return XK_Greek_SIGMA; + if (!strcmp(s, "Greek_TAU")) return XK_Greek_TAU; + if (!strcmp(s, "Greek_UPSILON")) return XK_Greek_UPSILON; + if (!strcmp(s, "Greek_PHI")) return XK_Greek_PHI; + if (!strcmp(s, "Greek_CHI")) return XK_Greek_CHI; + if (!strcmp(s, "Greek_PSI")) return XK_Greek_PSI; + if (!strcmp(s, "Greek_OMEGA")) return XK_Greek_OMEGA; + if (!strcmp(s, "Greek_alpha")) return XK_Greek_alpha; + if (!strcmp(s, "Greek_beta")) return XK_Greek_beta; + if (!strcmp(s, "Greek_gamma")) return XK_Greek_gamma; + if (!strcmp(s, "Greek_delta")) return XK_Greek_delta; + if (!strcmp(s, "Greek_epsilon")) return XK_Greek_epsilon; + if (!strcmp(s, "Greek_zeta")) return XK_Greek_zeta; + if (!strcmp(s, "Greek_eta")) return XK_Greek_eta; + if (!strcmp(s, "Greek_theta")) return XK_Greek_theta; + if (!strcmp(s, "Greek_iota")) return XK_Greek_iota; + if (!strcmp(s, "Greek_kappa")) return XK_Greek_kappa; + if (!strcmp(s, "Greek_lamda")) return XK_Greek_lamda; + if (!strcmp(s, "Greek_lambda")) return XK_Greek_lambda; + if (!strcmp(s, "Greek_mu")) return XK_Greek_mu; + if (!strcmp(s, "Greek_nu")) return XK_Greek_nu; + if (!strcmp(s, "Greek_xi")) return XK_Greek_xi; + if (!strcmp(s, "Greek_omicron")) return XK_Greek_omicron; + if (!strcmp(s, "Greek_pi")) return XK_Greek_pi; + if (!strcmp(s, "Greek_rho")) return XK_Greek_rho; + if (!strcmp(s, "Greek_sigma")) return XK_Greek_sigma; + if (!strcmp(s, "Greek_finalsmallsigma")) return XK_Greek_finalsmallsigma; + if (!strcmp(s, "Greek_tau")) return XK_Greek_tau; + if (!strcmp(s, "Greek_upsilon")) return XK_Greek_upsilon; + if (!strcmp(s, "Greek_phi")) return XK_Greek_phi; + if (!strcmp(s, "Greek_chi")) return XK_Greek_chi; + if (!strcmp(s, "Greek_psi")) return XK_Greek_psi; + if (!strcmp(s, "Greek_omega")) return XK_Greek_omega; + if (!strcmp(s, "Greek_switch")) return XK_Greek_switch; +#endif /* XK_GREEK */ +#ifdef XK_TECHNICAL + if (!strcmp(s, "leftradical")) return XK_leftradical; + if (!strcmp(s, "topleftradical")) return XK_topleftradical; + if (!strcmp(s, "horizconnector")) return XK_horizconnector; + if (!strcmp(s, "topintegral")) return XK_topintegral; + if (!strcmp(s, "botintegral")) return XK_botintegral; + if (!strcmp(s, "vertconnector")) return XK_vertconnector; + if (!strcmp(s, "topleftsqbracket")) return XK_topleftsqbracket; + if (!strcmp(s, "botleftsqbracket")) return XK_botleftsqbracket; + if (!strcmp(s, "toprightsqbracket")) return XK_toprightsqbracket; + if (!strcmp(s, "botrightsqbracket")) return XK_botrightsqbracket; + if (!strcmp(s, "topleftparens")) return XK_topleftparens; + if (!strcmp(s, "botleftparens")) return XK_botleftparens; + if (!strcmp(s, "toprightparens")) return XK_toprightparens; + if (!strcmp(s, "botrightparens")) return XK_botrightparens; + if (!strcmp(s, "leftmiddlecurlybrace")) return XK_leftmiddlecurlybrace; + if (!strcmp(s, "rightmiddlecurlybrace")) return XK_rightmiddlecurlybrace; + if (!strcmp(s, "topleftsummation")) return XK_topleftsummation; + if (!strcmp(s, "botleftsummation")) return XK_botleftsummation; + if (!strcmp(s, "topvertsummationconnector")) return XK_topvertsummationconnector; + if (!strcmp(s, "botvertsummationconnector")) return XK_botvertsummationconnector; + if (!strcmp(s, "toprightsummation")) return XK_toprightsummation; + if (!strcmp(s, "botrightsummation")) return XK_botrightsummation; + if (!strcmp(s, "rightmiddlesummation")) return XK_rightmiddlesummation; + if (!strcmp(s, "lessthanequal")) return XK_lessthanequal; + if (!strcmp(s, "notequal")) return XK_notequal; + if (!strcmp(s, "greaterthanequal")) return XK_greaterthanequal; + if (!strcmp(s, "integral")) return XK_integral; + if (!strcmp(s, "therefore")) return XK_therefore; + if (!strcmp(s, "variation")) return XK_variation; + if (!strcmp(s, "infinity")) return XK_infinity; + if (!strcmp(s, "nabla")) return XK_nabla; + if (!strcmp(s, "approximate")) return XK_approximate; + if (!strcmp(s, "similarequal")) return XK_similarequal; + if (!strcmp(s, "ifonlyif")) return XK_ifonlyif; + if (!strcmp(s, "implies")) return XK_implies; + if (!strcmp(s, "identical")) return XK_identical; + if (!strcmp(s, "radical")) return XK_radical; + if (!strcmp(s, "includedin")) return XK_includedin; + if (!strcmp(s, "includes")) return XK_includes; + if (!strcmp(s, "intersection")) return XK_intersection; + if (!strcmp(s, "union")) return XK_union; + if (!strcmp(s, "logicaland")) return XK_logicaland; + if (!strcmp(s, "logicalor")) return XK_logicalor; + if (!strcmp(s, "partialderivative")) return XK_partialderivative; + if (!strcmp(s, "function")) return XK_function; + if (!strcmp(s, "leftarrow")) return XK_leftarrow; + if (!strcmp(s, "uparrow")) return XK_uparrow; + if (!strcmp(s, "rightarrow")) return XK_rightarrow; + if (!strcmp(s, "downarrow")) return XK_downarrow; +#endif /* XK_TECHNICAL */ +#ifdef XK_SPECIAL + if (!strcmp(s, "blank")) return XK_blank; + if (!strcmp(s, "soliddiamond")) return XK_soliddiamond; + if (!strcmp(s, "checkerboard")) return XK_checkerboard; + if (!strcmp(s, "ht")) return XK_ht; + if (!strcmp(s, "ff")) return XK_ff; + if (!strcmp(s, "cr")) return XK_cr; + if (!strcmp(s, "lf")) return XK_lf; + if (!strcmp(s, "nl")) return XK_nl; + if (!strcmp(s, "vt")) return XK_vt; + if (!strcmp(s, "lowrightcorner")) return XK_lowrightcorner; + if (!strcmp(s, "uprightcorner")) return XK_uprightcorner; + if (!strcmp(s, "upleftcorner")) return XK_upleftcorner; + if (!strcmp(s, "lowleftcorner")) return XK_lowleftcorner; + if (!strcmp(s, "crossinglines")) return XK_crossinglines; + if (!strcmp(s, "horizlinescan1")) return XK_horizlinescan1; + if (!strcmp(s, "horizlinescan3")) return XK_horizlinescan3; + if (!strcmp(s, "horizlinescan5")) return XK_horizlinescan5; + if (!strcmp(s, "horizlinescan7")) return XK_horizlinescan7; + if (!strcmp(s, "horizlinescan9")) return XK_horizlinescan9; + if (!strcmp(s, "leftt")) return XK_leftt; + if (!strcmp(s, "rightt")) return XK_rightt; + if (!strcmp(s, "bott")) return XK_bott; + if (!strcmp(s, "topt")) return XK_topt; + if (!strcmp(s, "vertbar")) return XK_vertbar; +#endif /* XK_SPECIAL */ +#ifdef XK_PUBLISHING + if (!strcmp(s, "emspace")) return XK_emspace; + if (!strcmp(s, "enspace")) return XK_enspace; + if (!strcmp(s, "em3space")) return XK_em3space; + if (!strcmp(s, "em4space")) return XK_em4space; + if (!strcmp(s, "digitspace")) return XK_digitspace; + if (!strcmp(s, "punctspace")) return XK_punctspace; + if (!strcmp(s, "thinspace")) return XK_thinspace; + if (!strcmp(s, "hairspace")) return XK_hairspace; + if (!strcmp(s, "emdash")) return XK_emdash; + if (!strcmp(s, "endash")) return XK_endash; + if (!strcmp(s, "signifblank")) return XK_signifblank; + if (!strcmp(s, "ellipsis")) return XK_ellipsis; + if (!strcmp(s, "doubbaselinedot")) return XK_doubbaselinedot; + if (!strcmp(s, "onethird")) return XK_onethird; + if (!strcmp(s, "twothirds")) return XK_twothirds; + if (!strcmp(s, "onefifth")) return XK_onefifth; + if (!strcmp(s, "twofifths")) return XK_twofifths; + if (!strcmp(s, "threefifths")) return XK_threefifths; + if (!strcmp(s, "fourfifths")) return XK_fourfifths; + if (!strcmp(s, "onesixth")) return XK_onesixth; + if (!strcmp(s, "fivesixths")) return XK_fivesixths; + if (!strcmp(s, "careof")) return XK_careof; + if (!strcmp(s, "figdash")) return XK_figdash; + if (!strcmp(s, "leftanglebracket")) return XK_leftanglebracket; + if (!strcmp(s, "decimalpoint")) return XK_decimalpoint; + if (!strcmp(s, "rightanglebracket")) return XK_rightanglebracket; + if (!strcmp(s, "marker")) return XK_marker; + if (!strcmp(s, "oneeighth")) return XK_oneeighth; + if (!strcmp(s, "threeeighths")) return XK_threeeighths; + if (!strcmp(s, "fiveeighths")) return XK_fiveeighths; + if (!strcmp(s, "seveneighths")) return XK_seveneighths; + if (!strcmp(s, "trademark")) return XK_trademark; + if (!strcmp(s, "signaturemark")) return XK_signaturemark; + if (!strcmp(s, "trademarkincircle")) return XK_trademarkincircle; + if (!strcmp(s, "leftopentriangle")) return XK_leftopentriangle; + if (!strcmp(s, "rightopentriangle")) return XK_rightopentriangle; + if (!strcmp(s, "emopencircle")) return XK_emopencircle; + if (!strcmp(s, "emopenrectangle")) return XK_emopenrectangle; + if (!strcmp(s, "leftsinglequotemark")) return XK_leftsinglequotemark; + if (!strcmp(s, "rightsinglequotemark")) return XK_rightsinglequotemark; + if (!strcmp(s, "leftdoublequotemark")) return XK_leftdoublequotemark; + if (!strcmp(s, "rightdoublequotemark")) return XK_rightdoublequotemark; + if (!strcmp(s, "prescription")) return XK_prescription; + if (!strcmp(s, "minutes")) return XK_minutes; + if (!strcmp(s, "seconds")) return XK_seconds; + if (!strcmp(s, "latincross")) return XK_latincross; + if (!strcmp(s, "hexagram")) return XK_hexagram; + if (!strcmp(s, "filledrectbullet")) return XK_filledrectbullet; + if (!strcmp(s, "filledlefttribullet")) return XK_filledlefttribullet; + if (!strcmp(s, "filledrighttribullet")) return XK_filledrighttribullet; + if (!strcmp(s, "emfilledcircle")) return XK_emfilledcircle; + if (!strcmp(s, "emfilledrect")) return XK_emfilledrect; + if (!strcmp(s, "enopencircbullet")) return XK_enopencircbullet; + if (!strcmp(s, "enopensquarebullet")) return XK_enopensquarebullet; + if (!strcmp(s, "openrectbullet")) return XK_openrectbullet; + if (!strcmp(s, "opentribulletup")) return XK_opentribulletup; + if (!strcmp(s, "opentribulletdown")) return XK_opentribulletdown; + if (!strcmp(s, "openstar")) return XK_openstar; + if (!strcmp(s, "enfilledcircbullet")) return XK_enfilledcircbullet; + if (!strcmp(s, "enfilledsqbullet")) return XK_enfilledsqbullet; + if (!strcmp(s, "filledtribulletup")) return XK_filledtribulletup; + if (!strcmp(s, "filledtribulletdown")) return XK_filledtribulletdown; + if (!strcmp(s, "leftpointer")) return XK_leftpointer; + if (!strcmp(s, "rightpointer")) return XK_rightpointer; + if (!strcmp(s, "club")) return XK_club; + if (!strcmp(s, "diamond")) return XK_diamond; + if (!strcmp(s, "heart")) return XK_heart; + if (!strcmp(s, "maltesecross")) return XK_maltesecross; + if (!strcmp(s, "dagger")) return XK_dagger; + if (!strcmp(s, "doubledagger")) return XK_doubledagger; + if (!strcmp(s, "checkmark")) return XK_checkmark; + if (!strcmp(s, "ballotcross")) return XK_ballotcross; + if (!strcmp(s, "musicalsharp")) return XK_musicalsharp; + if (!strcmp(s, "musicalflat")) return XK_musicalflat; + if (!strcmp(s, "malesymbol")) return XK_malesymbol; + if (!strcmp(s, "femalesymbol")) return XK_femalesymbol; + if (!strcmp(s, "telephone")) return XK_telephone; + if (!strcmp(s, "telephonerecorder")) return XK_telephonerecorder; + if (!strcmp(s, "phonographcopyright")) return XK_phonographcopyright; + if (!strcmp(s, "caret")) return XK_caret; + if (!strcmp(s, "singlelowquotemark")) return XK_singlelowquotemark; + if (!strcmp(s, "doublelowquotemark")) return XK_doublelowquotemark; + if (!strcmp(s, "cursor")) return XK_cursor; +#endif /* XK_PUBLISHING */ +#ifdef XK_APL + if (!strcmp(s, "leftcaret")) return XK_leftcaret; + if (!strcmp(s, "rightcaret")) return XK_rightcaret; + if (!strcmp(s, "downcaret")) return XK_downcaret; + if (!strcmp(s, "upcaret")) return XK_upcaret; + if (!strcmp(s, "overbar")) return XK_overbar; + if (!strcmp(s, "downtack")) return XK_downtack; + if (!strcmp(s, "upshoe")) return XK_upshoe; + if (!strcmp(s, "downstile")) return XK_downstile; + if (!strcmp(s, "underbar")) return XK_underbar; + if (!strcmp(s, "jot")) return XK_jot; + if (!strcmp(s, "quad")) return XK_quad; + if (!strcmp(s, "uptack")) return XK_uptack; + if (!strcmp(s, "circle")) return XK_circle; + if (!strcmp(s, "upstile")) return XK_upstile; + if (!strcmp(s, "downshoe")) return XK_downshoe; + if (!strcmp(s, "rightshoe")) return XK_rightshoe; + if (!strcmp(s, "leftshoe")) return XK_leftshoe; + if (!strcmp(s, "lefttack")) return XK_lefttack; + if (!strcmp(s, "righttack")) return XK_righttack; +#endif /* XK_APL */ +#ifdef XK_HEBREW + if (!strcmp(s, "hebrew_doublelowline")) return XK_hebrew_doublelowline; + if (!strcmp(s, "hebrew_aleph")) return XK_hebrew_aleph; + if (!strcmp(s, "hebrew_bet")) return XK_hebrew_bet; + if (!strcmp(s, "hebrew_beth")) return XK_hebrew_beth; + if (!strcmp(s, "hebrew_gimel")) return XK_hebrew_gimel; + if (!strcmp(s, "hebrew_gimmel")) return XK_hebrew_gimmel; + if (!strcmp(s, "hebrew_dalet")) return XK_hebrew_dalet; + if (!strcmp(s, "hebrew_daleth")) return XK_hebrew_daleth; + if (!strcmp(s, "hebrew_he")) return XK_hebrew_he; + if (!strcmp(s, "hebrew_waw")) return XK_hebrew_waw; + if (!strcmp(s, "hebrew_zain")) return XK_hebrew_zain; + if (!strcmp(s, "hebrew_zayin")) return XK_hebrew_zayin; + if (!strcmp(s, "hebrew_chet")) return XK_hebrew_chet; + if (!strcmp(s, "hebrew_het")) return XK_hebrew_het; + if (!strcmp(s, "hebrew_tet")) return XK_hebrew_tet; + if (!strcmp(s, "hebrew_teth")) return XK_hebrew_teth; + if (!strcmp(s, "hebrew_yod")) return XK_hebrew_yod; + if (!strcmp(s, "hebrew_finalkaph")) return XK_hebrew_finalkaph; + if (!strcmp(s, "hebrew_kaph")) return XK_hebrew_kaph; + if (!strcmp(s, "hebrew_lamed")) return XK_hebrew_lamed; + if (!strcmp(s, "hebrew_finalmem")) return XK_hebrew_finalmem; + if (!strcmp(s, "hebrew_mem")) return XK_hebrew_mem; + if (!strcmp(s, "hebrew_finalnun")) return XK_hebrew_finalnun; + if (!strcmp(s, "hebrew_nun")) return XK_hebrew_nun; + if (!strcmp(s, "hebrew_samech")) return XK_hebrew_samech; + if (!strcmp(s, "hebrew_samekh")) return XK_hebrew_samekh; + if (!strcmp(s, "hebrew_ayin")) return XK_hebrew_ayin; + if (!strcmp(s, "hebrew_finalpe")) return XK_hebrew_finalpe; + if (!strcmp(s, "hebrew_pe")) return XK_hebrew_pe; + if (!strcmp(s, "hebrew_finalzade")) return XK_hebrew_finalzade; + if (!strcmp(s, "hebrew_finalzadi")) return XK_hebrew_finalzadi; + if (!strcmp(s, "hebrew_zade")) return XK_hebrew_zade; + if (!strcmp(s, "hebrew_zadi")) return XK_hebrew_zadi; + if (!strcmp(s, "hebrew_qoph")) return XK_hebrew_qoph; + if (!strcmp(s, "hebrew_kuf")) return XK_hebrew_kuf; + if (!strcmp(s, "hebrew_resh")) return XK_hebrew_resh; + if (!strcmp(s, "hebrew_shin")) return XK_hebrew_shin; + if (!strcmp(s, "hebrew_taw")) return XK_hebrew_taw; + if (!strcmp(s, "hebrew_taf")) return XK_hebrew_taf; + if (!strcmp(s, "Hebrew_switch")) return XK_Hebrew_switch; +#endif /* XK_HEBREW */ +#ifdef XK_THAI + if (!strcmp(s, "Thai_kokai")) return XK_Thai_kokai; + if (!strcmp(s, "Thai_khokhai")) return XK_Thai_khokhai; + if (!strcmp(s, "Thai_khokhuat")) return XK_Thai_khokhuat; + if (!strcmp(s, "Thai_khokhwai")) return XK_Thai_khokhwai; + if (!strcmp(s, "Thai_khokhon")) return XK_Thai_khokhon; + if (!strcmp(s, "Thai_khorakhang")) return XK_Thai_khorakhang; + if (!strcmp(s, "Thai_ngongu")) return XK_Thai_ngongu; + if (!strcmp(s, "Thai_chochan")) return XK_Thai_chochan; + if (!strcmp(s, "Thai_choching")) return XK_Thai_choching; + if (!strcmp(s, "Thai_chochang")) return XK_Thai_chochang; + if (!strcmp(s, "Thai_soso")) return XK_Thai_soso; + if (!strcmp(s, "Thai_chochoe")) return XK_Thai_chochoe; + if (!strcmp(s, "Thai_yoying")) return XK_Thai_yoying; + if (!strcmp(s, "Thai_dochada")) return XK_Thai_dochada; + if (!strcmp(s, "Thai_topatak")) return XK_Thai_topatak; + if (!strcmp(s, "Thai_thothan")) return XK_Thai_thothan; + if (!strcmp(s, "Thai_thonangmontho")) return XK_Thai_thonangmontho; + if (!strcmp(s, "Thai_thophuthao")) return XK_Thai_thophuthao; + if (!strcmp(s, "Thai_nonen")) return XK_Thai_nonen; + if (!strcmp(s, "Thai_dodek")) return XK_Thai_dodek; + if (!strcmp(s, "Thai_totao")) return XK_Thai_totao; + if (!strcmp(s, "Thai_thothung")) return XK_Thai_thothung; + if (!strcmp(s, "Thai_thothahan")) return XK_Thai_thothahan; + if (!strcmp(s, "Thai_thothong")) return XK_Thai_thothong; + if (!strcmp(s, "Thai_nonu")) return XK_Thai_nonu; + if (!strcmp(s, "Thai_bobaimai")) return XK_Thai_bobaimai; + if (!strcmp(s, "Thai_popla")) return XK_Thai_popla; + if (!strcmp(s, "Thai_phophung")) return XK_Thai_phophung; + if (!strcmp(s, "Thai_fofa")) return XK_Thai_fofa; + if (!strcmp(s, "Thai_phophan")) return XK_Thai_phophan; + if (!strcmp(s, "Thai_fofan")) return XK_Thai_fofan; + if (!strcmp(s, "Thai_phosamphao")) return XK_Thai_phosamphao; + if (!strcmp(s, "Thai_moma")) return XK_Thai_moma; + if (!strcmp(s, "Thai_yoyak")) return XK_Thai_yoyak; + if (!strcmp(s, "Thai_rorua")) return XK_Thai_rorua; + if (!strcmp(s, "Thai_ru")) return XK_Thai_ru; + if (!strcmp(s, "Thai_loling")) return XK_Thai_loling; + if (!strcmp(s, "Thai_lu")) return XK_Thai_lu; + if (!strcmp(s, "Thai_wowaen")) return XK_Thai_wowaen; + if (!strcmp(s, "Thai_sosala")) return XK_Thai_sosala; + if (!strcmp(s, "Thai_sorusi")) return XK_Thai_sorusi; + if (!strcmp(s, "Thai_sosua")) return XK_Thai_sosua; + if (!strcmp(s, "Thai_hohip")) return XK_Thai_hohip; + if (!strcmp(s, "Thai_lochula")) return XK_Thai_lochula; + if (!strcmp(s, "Thai_oang")) return XK_Thai_oang; + if (!strcmp(s, "Thai_honokhuk")) return XK_Thai_honokhuk; + if (!strcmp(s, "Thai_paiyannoi")) return XK_Thai_paiyannoi; + if (!strcmp(s, "Thai_saraa")) return XK_Thai_saraa; + if (!strcmp(s, "Thai_maihanakat")) return XK_Thai_maihanakat; + if (!strcmp(s, "Thai_saraaa")) return XK_Thai_saraaa; + if (!strcmp(s, "Thai_saraam")) return XK_Thai_saraam; + if (!strcmp(s, "Thai_sarai")) return XK_Thai_sarai; + if (!strcmp(s, "Thai_saraii")) return XK_Thai_saraii; + if (!strcmp(s, "Thai_saraue")) return XK_Thai_saraue; + if (!strcmp(s, "Thai_sarauee")) return XK_Thai_sarauee; + if (!strcmp(s, "Thai_sarau")) return XK_Thai_sarau; + if (!strcmp(s, "Thai_sarauu")) return XK_Thai_sarauu; + if (!strcmp(s, "Thai_phinthu")) return XK_Thai_phinthu; + if (!strcmp(s, "Thai_maihanakat_maitho")) return XK_Thai_maihanakat_maitho; + if (!strcmp(s, "Thai_baht")) return XK_Thai_baht; + if (!strcmp(s, "Thai_sarae")) return XK_Thai_sarae; + if (!strcmp(s, "Thai_saraae")) return XK_Thai_saraae; + if (!strcmp(s, "Thai_sarao")) return XK_Thai_sarao; + if (!strcmp(s, "Thai_saraaimaimuan")) return XK_Thai_saraaimaimuan; + if (!strcmp(s, "Thai_saraaimaimalai")) return XK_Thai_saraaimaimalai; + if (!strcmp(s, "Thai_lakkhangyao")) return XK_Thai_lakkhangyao; + if (!strcmp(s, "Thai_maiyamok")) return XK_Thai_maiyamok; + if (!strcmp(s, "Thai_maitaikhu")) return XK_Thai_maitaikhu; + if (!strcmp(s, "Thai_maiek")) return XK_Thai_maiek; + if (!strcmp(s, "Thai_maitho")) return XK_Thai_maitho; + if (!strcmp(s, "Thai_maitri")) return XK_Thai_maitri; + if (!strcmp(s, "Thai_maichattawa")) return XK_Thai_maichattawa; + if (!strcmp(s, "Thai_thanthakhat")) return XK_Thai_thanthakhat; + if (!strcmp(s, "Thai_nikhahit")) return XK_Thai_nikhahit; + if (!strcmp(s, "Thai_leksun")) return XK_Thai_leksun; + if (!strcmp(s, "Thai_leknung")) return XK_Thai_leknung; + if (!strcmp(s, "Thai_leksong")) return XK_Thai_leksong; + if (!strcmp(s, "Thai_leksam")) return XK_Thai_leksam; + if (!strcmp(s, "Thai_leksi")) return XK_Thai_leksi; + if (!strcmp(s, "Thai_lekha")) return XK_Thai_lekha; + if (!strcmp(s, "Thai_lekhok")) return XK_Thai_lekhok; + if (!strcmp(s, "Thai_lekchet")) return XK_Thai_lekchet; + if (!strcmp(s, "Thai_lekpaet")) return XK_Thai_lekpaet; + if (!strcmp(s, "Thai_lekkao")) return XK_Thai_lekkao; +#endif /* XK_THAI */ +#ifdef XK_KOREAN + if (!strcmp(s, "Hangul")) return XK_Hangul; + if (!strcmp(s, "Hangul_Start")) return XK_Hangul_Start; + if (!strcmp(s, "Hangul_End")) return XK_Hangul_End; + if (!strcmp(s, "Hangul_Hanja")) return XK_Hangul_Hanja; + if (!strcmp(s, "Hangul_Jamo")) return XK_Hangul_Jamo; + if (!strcmp(s, "Hangul_Romaja")) return XK_Hangul_Romaja; + if (!strcmp(s, "Hangul_Codeinput")) return XK_Hangul_Codeinput; + if (!strcmp(s, "Hangul_Jeonja")) return XK_Hangul_Jeonja; + if (!strcmp(s, "Hangul_Banja")) return XK_Hangul_Banja; + if (!strcmp(s, "Hangul_PreHanja")) return XK_Hangul_PreHanja; + if (!strcmp(s, "Hangul_PostHanja")) return XK_Hangul_PostHanja; + if (!strcmp(s, "Hangul_SingleCandidate")) return XK_Hangul_SingleCandidate; + if (!strcmp(s, "Hangul_MultipleCandidate")) return XK_Hangul_MultipleCandidate; + if (!strcmp(s, "Hangul_PreviousCandidate")) return XK_Hangul_PreviousCandidate; + if (!strcmp(s, "Hangul_Special")) return XK_Hangul_Special; + if (!strcmp(s, "Hangul_switch")) return XK_Hangul_switch; + if (!strcmp(s, "Hangul_Kiyeog")) return XK_Hangul_Kiyeog; + if (!strcmp(s, "Hangul_SsangKiyeog")) return XK_Hangul_SsangKiyeog; + if (!strcmp(s, "Hangul_KiyeogSios")) return XK_Hangul_KiyeogSios; + if (!strcmp(s, "Hangul_Nieun")) return XK_Hangul_Nieun; + if (!strcmp(s, "Hangul_NieunJieuj")) return XK_Hangul_NieunJieuj; + if (!strcmp(s, "Hangul_NieunHieuh")) return XK_Hangul_NieunHieuh; + if (!strcmp(s, "Hangul_Dikeud")) return XK_Hangul_Dikeud; + if (!strcmp(s, "Hangul_SsangDikeud")) return XK_Hangul_SsangDikeud; + if (!strcmp(s, "Hangul_Rieul")) return XK_Hangul_Rieul; + if (!strcmp(s, "Hangul_RieulKiyeog")) return XK_Hangul_RieulKiyeog; + if (!strcmp(s, "Hangul_RieulMieum")) return XK_Hangul_RieulMieum; + if (!strcmp(s, "Hangul_RieulPieub")) return XK_Hangul_RieulPieub; + if (!strcmp(s, "Hangul_RieulSios")) return XK_Hangul_RieulSios; + if (!strcmp(s, "Hangul_RieulTieut")) return XK_Hangul_RieulTieut; + if (!strcmp(s, "Hangul_RieulPhieuf")) return XK_Hangul_RieulPhieuf; + if (!strcmp(s, "Hangul_RieulHieuh")) return XK_Hangul_RieulHieuh; + if (!strcmp(s, "Hangul_Mieum")) return XK_Hangul_Mieum; + if (!strcmp(s, "Hangul_Pieub")) return XK_Hangul_Pieub; + if (!strcmp(s, "Hangul_SsangPieub")) return XK_Hangul_SsangPieub; + if (!strcmp(s, "Hangul_PieubSios")) return XK_Hangul_PieubSios; + if (!strcmp(s, "Hangul_Sios")) return XK_Hangul_Sios; + if (!strcmp(s, "Hangul_SsangSios")) return XK_Hangul_SsangSios; + if (!strcmp(s, "Hangul_Ieung")) return XK_Hangul_Ieung; + if (!strcmp(s, "Hangul_Jieuj")) return XK_Hangul_Jieuj; + if (!strcmp(s, "Hangul_SsangJieuj")) return XK_Hangul_SsangJieuj; + if (!strcmp(s, "Hangul_Cieuc")) return XK_Hangul_Cieuc; + if (!strcmp(s, "Hangul_Khieuq")) return XK_Hangul_Khieuq; + if (!strcmp(s, "Hangul_Tieut")) return XK_Hangul_Tieut; + if (!strcmp(s, "Hangul_Phieuf")) return XK_Hangul_Phieuf; + if (!strcmp(s, "Hangul_Hieuh")) return XK_Hangul_Hieuh; + if (!strcmp(s, "Hangul_A")) return XK_Hangul_A; + if (!strcmp(s, "Hangul_AE")) return XK_Hangul_AE; + if (!strcmp(s, "Hangul_YA")) return XK_Hangul_YA; + if (!strcmp(s, "Hangul_YAE")) return XK_Hangul_YAE; + if (!strcmp(s, "Hangul_EO")) return XK_Hangul_EO; + if (!strcmp(s, "Hangul_E")) return XK_Hangul_E; + if (!strcmp(s, "Hangul_YEO")) return XK_Hangul_YEO; + if (!strcmp(s, "Hangul_YE")) return XK_Hangul_YE; + if (!strcmp(s, "Hangul_O")) return XK_Hangul_O; + if (!strcmp(s, "Hangul_WA")) return XK_Hangul_WA; + if (!strcmp(s, "Hangul_WAE")) return XK_Hangul_WAE; + if (!strcmp(s, "Hangul_OE")) return XK_Hangul_OE; + if (!strcmp(s, "Hangul_YO")) return XK_Hangul_YO; + if (!strcmp(s, "Hangul_U")) return XK_Hangul_U; + if (!strcmp(s, "Hangul_WEO")) return XK_Hangul_WEO; + if (!strcmp(s, "Hangul_WE")) return XK_Hangul_WE; + if (!strcmp(s, "Hangul_WI")) return XK_Hangul_WI; + if (!strcmp(s, "Hangul_YU")) return XK_Hangul_YU; + if (!strcmp(s, "Hangul_EU")) return XK_Hangul_EU; + if (!strcmp(s, "Hangul_YI")) return XK_Hangul_YI; + if (!strcmp(s, "Hangul_I")) return XK_Hangul_I; + if (!strcmp(s, "Hangul_J_Kiyeog")) return XK_Hangul_J_Kiyeog; + if (!strcmp(s, "Hangul_J_SsangKiyeog")) return XK_Hangul_J_SsangKiyeog; + if (!strcmp(s, "Hangul_J_KiyeogSios")) return XK_Hangul_J_KiyeogSios; + if (!strcmp(s, "Hangul_J_Nieun")) return XK_Hangul_J_Nieun; + if (!strcmp(s, "Hangul_J_NieunJieuj")) return XK_Hangul_J_NieunJieuj; + if (!strcmp(s, "Hangul_J_NieunHieuh")) return XK_Hangul_J_NieunHieuh; + if (!strcmp(s, "Hangul_J_Dikeud")) return XK_Hangul_J_Dikeud; + if (!strcmp(s, "Hangul_J_Rieul")) return XK_Hangul_J_Rieul; + if (!strcmp(s, "Hangul_J_RieulKiyeog")) return XK_Hangul_J_RieulKiyeog; + if (!strcmp(s, "Hangul_J_RieulMieum")) return XK_Hangul_J_RieulMieum; + if (!strcmp(s, "Hangul_J_RieulPieub")) return XK_Hangul_J_RieulPieub; + if (!strcmp(s, "Hangul_J_RieulSios")) return XK_Hangul_J_RieulSios; + if (!strcmp(s, "Hangul_J_RieulTieut")) return XK_Hangul_J_RieulTieut; + if (!strcmp(s, "Hangul_J_RieulPhieuf")) return XK_Hangul_J_RieulPhieuf; + if (!strcmp(s, "Hangul_J_RieulHieuh")) return XK_Hangul_J_RieulHieuh; + if (!strcmp(s, "Hangul_J_Mieum")) return XK_Hangul_J_Mieum; + if (!strcmp(s, "Hangul_J_Pieub")) return XK_Hangul_J_Pieub; + if (!strcmp(s, "Hangul_J_PieubSios")) return XK_Hangul_J_PieubSios; + if (!strcmp(s, "Hangul_J_Sios")) return XK_Hangul_J_Sios; + if (!strcmp(s, "Hangul_J_SsangSios")) return XK_Hangul_J_SsangSios; + if (!strcmp(s, "Hangul_J_Ieung")) return XK_Hangul_J_Ieung; + if (!strcmp(s, "Hangul_J_Jieuj")) return XK_Hangul_J_Jieuj; + if (!strcmp(s, "Hangul_J_Cieuc")) return XK_Hangul_J_Cieuc; + if (!strcmp(s, "Hangul_J_Khieuq")) return XK_Hangul_J_Khieuq; + if (!strcmp(s, "Hangul_J_Tieut")) return XK_Hangul_J_Tieut; + if (!strcmp(s, "Hangul_J_Phieuf")) return XK_Hangul_J_Phieuf; + if (!strcmp(s, "Hangul_J_Hieuh")) return XK_Hangul_J_Hieuh; + if (!strcmp(s, "Hangul_RieulYeorinHieuh")) return XK_Hangul_RieulYeorinHieuh; + if (!strcmp(s, "Hangul_SunkyeongeumMieum")) return XK_Hangul_SunkyeongeumMieum; + if (!strcmp(s, "Hangul_SunkyeongeumPieub")) return XK_Hangul_SunkyeongeumPieub; + if (!strcmp(s, "Hangul_PanSios")) return XK_Hangul_PanSios; + if (!strcmp(s, "Hangul_KkogjiDalrinIeung")) return XK_Hangul_KkogjiDalrinIeung; + if (!strcmp(s, "Hangul_SunkyeongeumPhieuf")) return XK_Hangul_SunkyeongeumPhieuf; + if (!strcmp(s, "Hangul_YeorinHieuh")) return XK_Hangul_YeorinHieuh; + if (!strcmp(s, "Hangul_AraeA")) return XK_Hangul_AraeA; + if (!strcmp(s, "Hangul_AraeAE")) return XK_Hangul_AraeAE; + if (!strcmp(s, "Hangul_J_PanSios")) return XK_Hangul_J_PanSios; + if (!strcmp(s, "Hangul_J_KkogjiDalrinIeung")) return XK_Hangul_J_KkogjiDalrinIeung; + if (!strcmp(s, "Hangul_J_YeorinHieuh")) return XK_Hangul_J_YeorinHieuh; + if (!strcmp(s, "Korean_Won")) return XK_Korean_Won; +#endif /* XK_KOREAN */ + if (!strcmp(s, "EuroSign")) return XK_EuroSign; +#endif + return NoSymbol; +} + + +char *XKeysymToString(KeySym k) { +#ifndef XK_0_nosuch + if (k == XK_VoidSymbol) return "VoidSymbol"; +#ifdef XK_MISCELLANY + if (k == XK_BackSpace) return "BackSpace"; + if (k == XK_Tab) return "Tab"; + if (k == XK_Linefeed) return "Linefeed"; + if (k == XK_Clear) return "Clear"; + if (k == XK_Return) return "Return"; + if (k == XK_Pause) return "Pause"; + if (k == XK_Scroll_Lock) return "Scroll_Lock"; + if (k == XK_Sys_Req) return "Sys_Req"; + if (k == XK_Escape) return "Escape"; + if (k == XK_Delete) return "Delete"; + if (k == XK_Multi_key) return "Multi_key"; + if (k == XK_SingleCandidate) return "SingleCandidate"; + if (k == XK_MultipleCandidate) return "MultipleCandidate"; + if (k == XK_PreviousCandidate) return "PreviousCandidate"; + if (k == XK_Kanji) return "Kanji"; + if (k == XK_Muhenkan) return "Muhenkan"; + if (k == XK_Henkan_Mode) return "Henkan_Mode"; + if (k == XK_Henkan) return "Henkan"; + if (k == XK_Romaji) return "Romaji"; + if (k == XK_Hiragana) return "Hiragana"; + if (k == XK_Katakana) return "Katakana"; + if (k == XK_Hiragana_Katakana) return "Hiragana_Katakana"; + if (k == XK_Zenkaku) return "Zenkaku"; + if (k == XK_Hankaku) return "Hankaku"; + if (k == XK_Zenkaku_Hankaku) return "Zenkaku_Hankaku"; + if (k == XK_Touroku) return "Touroku"; + if (k == XK_Massyo) return "Massyo"; + if (k == XK_Kana_Lock) return "Kana_Lock"; + if (k == XK_Kana_Shift) return "Kana_Shift"; + if (k == XK_Eisu_Shift) return "Eisu_Shift"; + if (k == XK_Eisu_toggle) return "Eisu_toggle"; + if (k == XK_Zen_Koho) return "Zen_Koho"; + if (k == XK_Mae_Koho) return "Mae_Koho"; + if (k == XK_Home) return "Home"; + if (k == XK_Left) return "Left"; + if (k == XK_Up) return "Up"; + if (k == XK_Right) return "Right"; + if (k == XK_Down) return "Down"; + if (k == XK_Prior) return "Prior"; + if (k == XK_Page_Up) return "Page_Up"; + if (k == XK_Next) return "Next"; + if (k == XK_Page_Down) return "Page_Down"; + if (k == XK_End) return "End"; + if (k == XK_Begin) return "Begin"; + if (k == XK_Select) return "Select"; + if (k == XK_Print) return "Print"; + if (k == XK_Execute) return "Execute"; + if (k == XK_Insert) return "Insert"; + if (k == XK_Undo) return "Undo"; + if (k == XK_Redo) return "Redo"; + if (k == XK_Menu) return "Menu"; + if (k == XK_Find) return "Find"; + if (k == XK_Cancel) return "Cancel"; + if (k == XK_Help) return "Help"; + if (k == XK_Break) return "Break"; + if (k == XK_Mode_switch) return "Mode_switch"; + if (k == XK_script_switch) return "script_switch"; + if (k == XK_Num_Lock) return "Num_Lock"; + if (k == XK_KP_Space) return "KP_Space"; + if (k == XK_KP_Tab) return "KP_Tab"; + if (k == XK_KP_Enter) return "KP_Enter"; + if (k == XK_KP_F1) return "KP_F1"; + if (k == XK_KP_F2) return "KP_F2"; + if (k == XK_KP_F3) return "KP_F3"; + if (k == XK_KP_F4) return "KP_F4"; + if (k == XK_KP_Home) return "KP_Home"; + if (k == XK_KP_Left) return "KP_Left"; + if (k == XK_KP_Up) return "KP_Up"; + if (k == XK_KP_Right) return "KP_Right"; + if (k == XK_KP_Down) return "KP_Down"; + if (k == XK_KP_Prior) return "KP_Prior"; + if (k == XK_KP_Page_Up) return "KP_Page_Up"; + if (k == XK_KP_Next) return "KP_Next"; + if (k == XK_KP_Page_Down) return "KP_Page_Down"; + if (k == XK_KP_End) return "KP_End"; + if (k == XK_KP_Begin) return "KP_Begin"; + if (k == XK_KP_Insert) return "KP_Insert"; + if (k == XK_KP_Delete) return "KP_Delete"; + if (k == XK_KP_Equal) return "KP_Equal"; + if (k == XK_KP_Multiply) return "KP_Multiply"; + if (k == XK_KP_Add) return "KP_Add"; + if (k == XK_KP_Separator) return "KP_Separator"; + if (k == XK_KP_Subtract) return "KP_Subtract"; + if (k == XK_KP_Decimal) return "KP_Decimal"; + if (k == XK_KP_Divide) return "KP_Divide"; + if (k == XK_KP_0) return "KP_0"; + if (k == XK_KP_1) return "KP_1"; + if (k == XK_KP_2) return "KP_2"; + if (k == XK_KP_3) return "KP_3"; + if (k == XK_KP_4) return "KP_4"; + if (k == XK_KP_5) return "KP_5"; + if (k == XK_KP_6) return "KP_6"; + if (k == XK_KP_7) return "KP_7"; + if (k == XK_KP_8) return "KP_8"; + if (k == XK_KP_9) return "KP_9"; + if (k == XK_F1) return "F1"; + if (k == XK_F2) return "F2"; + if (k == XK_F3) return "F3"; + if (k == XK_F4) return "F4"; + if (k == XK_F5) return "F5"; + if (k == XK_F6) return "F6"; + if (k == XK_F7) return "F7"; + if (k == XK_F8) return "F8"; + if (k == XK_F9) return "F9"; + if (k == XK_F10) return "F10"; + if (k == XK_F11) return "F11"; + if (k == XK_L1) return "L1"; + if (k == XK_F12) return "F12"; + if (k == XK_L2) return "L2"; + if (k == XK_F13) return "F13"; + if (k == XK_L3) return "L3"; + if (k == XK_F14) return "F14"; + if (k == XK_L4) return "L4"; + if (k == XK_F15) return "F15"; + if (k == XK_L5) return "L5"; + if (k == XK_F16) return "F16"; + if (k == XK_L6) return "L6"; + if (k == XK_F17) return "F17"; + if (k == XK_L7) return "L7"; + if (k == XK_F18) return "F18"; + if (k == XK_L8) return "L8"; + if (k == XK_F19) return "F19"; + if (k == XK_L9) return "L9"; + if (k == XK_F20) return "F20"; + if (k == XK_L10) return "L10"; + if (k == XK_F21) return "F21"; + if (k == XK_R1) return "R1"; + if (k == XK_F22) return "F22"; + if (k == XK_R2) return "R2"; + if (k == XK_F23) return "F23"; + if (k == XK_R3) return "R3"; + if (k == XK_F24) return "F24"; + if (k == XK_R4) return "R4"; + if (k == XK_F25) return "F25"; + if (k == XK_R5) return "R5"; + if (k == XK_F26) return "F26"; + if (k == XK_R6) return "R6"; + if (k == XK_F27) return "F27"; + if (k == XK_R7) return "R7"; + if (k == XK_F28) return "F28"; + if (k == XK_R8) return "R8"; + if (k == XK_F29) return "F29"; + if (k == XK_R9) return "R9"; + if (k == XK_F30) return "F30"; + if (k == XK_R10) return "R10"; + if (k == XK_F31) return "F31"; + if (k == XK_R11) return "R11"; + if (k == XK_F32) return "F32"; + if (k == XK_R12) return "R12"; + if (k == XK_F33) return "F33"; + if (k == XK_R13) return "R13"; + if (k == XK_F34) return "F34"; + if (k == XK_R14) return "R14"; + if (k == XK_F35) return "F35"; + if (k == XK_R15) return "R15"; + if (k == XK_Shift_L) return "Shift_L"; + if (k == XK_Shift_R) return "Shift_R"; + if (k == XK_Control_L) return "Control_L"; + if (k == XK_Control_R) return "Control_R"; + if (k == XK_Caps_Lock) return "Caps_Lock"; + if (k == XK_Shift_Lock) return "Shift_Lock"; + if (k == XK_Meta_L) return "Meta_L"; + if (k == XK_Meta_R) return "Meta_R"; + if (k == XK_Alt_L) return "Alt_L"; + if (k == XK_Alt_R) return "Alt_R"; + if (k == XK_Super_L) return "Super_L"; + if (k == XK_Super_R) return "Super_R"; + if (k == XK_Hyper_L) return "Hyper_L"; + if (k == XK_Hyper_R) return "Hyper_R"; +#endif /* XK_MISCELLANY */ +#ifdef XK_XKB_KEYS + if (k == XK_ISO_Lock) return "ISO_Lock"; + if (k == XK_ISO_Level2_Latch) return "ISO_Level2_Latch"; + if (k == XK_ISO_Level3_Shift) return "ISO_Level3_Shift"; + if (k == XK_ISO_Level3_Latch) return "ISO_Level3_Latch"; + if (k == XK_ISO_Level3_Lock) return "ISO_Level3_Lock"; + if (k == XK_ISO_Group_Shift) return "ISO_Group_Shift"; + if (k == XK_ISO_Group_Latch) return "ISO_Group_Latch"; + if (k == XK_ISO_Group_Lock) return "ISO_Group_Lock"; + if (k == XK_ISO_Next_Group) return "ISO_Next_Group"; + if (k == XK_ISO_Next_Group_Lock) return "ISO_Next_Group_Lock"; + if (k == XK_ISO_Prev_Group) return "ISO_Prev_Group"; + if (k == XK_ISO_Prev_Group_Lock) return "ISO_Prev_Group_Lock"; + if (k == XK_ISO_First_Group) return "ISO_First_Group"; + if (k == XK_ISO_First_Group_Lock) return "ISO_First_Group_Lock"; + if (k == XK_ISO_Last_Group) return "ISO_Last_Group"; + if (k == XK_ISO_Last_Group_Lock) return "ISO_Last_Group_Lock"; + if (k == XK_ISO_Left_Tab) return "ISO_Left_Tab"; + if (k == XK_ISO_Move_Line_Up) return "ISO_Move_Line_Up"; + if (k == XK_ISO_Move_Line_Down) return "ISO_Move_Line_Down"; + if (k == XK_ISO_Partial_Line_Up) return "ISO_Partial_Line_Up"; + if (k == XK_ISO_Partial_Line_Down) return "ISO_Partial_Line_Down"; + if (k == XK_ISO_Partial_Space_Left) return "ISO_Partial_Space_Left"; + if (k == XK_ISO_Partial_Space_Right) return "ISO_Partial_Space_Right"; + if (k == XK_ISO_Set_Margin_Left) return "ISO_Set_Margin_Left"; + if (k == XK_ISO_Set_Margin_Right) return "ISO_Set_Margin_Right"; + if (k == XK_ISO_Release_Margin_Left) return "ISO_Release_Margin_Left"; + if (k == XK_ISO_Release_Margin_Right) return "ISO_Release_Margin_Right"; + if (k == XK_ISO_Release_Both_Margins) return "ISO_Release_Both_Margins"; + if (k == XK_ISO_Fast_Cursor_Left) return "ISO_Fast_Cursor_Left"; + if (k == XK_ISO_Fast_Cursor_Right) return "ISO_Fast_Cursor_Right"; + if (k == XK_ISO_Fast_Cursor_Up) return "ISO_Fast_Cursor_Up"; + if (k == XK_ISO_Fast_Cursor_Down) return "ISO_Fast_Cursor_Down"; + if (k == XK_ISO_Continuous_Underline) return "ISO_Continuous_Underline"; + if (k == XK_ISO_Discontinuous_Underline) return "ISO_Discontinuous_Underline"; + if (k == XK_ISO_Emphasize) return "ISO_Emphasize"; + if (k == XK_ISO_Center_Object) return "ISO_Center_Object"; + if (k == XK_ISO_Enter) return "ISO_Enter"; + if (k == XK_dead_grave) return "dead_grave"; + if (k == XK_dead_acute) return "dead_acute"; + if (k == XK_dead_circumflex) return "dead_circumflex"; + if (k == XK_dead_tilde) return "dead_tilde"; + if (k == XK_dead_macron) return "dead_macron"; + if (k == XK_dead_breve) return "dead_breve"; + if (k == XK_dead_abovedot) return "dead_abovedot"; + if (k == XK_dead_diaeresis) return "dead_diaeresis"; + if (k == XK_dead_abovering) return "dead_abovering"; + if (k == XK_dead_doubleacute) return "dead_doubleacute"; + if (k == XK_dead_caron) return "dead_caron"; + if (k == XK_dead_cedilla) return "dead_cedilla"; + if (k == XK_dead_ogonek) return "dead_ogonek"; + if (k == XK_dead_iota) return "dead_iota"; + if (k == XK_dead_voiced_sound) return "dead_voiced_sound"; + if (k == XK_dead_semivoiced_sound) return "dead_semivoiced_sound"; + if (k == XK_dead_belowdot) return "dead_belowdot"; + if (k == XK_First_Virtual_Screen) return "First_Virtual_Screen"; + if (k == XK_Prev_Virtual_Screen) return "Prev_Virtual_Screen"; + if (k == XK_Next_Virtual_Screen) return "Next_Virtual_Screen"; + if (k == XK_Last_Virtual_Screen) return "Last_Virtual_Screen"; + if (k == XK_Terminate_Server) return "Terminate_Server"; + if (k == XK_AccessX_Enable) return "AccessX_Enable"; + if (k == XK_AccessX_Feedback_Enable) return "AccessX_Feedback_Enable"; + if (k == XK_RepeatKeys_Enable) return "RepeatKeys_Enable"; + if (k == XK_SlowKeys_Enable) return "SlowKeys_Enable"; + if (k == XK_BounceKeys_Enable) return "BounceKeys_Enable"; + if (k == XK_StickyKeys_Enable) return "StickyKeys_Enable"; + if (k == XK_MouseKeys_Enable) return "MouseKeys_Enable"; + if (k == XK_MouseKeys_Accel_Enable) return "MouseKeys_Accel_Enable"; + if (k == XK_Overlay1_Enable) return "Overlay1_Enable"; + if (k == XK_Overlay2_Enable) return "Overlay2_Enable"; + if (k == XK_AudibleBell_Enable) return "AudibleBell_Enable"; + if (k == XK_Pointer_Left) return "Pointer_Left"; + if (k == XK_Pointer_Right) return "Pointer_Right"; + if (k == XK_Pointer_Up) return "Pointer_Up"; + if (k == XK_Pointer_Down) return "Pointer_Down"; + if (k == XK_Pointer_UpLeft) return "Pointer_UpLeft"; + if (k == XK_Pointer_UpRight) return "Pointer_UpRight"; + if (k == XK_Pointer_DownLeft) return "Pointer_DownLeft"; + if (k == XK_Pointer_DownRight) return "Pointer_DownRight"; + if (k == XK_Pointer_Button_Dflt) return "Pointer_Button_Dflt"; + if (k == XK_Pointer_Button1) return "Pointer_Button1"; + if (k == XK_Pointer_Button2) return "Pointer_Button2"; + if (k == XK_Pointer_Button3) return "Pointer_Button3"; + if (k == XK_Pointer_Button4) return "Pointer_Button4"; + if (k == XK_Pointer_Button5) return "Pointer_Button5"; + if (k == XK_Pointer_DblClick_Dflt) return "Pointer_DblClick_Dflt"; + if (k == XK_Pointer_DblClick1) return "Pointer_DblClick1"; + if (k == XK_Pointer_DblClick2) return "Pointer_DblClick2"; + if (k == XK_Pointer_DblClick3) return "Pointer_DblClick3"; + if (k == XK_Pointer_DblClick4) return "Pointer_DblClick4"; + if (k == XK_Pointer_DblClick5) return "Pointer_DblClick5"; + if (k == XK_Pointer_Drag_Dflt) return "Pointer_Drag_Dflt"; + if (k == XK_Pointer_Drag1) return "Pointer_Drag1"; + if (k == XK_Pointer_Drag2) return "Pointer_Drag2"; + if (k == XK_Pointer_Drag3) return "Pointer_Drag3"; + if (k == XK_Pointer_Drag4) return "Pointer_Drag4"; + if (k == XK_Pointer_Drag5) return "Pointer_Drag5"; + if (k == XK_Pointer_EnableKeys) return "Pointer_EnableKeys"; + if (k == XK_Pointer_Accelerate) return "Pointer_Accelerate"; + if (k == XK_Pointer_DfltBtnNext) return "Pointer_DfltBtnNext"; + if (k == XK_Pointer_DfltBtnPrev) return "Pointer_DfltBtnPrev"; +#endif +#ifdef XK_3270 + if (k == XK_3270_Duplicate) return "3270_Duplicate"; + if (k == XK_3270_FieldMark) return "3270_FieldMark"; + if (k == XK_3270_Right2) return "3270_Right2"; + if (k == XK_3270_Left2) return "3270_Left2"; + if (k == XK_3270_BackTab) return "3270_BackTab"; + if (k == XK_3270_EraseEOF) return "3270_EraseEOF"; + if (k == XK_3270_EraseInput) return "3270_EraseInput"; + if (k == XK_3270_Reset) return "3270_Reset"; + if (k == XK_3270_Quit) return "3270_Quit"; + if (k == XK_3270_PA1) return "3270_PA1"; + if (k == XK_3270_PA2) return "3270_PA2"; + if (k == XK_3270_PA3) return "3270_PA3"; + if (k == XK_3270_Test) return "3270_Test"; + if (k == XK_3270_Attn) return "3270_Attn"; + if (k == XK_3270_CursorBlink) return "3270_CursorBlink"; + if (k == XK_3270_AltCursor) return "3270_AltCursor"; + if (k == XK_3270_KeyClick) return "3270_KeyClick"; + if (k == XK_3270_Jump) return "3270_Jump"; + if (k == XK_3270_Ident) return "3270_Ident"; + if (k == XK_3270_Rule) return "3270_Rule"; + if (k == XK_3270_Copy) return "3270_Copy"; + if (k == XK_3270_Play) return "3270_Play"; + if (k == XK_3270_Setup) return "3270_Setup"; + if (k == XK_3270_Record) return "3270_Record"; + if (k == XK_3270_ChangeScreen) return "3270_ChangeScreen"; + if (k == XK_3270_DeleteWord) return "3270_DeleteWord"; + if (k == XK_3270_ExSelect) return "3270_ExSelect"; + if (k == XK_3270_CursorSelect) return "3270_CursorSelect"; + if (k == XK_3270_PrintScreen) return "3270_PrintScreen"; + if (k == XK_3270_Enter) return "3270_Enter"; +#endif +#ifdef XK_LATIN1 + if (k == XK_space) return "space"; + if (k == XK_exclam) return "exclam"; + if (k == XK_quotedbl) return "quotedbl"; + if (k == XK_numbersign) return "numbersign"; + if (k == XK_dollar) return "dollar"; + if (k == XK_percent) return "percent"; + if (k == XK_ampersand) return "ampersand"; + if (k == XK_apostrophe) return "apostrophe"; + if (k == XK_quoteright) return "quoteright"; + if (k == XK_parenleft) return "parenleft"; + if (k == XK_parenright) return "parenright"; + if (k == XK_asterisk) return "asterisk"; + if (k == XK_plus) return "plus"; + if (k == XK_comma) return "comma"; + if (k == XK_minus) return "minus"; + if (k == XK_period) return "period"; + if (k == XK_slash) return "slash"; + if (k == XK_0) return "0"; + if (k == XK_1) return "1"; + if (k == XK_2) return "2"; + if (k == XK_3) return "3"; + if (k == XK_4) return "4"; + if (k == XK_5) return "5"; + if (k == XK_6) return "6"; + if (k == XK_7) return "7"; + if (k == XK_8) return "8"; + if (k == XK_9) return "9"; + if (k == XK_colon) return "colon"; + if (k == XK_semicolon) return "semicolon"; + if (k == XK_less) return "less"; + if (k == XK_equal) return "equal"; + if (k == XK_greater) return "greater"; + if (k == XK_question) return "question"; + if (k == XK_at) return "at"; + if (k == XK_A) return "A"; + if (k == XK_B) return "B"; + if (k == XK_C) return "C"; + if (k == XK_D) return "D"; + if (k == XK_E) return "E"; + if (k == XK_F) return "F"; + if (k == XK_G) return "G"; + if (k == XK_H) return "H"; + if (k == XK_I) return "I"; + if (k == XK_J) return "J"; + if (k == XK_K) return "K"; + if (k == XK_L) return "L"; + if (k == XK_M) return "M"; + if (k == XK_N) return "N"; + if (k == XK_O) return "O"; + if (k == XK_P) return "P"; + if (k == XK_Q) return "Q"; + if (k == XK_R) return "R"; + if (k == XK_S) return "S"; + if (k == XK_T) return "T"; + if (k == XK_U) return "U"; + if (k == XK_V) return "V"; + if (k == XK_W) return "W"; + if (k == XK_X) return "X"; + if (k == XK_Y) return "Y"; + if (k == XK_Z) return "Z"; + if (k == XK_bracketleft) return "bracketleft"; + if (k == XK_backslash) return "backslash"; + if (k == XK_bracketright) return "bracketright"; + if (k == XK_asciicircum) return "asciicircum"; + if (k == XK_underscore) return "underscore"; + if (k == XK_grave) return "grave"; + if (k == XK_quoteleft) return "quoteleft"; + if (k == XK_a) return "a"; + if (k == XK_b) return "b"; + if (k == XK_c) return "c"; + if (k == XK_d) return "d"; + if (k == XK_e) return "e"; + if (k == XK_f) return "f"; + if (k == XK_g) return "g"; + if (k == XK_h) return "h"; + if (k == XK_i) return "i"; + if (k == XK_j) return "j"; + if (k == XK_k) return "k"; + if (k == XK_l) return "l"; + if (k == XK_m) return "m"; + if (k == XK_n) return "n"; + if (k == XK_o) return "o"; + if (k == XK_p) return "p"; + if (k == XK_q) return "q"; + if (k == XK_r) return "r"; + if (k == XK_s) return "s"; + if (k == XK_t) return "t"; + if (k == XK_u) return "u"; + if (k == XK_v) return "v"; + if (k == XK_w) return "w"; + if (k == XK_x) return "x"; + if (k == XK_y) return "y"; + if (k == XK_z) return "z"; + if (k == XK_braceleft) return "braceleft"; + if (k == XK_bar) return "bar"; + if (k == XK_braceright) return "braceright"; + if (k == XK_asciitilde) return "asciitilde"; + if (k == XK_nobreakspace) return "nobreakspace"; + if (k == XK_exclamdown) return "exclamdown"; + if (k == XK_cent) return "cent"; + if (k == XK_sterling) return "sterling"; + if (k == XK_currency) return "currency"; + if (k == XK_yen) return "yen"; + if (k == XK_brokenbar) return "brokenbar"; + if (k == XK_section) return "section"; + if (k == XK_diaeresis) return "diaeresis"; + if (k == XK_copyright) return "copyright"; + if (k == XK_ordfeminine) return "ordfeminine"; + if (k == XK_guillemotleft) return "guillemotleft"; + if (k == XK_notsign) return "notsign"; + if (k == XK_hyphen) return "hyphen"; + if (k == XK_registered) return "registered"; + if (k == XK_macron) return "macron"; + if (k == XK_degree) return "degree"; + if (k == XK_plusminus) return "plusminus"; + if (k == XK_twosuperior) return "twosuperior"; + if (k == XK_threesuperior) return "threesuperior"; + if (k == XK_acute) return "acute"; + if (k == XK_mu) return "mu"; + if (k == XK_paragraph) return "paragraph"; + if (k == XK_periodcentered) return "periodcentered"; + if (k == XK_cedilla) return "cedilla"; + if (k == XK_onesuperior) return "onesuperior"; + if (k == XK_masculine) return "masculine"; + if (k == XK_guillemotright) return "guillemotright"; + if (k == XK_onequarter) return "onequarter"; + if (k == XK_onehalf) return "onehalf"; + if (k == XK_threequarters) return "threequarters"; + if (k == XK_questiondown) return "questiondown"; + if (k == XK_Agrave) return "Agrave"; + if (k == XK_Aacute) return "Aacute"; + if (k == XK_Acircumflex) return "Acircumflex"; + if (k == XK_Atilde) return "Atilde"; + if (k == XK_Adiaeresis) return "Adiaeresis"; + if (k == XK_Aring) return "Aring"; + if (k == XK_AE) return "AE"; + if (k == XK_Ccedilla) return "Ccedilla"; + if (k == XK_Egrave) return "Egrave"; + if (k == XK_Eacute) return "Eacute"; + if (k == XK_Ecircumflex) return "Ecircumflex"; + if (k == XK_Ediaeresis) return "Ediaeresis"; + if (k == XK_Igrave) return "Igrave"; + if (k == XK_Iacute) return "Iacute"; + if (k == XK_Icircumflex) return "Icircumflex"; + if (k == XK_Idiaeresis) return "Idiaeresis"; + if (k == XK_ETH) return "ETH"; + if (k == XK_Eth) return "Eth"; + if (k == XK_Ntilde) return "Ntilde"; + if (k == XK_Ograve) return "Ograve"; + if (k == XK_Oacute) return "Oacute"; + if (k == XK_Ocircumflex) return "Ocircumflex"; + if (k == XK_Otilde) return "Otilde"; + if (k == XK_Odiaeresis) return "Odiaeresis"; + if (k == XK_multiply) return "multiply"; + if (k == XK_Ooblique) return "Ooblique"; + if (k == XK_Ugrave) return "Ugrave"; + if (k == XK_Uacute) return "Uacute"; + if (k == XK_Ucircumflex) return "Ucircumflex"; + if (k == XK_Udiaeresis) return "Udiaeresis"; + if (k == XK_Yacute) return "Yacute"; + if (k == XK_THORN) return "THORN"; + if (k == XK_Thorn) return "Thorn"; + if (k == XK_ssharp) return "ssharp"; + if (k == XK_agrave) return "agrave"; + if (k == XK_aacute) return "aacute"; + if (k == XK_acircumflex) return "acircumflex"; + if (k == XK_atilde) return "atilde"; + if (k == XK_adiaeresis) return "adiaeresis"; + if (k == XK_aring) return "aring"; + if (k == XK_ae) return "ae"; + if (k == XK_ccedilla) return "ccedilla"; + if (k == XK_egrave) return "egrave"; + if (k == XK_eacute) return "eacute"; + if (k == XK_ecircumflex) return "ecircumflex"; + if (k == XK_ediaeresis) return "ediaeresis"; + if (k == XK_igrave) return "igrave"; + if (k == XK_iacute) return "iacute"; + if (k == XK_icircumflex) return "icircumflex"; + if (k == XK_idiaeresis) return "idiaeresis"; + if (k == XK_eth) return "eth"; + if (k == XK_ntilde) return "ntilde"; + if (k == XK_ograve) return "ograve"; + if (k == XK_oacute) return "oacute"; + if (k == XK_ocircumflex) return "ocircumflex"; + if (k == XK_otilde) return "otilde"; + if (k == XK_odiaeresis) return "odiaeresis"; + if (k == XK_division) return "division"; + if (k == XK_oslash) return "oslash"; + if (k == XK_ugrave) return "ugrave"; + if (k == XK_uacute) return "uacute"; + if (k == XK_ucircumflex) return "ucircumflex"; + if (k == XK_udiaeresis) return "udiaeresis"; + if (k == XK_yacute) return "yacute"; + if (k == XK_thorn) return "thorn"; + if (k == XK_ydiaeresis) return "ydiaeresis"; +#endif /* XK_LATIN1 */ +#ifdef XK_LATIN2 + if (k == XK_Aogonek) return "Aogonek"; + if (k == XK_breve) return "breve"; + if (k == XK_Lstroke) return "Lstroke"; + if (k == XK_Lcaron) return "Lcaron"; + if (k == XK_Sacute) return "Sacute"; + if (k == XK_Scaron) return "Scaron"; + if (k == XK_Scedilla) return "Scedilla"; + if (k == XK_Tcaron) return "Tcaron"; + if (k == XK_Zacute) return "Zacute"; + if (k == XK_Zcaron) return "Zcaron"; + if (k == XK_Zabovedot) return "Zabovedot"; + if (k == XK_aogonek) return "aogonek"; + if (k == XK_ogonek) return "ogonek"; + if (k == XK_lstroke) return "lstroke"; + if (k == XK_lcaron) return "lcaron"; + if (k == XK_sacute) return "sacute"; + if (k == XK_caron) return "caron"; + if (k == XK_scaron) return "scaron"; + if (k == XK_scedilla) return "scedilla"; + if (k == XK_tcaron) return "tcaron"; + if (k == XK_zacute) return "zacute"; + if (k == XK_doubleacute) return "doubleacute"; + if (k == XK_zcaron) return "zcaron"; + if (k == XK_zabovedot) return "zabovedot"; + if (k == XK_Racute) return "Racute"; + if (k == XK_Abreve) return "Abreve"; + if (k == XK_Lacute) return "Lacute"; + if (k == XK_Cacute) return "Cacute"; + if (k == XK_Ccaron) return "Ccaron"; + if (k == XK_Eogonek) return "Eogonek"; + if (k == XK_Ecaron) return "Ecaron"; + if (k == XK_Dcaron) return "Dcaron"; + if (k == XK_Dstroke) return "Dstroke"; + if (k == XK_Nacute) return "Nacute"; + if (k == XK_Ncaron) return "Ncaron"; + if (k == XK_Odoubleacute) return "Odoubleacute"; + if (k == XK_Rcaron) return "Rcaron"; + if (k == XK_Uring) return "Uring"; + if (k == XK_Udoubleacute) return "Udoubleacute"; + if (k == XK_Tcedilla) return "Tcedilla"; + if (k == XK_racute) return "racute"; + if (k == XK_abreve) return "abreve"; + if (k == XK_lacute) return "lacute"; + if (k == XK_cacute) return "cacute"; + if (k == XK_ccaron) return "ccaron"; + if (k == XK_eogonek) return "eogonek"; + if (k == XK_ecaron) return "ecaron"; + if (k == XK_dcaron) return "dcaron"; + if (k == XK_dstroke) return "dstroke"; + if (k == XK_nacute) return "nacute"; + if (k == XK_ncaron) return "ncaron"; + if (k == XK_odoubleacute) return "odoubleacute"; + if (k == XK_udoubleacute) return "udoubleacute"; + if (k == XK_rcaron) return "rcaron"; + if (k == XK_uring) return "uring"; + if (k == XK_tcedilla) return "tcedilla"; + if (k == XK_abovedot) return "abovedot"; +#endif /* XK_LATIN2 */ +#ifdef XK_LATIN3 + if (k == XK_Hstroke) return "Hstroke"; + if (k == XK_Hcircumflex) return "Hcircumflex"; + if (k == XK_Iabovedot) return "Iabovedot"; + if (k == XK_Gbreve) return "Gbreve"; + if (k == XK_Jcircumflex) return "Jcircumflex"; + if (k == XK_hstroke) return "hstroke"; + if (k == XK_hcircumflex) return "hcircumflex"; + if (k == XK_idotless) return "idotless"; + if (k == XK_gbreve) return "gbreve"; + if (k == XK_jcircumflex) return "jcircumflex"; + if (k == XK_Cabovedot) return "Cabovedot"; + if (k == XK_Ccircumflex) return "Ccircumflex"; + if (k == XK_Gabovedot) return "Gabovedot"; + if (k == XK_Gcircumflex) return "Gcircumflex"; + if (k == XK_Ubreve) return "Ubreve"; + if (k == XK_Scircumflex) return "Scircumflex"; + if (k == XK_cabovedot) return "cabovedot"; + if (k == XK_ccircumflex) return "ccircumflex"; + if (k == XK_gabovedot) return "gabovedot"; + if (k == XK_gcircumflex) return "gcircumflex"; + if (k == XK_ubreve) return "ubreve"; + if (k == XK_scircumflex) return "scircumflex"; +#endif /* XK_LATIN3 */ +#ifdef XK_LATIN4 + if (k == XK_kra) return "kra"; + if (k == XK_kappa) return "kappa"; + if (k == XK_Rcedilla) return "Rcedilla"; + if (k == XK_Itilde) return "Itilde"; + if (k == XK_Lcedilla) return "Lcedilla"; + if (k == XK_Emacron) return "Emacron"; + if (k == XK_Gcedilla) return "Gcedilla"; + if (k == XK_Tslash) return "Tslash"; + if (k == XK_rcedilla) return "rcedilla"; + if (k == XK_itilde) return "itilde"; + if (k == XK_lcedilla) return "lcedilla"; + if (k == XK_emacron) return "emacron"; + if (k == XK_gcedilla) return "gcedilla"; + if (k == XK_tslash) return "tslash"; + if (k == XK_ENG) return "ENG"; + if (k == XK_eng) return "eng"; + if (k == XK_Amacron) return "Amacron"; + if (k == XK_Iogonek) return "Iogonek"; + if (k == XK_Eabovedot) return "Eabovedot"; + if (k == XK_Imacron) return "Imacron"; + if (k == XK_Ncedilla) return "Ncedilla"; + if (k == XK_Omacron) return "Omacron"; + if (k == XK_Kcedilla) return "Kcedilla"; + if (k == XK_Uogonek) return "Uogonek"; + if (k == XK_Utilde) return "Utilde"; + if (k == XK_Umacron) return "Umacron"; + if (k == XK_amacron) return "amacron"; + if (k == XK_iogonek) return "iogonek"; + if (k == XK_eabovedot) return "eabovedot"; + if (k == XK_imacron) return "imacron"; + if (k == XK_ncedilla) return "ncedilla"; + if (k == XK_omacron) return "omacron"; + if (k == XK_kcedilla) return "kcedilla"; + if (k == XK_uogonek) return "uogonek"; + if (k == XK_utilde) return "utilde"; + if (k == XK_umacron) return "umacron"; +#endif /* XK_LATIN4 */ +#ifdef XK_KATAKANA + if (k == XK_overline) return "overline"; + if (k == XK_kana_fullstop) return "kana_fullstop"; + if (k == XK_kana_openingbracket) return "kana_openingbracket"; + if (k == XK_kana_closingbracket) return "kana_closingbracket"; + if (k == XK_kana_comma) return "kana_comma"; + if (k == XK_kana_conjunctive) return "kana_conjunctive"; + if (k == XK_kana_middledot) return "kana_middledot"; + if (k == XK_kana_WO) return "kana_WO"; + if (k == XK_kana_a) return "kana_a"; + if (k == XK_kana_i) return "kana_i"; + if (k == XK_kana_u) return "kana_u"; + if (k == XK_kana_e) return "kana_e"; + if (k == XK_kana_o) return "kana_o"; + if (k == XK_kana_ya) return "kana_ya"; + if (k == XK_kana_yu) return "kana_yu"; + if (k == XK_kana_yo) return "kana_yo"; + if (k == XK_kana_tsu) return "kana_tsu"; + if (k == XK_kana_tu) return "kana_tu"; + if (k == XK_prolongedsound) return "prolongedsound"; + if (k == XK_kana_A) return "kana_A"; + if (k == XK_kana_I) return "kana_I"; + if (k == XK_kana_U) return "kana_U"; + if (k == XK_kana_E) return "kana_E"; + if (k == XK_kana_O) return "kana_O"; + if (k == XK_kana_KA) return "kana_KA"; + if (k == XK_kana_KI) return "kana_KI"; + if (k == XK_kana_KU) return "kana_KU"; + if (k == XK_kana_KE) return "kana_KE"; + if (k == XK_kana_KO) return "kana_KO"; + if (k == XK_kana_SA) return "kana_SA"; + if (k == XK_kana_SHI) return "kana_SHI"; + if (k == XK_kana_SU) return "kana_SU"; + if (k == XK_kana_SE) return "kana_SE"; + if (k == XK_kana_SO) return "kana_SO"; + if (k == XK_kana_TA) return "kana_TA"; + if (k == XK_kana_CHI) return "kana_CHI"; + if (k == XK_kana_TI) return "kana_TI"; + if (k == XK_kana_TSU) return "kana_TSU"; + if (k == XK_kana_TU) return "kana_TU"; + if (k == XK_kana_TE) return "kana_TE"; + if (k == XK_kana_TO) return "kana_TO"; + if (k == XK_kana_NA) return "kana_NA"; + if (k == XK_kana_NI) return "kana_NI"; + if (k == XK_kana_NU) return "kana_NU"; + if (k == XK_kana_NE) return "kana_NE"; + if (k == XK_kana_NO) return "kana_NO"; + if (k == XK_kana_HA) return "kana_HA"; + if (k == XK_kana_HI) return "kana_HI"; + if (k == XK_kana_FU) return "kana_FU"; + if (k == XK_kana_HU) return "kana_HU"; + if (k == XK_kana_HE) return "kana_HE"; + if (k == XK_kana_HO) return "kana_HO"; + if (k == XK_kana_MA) return "kana_MA"; + if (k == XK_kana_MI) return "kana_MI"; + if (k == XK_kana_MU) return "kana_MU"; + if (k == XK_kana_ME) return "kana_ME"; + if (k == XK_kana_MO) return "kana_MO"; + if (k == XK_kana_YA) return "kana_YA"; + if (k == XK_kana_YU) return "kana_YU"; + if (k == XK_kana_YO) return "kana_YO"; + if (k == XK_kana_RA) return "kana_RA"; + if (k == XK_kana_RI) return "kana_RI"; + if (k == XK_kana_RU) return "kana_RU"; + if (k == XK_kana_RE) return "kana_RE"; + if (k == XK_kana_RO) return "kana_RO"; + if (k == XK_kana_WA) return "kana_WA"; + if (k == XK_kana_N) return "kana_N"; + if (k == XK_voicedsound) return "voicedsound"; + if (k == XK_semivoicedsound) return "semivoicedsound"; + if (k == XK_kana_switch) return "kana_switch"; +#endif /* XK_KATAKANA */ +#ifdef XK_ARABIC + if (k == XK_Arabic_comma) return "Arabic_comma"; + if (k == XK_Arabic_semicolon) return "Arabic_semicolon"; + if (k == XK_Arabic_question_mark) return "Arabic_question_mark"; + if (k == XK_Arabic_hamza) return "Arabic_hamza"; + if (k == XK_Arabic_maddaonalef) return "Arabic_maddaonalef"; + if (k == XK_Arabic_hamzaonalef) return "Arabic_hamzaonalef"; + if (k == XK_Arabic_hamzaonwaw) return "Arabic_hamzaonwaw"; + if (k == XK_Arabic_hamzaunderalef) return "Arabic_hamzaunderalef"; + if (k == XK_Arabic_hamzaonyeh) return "Arabic_hamzaonyeh"; + if (k == XK_Arabic_alef) return "Arabic_alef"; + if (k == XK_Arabic_beh) return "Arabic_beh"; + if (k == XK_Arabic_tehmarbuta) return "Arabic_tehmarbuta"; + if (k == XK_Arabic_teh) return "Arabic_teh"; + if (k == XK_Arabic_theh) return "Arabic_theh"; + if (k == XK_Arabic_jeem) return "Arabic_jeem"; + if (k == XK_Arabic_hah) return "Arabic_hah"; + if (k == XK_Arabic_khah) return "Arabic_khah"; + if (k == XK_Arabic_dal) return "Arabic_dal"; + if (k == XK_Arabic_thal) return "Arabic_thal"; + if (k == XK_Arabic_ra) return "Arabic_ra"; + if (k == XK_Arabic_zain) return "Arabic_zain"; + if (k == XK_Arabic_seen) return "Arabic_seen"; + if (k == XK_Arabic_sheen) return "Arabic_sheen"; + if (k == XK_Arabic_sad) return "Arabic_sad"; + if (k == XK_Arabic_dad) return "Arabic_dad"; + if (k == XK_Arabic_tah) return "Arabic_tah"; + if (k == XK_Arabic_zah) return "Arabic_zah"; + if (k == XK_Arabic_ain) return "Arabic_ain"; + if (k == XK_Arabic_ghain) return "Arabic_ghain"; + if (k == XK_Arabic_tatweel) return "Arabic_tatweel"; + if (k == XK_Arabic_feh) return "Arabic_feh"; + if (k == XK_Arabic_qaf) return "Arabic_qaf"; + if (k == XK_Arabic_kaf) return "Arabic_kaf"; + if (k == XK_Arabic_lam) return "Arabic_lam"; + if (k == XK_Arabic_meem) return "Arabic_meem"; + if (k == XK_Arabic_noon) return "Arabic_noon"; + if (k == XK_Arabic_ha) return "Arabic_ha"; + if (k == XK_Arabic_heh) return "Arabic_heh"; + if (k == XK_Arabic_waw) return "Arabic_waw"; + if (k == XK_Arabic_alefmaksura) return "Arabic_alefmaksura"; + if (k == XK_Arabic_yeh) return "Arabic_yeh"; + if (k == XK_Arabic_fathatan) return "Arabic_fathatan"; + if (k == XK_Arabic_dammatan) return "Arabic_dammatan"; + if (k == XK_Arabic_kasratan) return "Arabic_kasratan"; + if (k == XK_Arabic_fatha) return "Arabic_fatha"; + if (k == XK_Arabic_damma) return "Arabic_damma"; + if (k == XK_Arabic_kasra) return "Arabic_kasra"; + if (k == XK_Arabic_shadda) return "Arabic_shadda"; + if (k == XK_Arabic_sukun) return "Arabic_sukun"; + if (k == XK_Arabic_switch) return "Arabic_switch"; +#endif /* XK_ARABIC */ +#ifdef XK_CYRILLIC + if (k == XK_Serbian_dje) return "Serbian_dje"; + if (k == XK_Macedonia_gje) return "Macedonia_gje"; + if (k == XK_Cyrillic_io) return "Cyrillic_io"; + if (k == XK_Ukrainian_ie) return "Ukrainian_ie"; + if (k == XK_Ukranian_je) return "Ukranian_je"; + if (k == XK_Macedonia_dse) return "Macedonia_dse"; + if (k == XK_Ukrainian_i) return "Ukrainian_i"; + if (k == XK_Ukranian_i) return "Ukranian_i"; + if (k == XK_Ukrainian_yi) return "Ukrainian_yi"; + if (k == XK_Ukranian_yi) return "Ukranian_yi"; + if (k == XK_Cyrillic_je) return "Cyrillic_je"; + if (k == XK_Serbian_je) return "Serbian_je"; + if (k == XK_Cyrillic_lje) return "Cyrillic_lje"; + if (k == XK_Serbian_lje) return "Serbian_lje"; + if (k == XK_Cyrillic_nje) return "Cyrillic_nje"; + if (k == XK_Serbian_nje) return "Serbian_nje"; + if (k == XK_Serbian_tshe) return "Serbian_tshe"; + if (k == XK_Macedonia_kje) return "Macedonia_kje"; + if (k == XK_Byelorussian_shortu) return "Byelorussian_shortu"; + if (k == XK_Cyrillic_dzhe) return "Cyrillic_dzhe"; + if (k == XK_Serbian_dze) return "Serbian_dze"; + if (k == XK_numerosign) return "numerosign"; + if (k == XK_Serbian_DJE) return "Serbian_DJE"; + if (k == XK_Macedonia_GJE) return "Macedonia_GJE"; + if (k == XK_Cyrillic_IO) return "Cyrillic_IO"; + if (k == XK_Ukrainian_IE) return "Ukrainian_IE"; + if (k == XK_Ukranian_JE) return "Ukranian_JE"; + if (k == XK_Macedonia_DSE) return "Macedonia_DSE"; + if (k == XK_Ukrainian_I) return "Ukrainian_I"; + if (k == XK_Ukranian_I) return "Ukranian_I"; + if (k == XK_Ukrainian_YI) return "Ukrainian_YI"; + if (k == XK_Ukranian_YI) return "Ukranian_YI"; + if (k == XK_Cyrillic_JE) return "Cyrillic_JE"; + if (k == XK_Serbian_JE) return "Serbian_JE"; + if (k == XK_Cyrillic_LJE) return "Cyrillic_LJE"; + if (k == XK_Serbian_LJE) return "Serbian_LJE"; + if (k == XK_Cyrillic_NJE) return "Cyrillic_NJE"; + if (k == XK_Serbian_NJE) return "Serbian_NJE"; + if (k == XK_Serbian_TSHE) return "Serbian_TSHE"; + if (k == XK_Macedonia_KJE) return "Macedonia_KJE"; + if (k == XK_Byelorussian_SHORTU) return "Byelorussian_SHORTU"; + if (k == XK_Cyrillic_DZHE) return "Cyrillic_DZHE"; + if (k == XK_Serbian_DZE) return "Serbian_DZE"; + if (k == XK_Cyrillic_yu) return "Cyrillic_yu"; + if (k == XK_Cyrillic_a) return "Cyrillic_a"; + if (k == XK_Cyrillic_be) return "Cyrillic_be"; + if (k == XK_Cyrillic_tse) return "Cyrillic_tse"; + if (k == XK_Cyrillic_de) return "Cyrillic_de"; + if (k == XK_Cyrillic_ie) return "Cyrillic_ie"; + if (k == XK_Cyrillic_ef) return "Cyrillic_ef"; + if (k == XK_Cyrillic_ghe) return "Cyrillic_ghe"; + if (k == XK_Cyrillic_ha) return "Cyrillic_ha"; + if (k == XK_Cyrillic_i) return "Cyrillic_i"; + if (k == XK_Cyrillic_shorti) return "Cyrillic_shorti"; + if (k == XK_Cyrillic_ka) return "Cyrillic_ka"; + if (k == XK_Cyrillic_el) return "Cyrillic_el"; + if (k == XK_Cyrillic_em) return "Cyrillic_em"; + if (k == XK_Cyrillic_en) return "Cyrillic_en"; + if (k == XK_Cyrillic_o) return "Cyrillic_o"; + if (k == XK_Cyrillic_pe) return "Cyrillic_pe"; + if (k == XK_Cyrillic_ya) return "Cyrillic_ya"; + if (k == XK_Cyrillic_er) return "Cyrillic_er"; + if (k == XK_Cyrillic_es) return "Cyrillic_es"; + if (k == XK_Cyrillic_te) return "Cyrillic_te"; + if (k == XK_Cyrillic_u) return "Cyrillic_u"; + if (k == XK_Cyrillic_zhe) return "Cyrillic_zhe"; + if (k == XK_Cyrillic_ve) return "Cyrillic_ve"; + if (k == XK_Cyrillic_softsign) return "Cyrillic_softsign"; + if (k == XK_Cyrillic_yeru) return "Cyrillic_yeru"; + if (k == XK_Cyrillic_ze) return "Cyrillic_ze"; + if (k == XK_Cyrillic_sha) return "Cyrillic_sha"; + if (k == XK_Cyrillic_e) return "Cyrillic_e"; + if (k == XK_Cyrillic_shcha) return "Cyrillic_shcha"; + if (k == XK_Cyrillic_che) return "Cyrillic_che"; + if (k == XK_Cyrillic_hardsign) return "Cyrillic_hardsign"; + if (k == XK_Cyrillic_YU) return "Cyrillic_YU"; + if (k == XK_Cyrillic_A) return "Cyrillic_A"; + if (k == XK_Cyrillic_BE) return "Cyrillic_BE"; + if (k == XK_Cyrillic_TSE) return "Cyrillic_TSE"; + if (k == XK_Cyrillic_DE) return "Cyrillic_DE"; + if (k == XK_Cyrillic_IE) return "Cyrillic_IE"; + if (k == XK_Cyrillic_EF) return "Cyrillic_EF"; + if (k == XK_Cyrillic_GHE) return "Cyrillic_GHE"; + if (k == XK_Cyrillic_HA) return "Cyrillic_HA"; + if (k == XK_Cyrillic_I) return "Cyrillic_I"; + if (k == XK_Cyrillic_SHORTI) return "Cyrillic_SHORTI"; + if (k == XK_Cyrillic_KA) return "Cyrillic_KA"; + if (k == XK_Cyrillic_EL) return "Cyrillic_EL"; + if (k == XK_Cyrillic_EM) return "Cyrillic_EM"; + if (k == XK_Cyrillic_EN) return "Cyrillic_EN"; + if (k == XK_Cyrillic_O) return "Cyrillic_O"; + if (k == XK_Cyrillic_PE) return "Cyrillic_PE"; + if (k == XK_Cyrillic_YA) return "Cyrillic_YA"; + if (k == XK_Cyrillic_ER) return "Cyrillic_ER"; + if (k == XK_Cyrillic_ES) return "Cyrillic_ES"; + if (k == XK_Cyrillic_TE) return "Cyrillic_TE"; + if (k == XK_Cyrillic_U) return "Cyrillic_U"; + if (k == XK_Cyrillic_ZHE) return "Cyrillic_ZHE"; + if (k == XK_Cyrillic_VE) return "Cyrillic_VE"; + if (k == XK_Cyrillic_SOFTSIGN) return "Cyrillic_SOFTSIGN"; + if (k == XK_Cyrillic_YERU) return "Cyrillic_YERU"; + if (k == XK_Cyrillic_ZE) return "Cyrillic_ZE"; + if (k == XK_Cyrillic_SHA) return "Cyrillic_SHA"; + if (k == XK_Cyrillic_E) return "Cyrillic_E"; + if (k == XK_Cyrillic_SHCHA) return "Cyrillic_SHCHA"; + if (k == XK_Cyrillic_CHE) return "Cyrillic_CHE"; + if (k == XK_Cyrillic_HARDSIGN) return "Cyrillic_HARDSIGN"; +#endif /* XK_CYRILLIC */ +#ifdef XK_GREEK + if (k == XK_Greek_ALPHAaccent) return "Greek_ALPHAaccent"; + if (k == XK_Greek_EPSILONaccent) return "Greek_EPSILONaccent"; + if (k == XK_Greek_ETAaccent) return "Greek_ETAaccent"; + if (k == XK_Greek_IOTAaccent) return "Greek_IOTAaccent"; + if (k == XK_Greek_IOTAdieresis) return "Greek_IOTAdieresis"; + if (k == XK_Greek_OMICRONaccent) return "Greek_OMICRONaccent"; + if (k == XK_Greek_UPSILONaccent) return "Greek_UPSILONaccent"; + if (k == XK_Greek_UPSILONdieresis) return "Greek_UPSILONdieresis"; + if (k == XK_Greek_OMEGAaccent) return "Greek_OMEGAaccent"; + if (k == XK_Greek_accentdieresis) return "Greek_accentdieresis"; + if (k == XK_Greek_horizbar) return "Greek_horizbar"; + if (k == XK_Greek_alphaaccent) return "Greek_alphaaccent"; + if (k == XK_Greek_epsilonaccent) return "Greek_epsilonaccent"; + if (k == XK_Greek_etaaccent) return "Greek_etaaccent"; + if (k == XK_Greek_iotaaccent) return "Greek_iotaaccent"; + if (k == XK_Greek_iotadieresis) return "Greek_iotadieresis"; + if (k == XK_Greek_iotaaccentdieresis) return "Greek_iotaaccentdieresis"; + if (k == XK_Greek_omicronaccent) return "Greek_omicronaccent"; + if (k == XK_Greek_upsilonaccent) return "Greek_upsilonaccent"; + if (k == XK_Greek_upsilondieresis) return "Greek_upsilondieresis"; + if (k == XK_Greek_upsilonaccentdieresis) return "Greek_upsilonaccentdieresis"; + if (k == XK_Greek_omegaaccent) return "Greek_omegaaccent"; + if (k == XK_Greek_ALPHA) return "Greek_ALPHA"; + if (k == XK_Greek_BETA) return "Greek_BETA"; + if (k == XK_Greek_GAMMA) return "Greek_GAMMA"; + if (k == XK_Greek_DELTA) return "Greek_DELTA"; + if (k == XK_Greek_EPSILON) return "Greek_EPSILON"; + if (k == XK_Greek_ZETA) return "Greek_ZETA"; + if (k == XK_Greek_ETA) return "Greek_ETA"; + if (k == XK_Greek_THETA) return "Greek_THETA"; + if (k == XK_Greek_IOTA) return "Greek_IOTA"; + if (k == XK_Greek_KAPPA) return "Greek_KAPPA"; + if (k == XK_Greek_LAMDA) return "Greek_LAMDA"; + if (k == XK_Greek_LAMBDA) return "Greek_LAMBDA"; + if (k == XK_Greek_MU) return "Greek_MU"; + if (k == XK_Greek_NU) return "Greek_NU"; + if (k == XK_Greek_XI) return "Greek_XI"; + if (k == XK_Greek_OMICRON) return "Greek_OMICRON"; + if (k == XK_Greek_PI) return "Greek_PI"; + if (k == XK_Greek_RHO) return "Greek_RHO"; + if (k == XK_Greek_SIGMA) return "Greek_SIGMA"; + if (k == XK_Greek_TAU) return "Greek_TAU"; + if (k == XK_Greek_UPSILON) return "Greek_UPSILON"; + if (k == XK_Greek_PHI) return "Greek_PHI"; + if (k == XK_Greek_CHI) return "Greek_CHI"; + if (k == XK_Greek_PSI) return "Greek_PSI"; + if (k == XK_Greek_OMEGA) return "Greek_OMEGA"; + if (k == XK_Greek_alpha) return "Greek_alpha"; + if (k == XK_Greek_beta) return "Greek_beta"; + if (k == XK_Greek_gamma) return "Greek_gamma"; + if (k == XK_Greek_delta) return "Greek_delta"; + if (k == XK_Greek_epsilon) return "Greek_epsilon"; + if (k == XK_Greek_zeta) return "Greek_zeta"; + if (k == XK_Greek_eta) return "Greek_eta"; + if (k == XK_Greek_theta) return "Greek_theta"; + if (k == XK_Greek_iota) return "Greek_iota"; + if (k == XK_Greek_kappa) return "Greek_kappa"; + if (k == XK_Greek_lamda) return "Greek_lamda"; + if (k == XK_Greek_lambda) return "Greek_lambda"; + if (k == XK_Greek_mu) return "Greek_mu"; + if (k == XK_Greek_nu) return "Greek_nu"; + if (k == XK_Greek_xi) return "Greek_xi"; + if (k == XK_Greek_omicron) return "Greek_omicron"; + if (k == XK_Greek_pi) return "Greek_pi"; + if (k == XK_Greek_rho) return "Greek_rho"; + if (k == XK_Greek_sigma) return "Greek_sigma"; + if (k == XK_Greek_finalsmallsigma) return "Greek_finalsmallsigma"; + if (k == XK_Greek_tau) return "Greek_tau"; + if (k == XK_Greek_upsilon) return "Greek_upsilon"; + if (k == XK_Greek_phi) return "Greek_phi"; + if (k == XK_Greek_chi) return "Greek_chi"; + if (k == XK_Greek_psi) return "Greek_psi"; + if (k == XK_Greek_omega) return "Greek_omega"; + if (k == XK_Greek_switch) return "Greek_switch"; +#endif /* XK_GREEK */ +#ifdef XK_TECHNICAL + if (k == XK_leftradical) return "leftradical"; + if (k == XK_topleftradical) return "topleftradical"; + if (k == XK_horizconnector) return "horizconnector"; + if (k == XK_topintegral) return "topintegral"; + if (k == XK_botintegral) return "botintegral"; + if (k == XK_vertconnector) return "vertconnector"; + if (k == XK_topleftsqbracket) return "topleftsqbracket"; + if (k == XK_botleftsqbracket) return "botleftsqbracket"; + if (k == XK_toprightsqbracket) return "toprightsqbracket"; + if (k == XK_botrightsqbracket) return "botrightsqbracket"; + if (k == XK_topleftparens) return "topleftparens"; + if (k == XK_botleftparens) return "botleftparens"; + if (k == XK_toprightparens) return "toprightparens"; + if (k == XK_botrightparens) return "botrightparens"; + if (k == XK_leftmiddlecurlybrace) return "leftmiddlecurlybrace"; + if (k == XK_rightmiddlecurlybrace) return "rightmiddlecurlybrace"; + if (k == XK_topleftsummation) return "topleftsummation"; + if (k == XK_botleftsummation) return "botleftsummation"; + if (k == XK_topvertsummationconnector) return "topvertsummationconnector"; + if (k == XK_botvertsummationconnector) return "botvertsummationconnector"; + if (k == XK_toprightsummation) return "toprightsummation"; + if (k == XK_botrightsummation) return "botrightsummation"; + if (k == XK_rightmiddlesummation) return "rightmiddlesummation"; + if (k == XK_lessthanequal) return "lessthanequal"; + if (k == XK_notequal) return "notequal"; + if (k == XK_greaterthanequal) return "greaterthanequal"; + if (k == XK_integral) return "integral"; + if (k == XK_therefore) return "therefore"; + if (k == XK_variation) return "variation"; + if (k == XK_infinity) return "infinity"; + if (k == XK_nabla) return "nabla"; + if (k == XK_approximate) return "approximate"; + if (k == XK_similarequal) return "similarequal"; + if (k == XK_ifonlyif) return "ifonlyif"; + if (k == XK_implies) return "implies"; + if (k == XK_identical) return "identical"; + if (k == XK_radical) return "radical"; + if (k == XK_includedin) return "includedin"; + if (k == XK_includes) return "includes"; + if (k == XK_intersection) return "intersection"; + if (k == XK_union) return "union"; + if (k == XK_logicaland) return "logicaland"; + if (k == XK_logicalor) return "logicalor"; + if (k == XK_partialderivative) return "partialderivative"; + if (k == XK_function) return "function"; + if (k == XK_leftarrow) return "leftarrow"; + if (k == XK_uparrow) return "uparrow"; + if (k == XK_rightarrow) return "rightarrow"; + if (k == XK_downarrow) return "downarrow"; +#endif /* XK_TECHNICAL */ +#ifdef XK_SPECIAL + if (k == XK_blank) return "blank"; + if (k == XK_soliddiamond) return "soliddiamond"; + if (k == XK_checkerboard) return "checkerboard"; + if (k == XK_ht) return "ht"; + if (k == XK_ff) return "ff"; + if (k == XK_cr) return "cr"; + if (k == XK_lf) return "lf"; + if (k == XK_nl) return "nl"; + if (k == XK_vt) return "vt"; + if (k == XK_lowrightcorner) return "lowrightcorner"; + if (k == XK_uprightcorner) return "uprightcorner"; + if (k == XK_upleftcorner) return "upleftcorner"; + if (k == XK_lowleftcorner) return "lowleftcorner"; + if (k == XK_crossinglines) return "crossinglines"; + if (k == XK_horizlinescan1) return "horizlinescan1"; + if (k == XK_horizlinescan3) return "horizlinescan3"; + if (k == XK_horizlinescan5) return "horizlinescan5"; + if (k == XK_horizlinescan7) return "horizlinescan7"; + if (k == XK_horizlinescan9) return "horizlinescan9"; + if (k == XK_leftt) return "leftt"; + if (k == XK_rightt) return "rightt"; + if (k == XK_bott) return "bott"; + if (k == XK_topt) return "topt"; + if (k == XK_vertbar) return "vertbar"; +#endif /* XK_SPECIAL */ +#ifdef XK_PUBLISHING + if (k == XK_emspace) return "emspace"; + if (k == XK_enspace) return "enspace"; + if (k == XK_em3space) return "em3space"; + if (k == XK_em4space) return "em4space"; + if (k == XK_digitspace) return "digitspace"; + if (k == XK_punctspace) return "punctspace"; + if (k == XK_thinspace) return "thinspace"; + if (k == XK_hairspace) return "hairspace"; + if (k == XK_emdash) return "emdash"; + if (k == XK_endash) return "endash"; + if (k == XK_signifblank) return "signifblank"; + if (k == XK_ellipsis) return "ellipsis"; + if (k == XK_doubbaselinedot) return "doubbaselinedot"; + if (k == XK_onethird) return "onethird"; + if (k == XK_twothirds) return "twothirds"; + if (k == XK_onefifth) return "onefifth"; + if (k == XK_twofifths) return "twofifths"; + if (k == XK_threefifths) return "threefifths"; + if (k == XK_fourfifths) return "fourfifths"; + if (k == XK_onesixth) return "onesixth"; + if (k == XK_fivesixths) return "fivesixths"; + if (k == XK_careof) return "careof"; + if (k == XK_figdash) return "figdash"; + if (k == XK_leftanglebracket) return "leftanglebracket"; + if (k == XK_decimalpoint) return "decimalpoint"; + if (k == XK_rightanglebracket) return "rightanglebracket"; + if (k == XK_marker) return "marker"; + if (k == XK_oneeighth) return "oneeighth"; + if (k == XK_threeeighths) return "threeeighths"; + if (k == XK_fiveeighths) return "fiveeighths"; + if (k == XK_seveneighths) return "seveneighths"; + if (k == XK_trademark) return "trademark"; + if (k == XK_signaturemark) return "signaturemark"; + if (k == XK_trademarkincircle) return "trademarkincircle"; + if (k == XK_leftopentriangle) return "leftopentriangle"; + if (k == XK_rightopentriangle) return "rightopentriangle"; + if (k == XK_emopencircle) return "emopencircle"; + if (k == XK_emopenrectangle) return "emopenrectangle"; + if (k == XK_leftsinglequotemark) return "leftsinglequotemark"; + if (k == XK_rightsinglequotemark) return "rightsinglequotemark"; + if (k == XK_leftdoublequotemark) return "leftdoublequotemark"; + if (k == XK_rightdoublequotemark) return "rightdoublequotemark"; + if (k == XK_prescription) return "prescription"; + if (k == XK_minutes) return "minutes"; + if (k == XK_seconds) return "seconds"; + if (k == XK_latincross) return "latincross"; + if (k == XK_hexagram) return "hexagram"; + if (k == XK_filledrectbullet) return "filledrectbullet"; + if (k == XK_filledlefttribullet) return "filledlefttribullet"; + if (k == XK_filledrighttribullet) return "filledrighttribullet"; + if (k == XK_emfilledcircle) return "emfilledcircle"; + if (k == XK_emfilledrect) return "emfilledrect"; + if (k == XK_enopencircbullet) return "enopencircbullet"; + if (k == XK_enopensquarebullet) return "enopensquarebullet"; + if (k == XK_openrectbullet) return "openrectbullet"; + if (k == XK_opentribulletup) return "opentribulletup"; + if (k == XK_opentribulletdown) return "opentribulletdown"; + if (k == XK_openstar) return "openstar"; + if (k == XK_enfilledcircbullet) return "enfilledcircbullet"; + if (k == XK_enfilledsqbullet) return "enfilledsqbullet"; + if (k == XK_filledtribulletup) return "filledtribulletup"; + if (k == XK_filledtribulletdown) return "filledtribulletdown"; + if (k == XK_leftpointer) return "leftpointer"; + if (k == XK_rightpointer) return "rightpointer"; + if (k == XK_club) return "club"; + if (k == XK_diamond) return "diamond"; + if (k == XK_heart) return "heart"; + if (k == XK_maltesecross) return "maltesecross"; + if (k == XK_dagger) return "dagger"; + if (k == XK_doubledagger) return "doubledagger"; + if (k == XK_checkmark) return "checkmark"; + if (k == XK_ballotcross) return "ballotcross"; + if (k == XK_musicalsharp) return "musicalsharp"; + if (k == XK_musicalflat) return "musicalflat"; + if (k == XK_malesymbol) return "malesymbol"; + if (k == XK_femalesymbol) return "femalesymbol"; + if (k == XK_telephone) return "telephone"; + if (k == XK_telephonerecorder) return "telephonerecorder"; + if (k == XK_phonographcopyright) return "phonographcopyright"; + if (k == XK_caret) return "caret"; + if (k == XK_singlelowquotemark) return "singlelowquotemark"; + if (k == XK_doublelowquotemark) return "doublelowquotemark"; + if (k == XK_cursor) return "cursor"; +#endif /* XK_PUBLISHING */ +#ifdef XK_APL + if (k == XK_leftcaret) return "leftcaret"; + if (k == XK_rightcaret) return "rightcaret"; + if (k == XK_downcaret) return "downcaret"; + if (k == XK_upcaret) return "upcaret"; + if (k == XK_overbar) return "overbar"; + if (k == XK_downtack) return "downtack"; + if (k == XK_upshoe) return "upshoe"; + if (k == XK_downstile) return "downstile"; + if (k == XK_underbar) return "underbar"; + if (k == XK_jot) return "jot"; + if (k == XK_quad) return "quad"; + if (k == XK_uptack) return "uptack"; + if (k == XK_circle) return "circle"; + if (k == XK_upstile) return "upstile"; + if (k == XK_downshoe) return "downshoe"; + if (k == XK_rightshoe) return "rightshoe"; + if (k == XK_leftshoe) return "leftshoe"; + if (k == XK_lefttack) return "lefttack"; + if (k == XK_righttack) return "righttack"; +#endif /* XK_APL */ +#ifdef XK_HEBREW + if (k == XK_hebrew_doublelowline) return "hebrew_doublelowline"; + if (k == XK_hebrew_aleph) return "hebrew_aleph"; + if (k == XK_hebrew_bet) return "hebrew_bet"; + if (k == XK_hebrew_beth) return "hebrew_beth"; + if (k == XK_hebrew_gimel) return "hebrew_gimel"; + if (k == XK_hebrew_gimmel) return "hebrew_gimmel"; + if (k == XK_hebrew_dalet) return "hebrew_dalet"; + if (k == XK_hebrew_daleth) return "hebrew_daleth"; + if (k == XK_hebrew_he) return "hebrew_he"; + if (k == XK_hebrew_waw) return "hebrew_waw"; + if (k == XK_hebrew_zain) return "hebrew_zain"; + if (k == XK_hebrew_zayin) return "hebrew_zayin"; + if (k == XK_hebrew_chet) return "hebrew_chet"; + if (k == XK_hebrew_het) return "hebrew_het"; + if (k == XK_hebrew_tet) return "hebrew_tet"; + if (k == XK_hebrew_teth) return "hebrew_teth"; + if (k == XK_hebrew_yod) return "hebrew_yod"; + if (k == XK_hebrew_finalkaph) return "hebrew_finalkaph"; + if (k == XK_hebrew_kaph) return "hebrew_kaph"; + if (k == XK_hebrew_lamed) return "hebrew_lamed"; + if (k == XK_hebrew_finalmem) return "hebrew_finalmem"; + if (k == XK_hebrew_mem) return "hebrew_mem"; + if (k == XK_hebrew_finalnun) return "hebrew_finalnun"; + if (k == XK_hebrew_nun) return "hebrew_nun"; + if (k == XK_hebrew_samech) return "hebrew_samech"; + if (k == XK_hebrew_samekh) return "hebrew_samekh"; + if (k == XK_hebrew_ayin) return "hebrew_ayin"; + if (k == XK_hebrew_finalpe) return "hebrew_finalpe"; + if (k == XK_hebrew_pe) return "hebrew_pe"; + if (k == XK_hebrew_finalzade) return "hebrew_finalzade"; + if (k == XK_hebrew_finalzadi) return "hebrew_finalzadi"; + if (k == XK_hebrew_zade) return "hebrew_zade"; + if (k == XK_hebrew_zadi) return "hebrew_zadi"; + if (k == XK_hebrew_qoph) return "hebrew_qoph"; + if (k == XK_hebrew_kuf) return "hebrew_kuf"; + if (k == XK_hebrew_resh) return "hebrew_resh"; + if (k == XK_hebrew_shin) return "hebrew_shin"; + if (k == XK_hebrew_taw) return "hebrew_taw"; + if (k == XK_hebrew_taf) return "hebrew_taf"; + if (k == XK_Hebrew_switch) return "Hebrew_switch"; +#endif /* XK_HEBREW */ +#ifdef XK_THAI + if (k == XK_Thai_kokai) return "Thai_kokai"; + if (k == XK_Thai_khokhai) return "Thai_khokhai"; + if (k == XK_Thai_khokhuat) return "Thai_khokhuat"; + if (k == XK_Thai_khokhwai) return "Thai_khokhwai"; + if (k == XK_Thai_khokhon) return "Thai_khokhon"; + if (k == XK_Thai_khorakhang) return "Thai_khorakhang"; + if (k == XK_Thai_ngongu) return "Thai_ngongu"; + if (k == XK_Thai_chochan) return "Thai_chochan"; + if (k == XK_Thai_choching) return "Thai_choching"; + if (k == XK_Thai_chochang) return "Thai_chochang"; + if (k == XK_Thai_soso) return "Thai_soso"; + if (k == XK_Thai_chochoe) return "Thai_chochoe"; + if (k == XK_Thai_yoying) return "Thai_yoying"; + if (k == XK_Thai_dochada) return "Thai_dochada"; + if (k == XK_Thai_topatak) return "Thai_topatak"; + if (k == XK_Thai_thothan) return "Thai_thothan"; + if (k == XK_Thai_thonangmontho) return "Thai_thonangmontho"; + if (k == XK_Thai_thophuthao) return "Thai_thophuthao"; + if (k == XK_Thai_nonen) return "Thai_nonen"; + if (k == XK_Thai_dodek) return "Thai_dodek"; + if (k == XK_Thai_totao) return "Thai_totao"; + if (k == XK_Thai_thothung) return "Thai_thothung"; + if (k == XK_Thai_thothahan) return "Thai_thothahan"; + if (k == XK_Thai_thothong) return "Thai_thothong"; + if (k == XK_Thai_nonu) return "Thai_nonu"; + if (k == XK_Thai_bobaimai) return "Thai_bobaimai"; + if (k == XK_Thai_popla) return "Thai_popla"; + if (k == XK_Thai_phophung) return "Thai_phophung"; + if (k == XK_Thai_fofa) return "Thai_fofa"; + if (k == XK_Thai_phophan) return "Thai_phophan"; + if (k == XK_Thai_fofan) return "Thai_fofan"; + if (k == XK_Thai_phosamphao) return "Thai_phosamphao"; + if (k == XK_Thai_moma) return "Thai_moma"; + if (k == XK_Thai_yoyak) return "Thai_yoyak"; + if (k == XK_Thai_rorua) return "Thai_rorua"; + if (k == XK_Thai_ru) return "Thai_ru"; + if (k == XK_Thai_loling) return "Thai_loling"; + if (k == XK_Thai_lu) return "Thai_lu"; + if (k == XK_Thai_wowaen) return "Thai_wowaen"; + if (k == XK_Thai_sosala) return "Thai_sosala"; + if (k == XK_Thai_sorusi) return "Thai_sorusi"; + if (k == XK_Thai_sosua) return "Thai_sosua"; + if (k == XK_Thai_hohip) return "Thai_hohip"; + if (k == XK_Thai_lochula) return "Thai_lochula"; + if (k == XK_Thai_oang) return "Thai_oang"; + if (k == XK_Thai_honokhuk) return "Thai_honokhuk"; + if (k == XK_Thai_paiyannoi) return "Thai_paiyannoi"; + if (k == XK_Thai_saraa) return "Thai_saraa"; + if (k == XK_Thai_maihanakat) return "Thai_maihanakat"; + if (k == XK_Thai_saraaa) return "Thai_saraaa"; + if (k == XK_Thai_saraam) return "Thai_saraam"; + if (k == XK_Thai_sarai) return "Thai_sarai"; + if (k == XK_Thai_saraii) return "Thai_saraii"; + if (k == XK_Thai_saraue) return "Thai_saraue"; + if (k == XK_Thai_sarauee) return "Thai_sarauee"; + if (k == XK_Thai_sarau) return "Thai_sarau"; + if (k == XK_Thai_sarauu) return "Thai_sarauu"; + if (k == XK_Thai_phinthu) return "Thai_phinthu"; + if (k == XK_Thai_maihanakat_maitho) return "Thai_maihanakat_maitho"; + if (k == XK_Thai_baht) return "Thai_baht"; + if (k == XK_Thai_sarae) return "Thai_sarae"; + if (k == XK_Thai_saraae) return "Thai_saraae"; + if (k == XK_Thai_sarao) return "Thai_sarao"; + if (k == XK_Thai_saraaimaimuan) return "Thai_saraaimaimuan"; + if (k == XK_Thai_saraaimaimalai) return "Thai_saraaimaimalai"; + if (k == XK_Thai_lakkhangyao) return "Thai_lakkhangyao"; + if (k == XK_Thai_maiyamok) return "Thai_maiyamok"; + if (k == XK_Thai_maitaikhu) return "Thai_maitaikhu"; + if (k == XK_Thai_maiek) return "Thai_maiek"; + if (k == XK_Thai_maitho) return "Thai_maitho"; + if (k == XK_Thai_maitri) return "Thai_maitri"; + if (k == XK_Thai_maichattawa) return "Thai_maichattawa"; + if (k == XK_Thai_thanthakhat) return "Thai_thanthakhat"; + if (k == XK_Thai_nikhahit) return "Thai_nikhahit"; + if (k == XK_Thai_leksun) return "Thai_leksun"; + if (k == XK_Thai_leknung) return "Thai_leknung"; + if (k == XK_Thai_leksong) return "Thai_leksong"; + if (k == XK_Thai_leksam) return "Thai_leksam"; + if (k == XK_Thai_leksi) return "Thai_leksi"; + if (k == XK_Thai_lekha) return "Thai_lekha"; + if (k == XK_Thai_lekhok) return "Thai_lekhok"; + if (k == XK_Thai_lekchet) return "Thai_lekchet"; + if (k == XK_Thai_lekpaet) return "Thai_lekpaet"; + if (k == XK_Thai_lekkao) return "Thai_lekkao"; +#endif /* XK_THAI */ +#ifdef XK_KOREAN + if (k == XK_Hangul) return "Hangul"; + if (k == XK_Hangul_Start) return "Hangul_Start"; + if (k == XK_Hangul_End) return "Hangul_End"; + if (k == XK_Hangul_Hanja) return "Hangul_Hanja"; + if (k == XK_Hangul_Jamo) return "Hangul_Jamo"; + if (k == XK_Hangul_Romaja) return "Hangul_Romaja"; + if (k == XK_Hangul_Codeinput) return "Hangul_Codeinput"; + if (k == XK_Hangul_Jeonja) return "Hangul_Jeonja"; + if (k == XK_Hangul_Banja) return "Hangul_Banja"; + if (k == XK_Hangul_PreHanja) return "Hangul_PreHanja"; + if (k == XK_Hangul_PostHanja) return "Hangul_PostHanja"; + if (k == XK_Hangul_SingleCandidate) return "Hangul_SingleCandidate"; + if (k == XK_Hangul_MultipleCandidate) return "Hangul_MultipleCandidate"; + if (k == XK_Hangul_PreviousCandidate) return "Hangul_PreviousCandidate"; + if (k == XK_Hangul_Special) return "Hangul_Special"; + if (k == XK_Hangul_switch) return "Hangul_switch"; + if (k == XK_Hangul_Kiyeog) return "Hangul_Kiyeog"; + if (k == XK_Hangul_SsangKiyeog) return "Hangul_SsangKiyeog"; + if (k == XK_Hangul_KiyeogSios) return "Hangul_KiyeogSios"; + if (k == XK_Hangul_Nieun) return "Hangul_Nieun"; + if (k == XK_Hangul_NieunJieuj) return "Hangul_NieunJieuj"; + if (k == XK_Hangul_NieunHieuh) return "Hangul_NieunHieuh"; + if (k == XK_Hangul_Dikeud) return "Hangul_Dikeud"; + if (k == XK_Hangul_SsangDikeud) return "Hangul_SsangDikeud"; + if (k == XK_Hangul_Rieul) return "Hangul_Rieul"; + if (k == XK_Hangul_RieulKiyeog) return "Hangul_RieulKiyeog"; + if (k == XK_Hangul_RieulMieum) return "Hangul_RieulMieum"; + if (k == XK_Hangul_RieulPieub) return "Hangul_RieulPieub"; + if (k == XK_Hangul_RieulSios) return "Hangul_RieulSios"; + if (k == XK_Hangul_RieulTieut) return "Hangul_RieulTieut"; + if (k == XK_Hangul_RieulPhieuf) return "Hangul_RieulPhieuf"; + if (k == XK_Hangul_RieulHieuh) return "Hangul_RieulHieuh"; + if (k == XK_Hangul_Mieum) return "Hangul_Mieum"; + if (k == XK_Hangul_Pieub) return "Hangul_Pieub"; + if (k == XK_Hangul_SsangPieub) return "Hangul_SsangPieub"; + if (k == XK_Hangul_PieubSios) return "Hangul_PieubSios"; + if (k == XK_Hangul_Sios) return "Hangul_Sios"; + if (k == XK_Hangul_SsangSios) return "Hangul_SsangSios"; + if (k == XK_Hangul_Ieung) return "Hangul_Ieung"; + if (k == XK_Hangul_Jieuj) return "Hangul_Jieuj"; + if (k == XK_Hangul_SsangJieuj) return "Hangul_SsangJieuj"; + if (k == XK_Hangul_Cieuc) return "Hangul_Cieuc"; + if (k == XK_Hangul_Khieuq) return "Hangul_Khieuq"; + if (k == XK_Hangul_Tieut) return "Hangul_Tieut"; + if (k == XK_Hangul_Phieuf) return "Hangul_Phieuf"; + if (k == XK_Hangul_Hieuh) return "Hangul_Hieuh"; + if (k == XK_Hangul_A) return "Hangul_A"; + if (k == XK_Hangul_AE) return "Hangul_AE"; + if (k == XK_Hangul_YA) return "Hangul_YA"; + if (k == XK_Hangul_YAE) return "Hangul_YAE"; + if (k == XK_Hangul_EO) return "Hangul_EO"; + if (k == XK_Hangul_E) return "Hangul_E"; + if (k == XK_Hangul_YEO) return "Hangul_YEO"; + if (k == XK_Hangul_YE) return "Hangul_YE"; + if (k == XK_Hangul_O) return "Hangul_O"; + if (k == XK_Hangul_WA) return "Hangul_WA"; + if (k == XK_Hangul_WAE) return "Hangul_WAE"; + if (k == XK_Hangul_OE) return "Hangul_OE"; + if (k == XK_Hangul_YO) return "Hangul_YO"; + if (k == XK_Hangul_U) return "Hangul_U"; + if (k == XK_Hangul_WEO) return "Hangul_WEO"; + if (k == XK_Hangul_WE) return "Hangul_WE"; + if (k == XK_Hangul_WI) return "Hangul_WI"; + if (k == XK_Hangul_YU) return "Hangul_YU"; + if (k == XK_Hangul_EU) return "Hangul_EU"; + if (k == XK_Hangul_YI) return "Hangul_YI"; + if (k == XK_Hangul_I) return "Hangul_I"; + if (k == XK_Hangul_J_Kiyeog) return "Hangul_J_Kiyeog"; + if (k == XK_Hangul_J_SsangKiyeog) return "Hangul_J_SsangKiyeog"; + if (k == XK_Hangul_J_KiyeogSios) return "Hangul_J_KiyeogSios"; + if (k == XK_Hangul_J_Nieun) return "Hangul_J_Nieun"; + if (k == XK_Hangul_J_NieunJieuj) return "Hangul_J_NieunJieuj"; + if (k == XK_Hangul_J_NieunHieuh) return "Hangul_J_NieunHieuh"; + if (k == XK_Hangul_J_Dikeud) return "Hangul_J_Dikeud"; + if (k == XK_Hangul_J_Rieul) return "Hangul_J_Rieul"; + if (k == XK_Hangul_J_RieulKiyeog) return "Hangul_J_RieulKiyeog"; + if (k == XK_Hangul_J_RieulMieum) return "Hangul_J_RieulMieum"; + if (k == XK_Hangul_J_RieulPieub) return "Hangul_J_RieulPieub"; + if (k == XK_Hangul_J_RieulSios) return "Hangul_J_RieulSios"; + if (k == XK_Hangul_J_RieulTieut) return "Hangul_J_RieulTieut"; + if (k == XK_Hangul_J_RieulPhieuf) return "Hangul_J_RieulPhieuf"; + if (k == XK_Hangul_J_RieulHieuh) return "Hangul_J_RieulHieuh"; + if (k == XK_Hangul_J_Mieum) return "Hangul_J_Mieum"; + if (k == XK_Hangul_J_Pieub) return "Hangul_J_Pieub"; + if (k == XK_Hangul_J_PieubSios) return "Hangul_J_PieubSios"; + if (k == XK_Hangul_J_Sios) return "Hangul_J_Sios"; + if (k == XK_Hangul_J_SsangSios) return "Hangul_J_SsangSios"; + if (k == XK_Hangul_J_Ieung) return "Hangul_J_Ieung"; + if (k == XK_Hangul_J_Jieuj) return "Hangul_J_Jieuj"; + if (k == XK_Hangul_J_Cieuc) return "Hangul_J_Cieuc"; + if (k == XK_Hangul_J_Khieuq) return "Hangul_J_Khieuq"; + if (k == XK_Hangul_J_Tieut) return "Hangul_J_Tieut"; + if (k == XK_Hangul_J_Phieuf) return "Hangul_J_Phieuf"; + if (k == XK_Hangul_J_Hieuh) return "Hangul_J_Hieuh"; + if (k == XK_Hangul_RieulYeorinHieuh) return "Hangul_RieulYeorinHieuh"; + if (k == XK_Hangul_SunkyeongeumMieum) return "Hangul_SunkyeongeumMieum"; + if (k == XK_Hangul_SunkyeongeumPieub) return "Hangul_SunkyeongeumPieub"; + if (k == XK_Hangul_PanSios) return "Hangul_PanSios"; + if (k == XK_Hangul_KkogjiDalrinIeung) return "Hangul_KkogjiDalrinIeung"; + if (k == XK_Hangul_SunkyeongeumPhieuf) return "Hangul_SunkyeongeumPhieuf"; + if (k == XK_Hangul_YeorinHieuh) return "Hangul_YeorinHieuh"; + if (k == XK_Hangul_AraeA) return "Hangul_AraeA"; + if (k == XK_Hangul_AraeAE) return "Hangul_AraeAE"; + if (k == XK_Hangul_J_PanSios) return "Hangul_J_PanSios"; + if (k == XK_Hangul_J_KkogjiDalrinIeung) return "Hangul_J_KkogjiDalrinIeung"; + if (k == XK_Hangul_J_YeorinHieuh) return "Hangul_J_YeorinHieuh"; + if (k == XK_Korean_Won) return "Korean_Won"; +#endif /* XK_KOREAN */ + if (k == XK_EuroSign) return "EuroSign"; +#endif + return NULL; +} + +KeySym XKeycodeToKeysym(Display *display, KeyCode keycode, int index) { + return NoSymbol; +} + +KeyCode XKeysymToKeycode(Display *display, KeySym keysym) { + return NoSymbol; +} + +XErrorHandler XSetErrorHandler (XErrorHandler h) { + return h; +} + |