static void test_github_issue_42(void) { // Verify we are not dependent on locale, Turkish-i problem in particular. if (setlocale(LC_CTYPE, "tr_TR.UTF-8") == NULL) { // The locale is not available, probably; skip. return; } assert(test_string("i", XKB_KEY_i)); assert(test_string("I", XKB_KEY_I)); assert(test_casestring("i", XKB_KEY_i)); assert(test_casestring("I", XKB_KEY_i)); assert(xkb_keysym_to_upper(XKB_KEY_i) == XKB_KEY_I); assert(xkb_keysym_to_lower(XKB_KEY_I) == XKB_KEY_i); setlocale(LC_CTYPE, "C"); }
int main(void) { assert(test_string("Undo", 0xFF65)); assert(test_string("ThisKeyShouldNotExist", XKB_KEY_NoSymbol)); assert(test_string("XF86_Switch_VT_5", 0x1008FE05)); assert(test_string("VoidSymbol", 0xFFFFFF)); assert(test_string("U4567", 0x1004567)); assert(test_string("0x10203040", 0x10203040)); assert(test_string("a", 0x61)); assert(test_string("A", 0x41)); assert(test_string("ch", 0xfea0)); assert(test_string("Ch", 0xfea1)); assert(test_string("CH", 0xfea2)); assert(test_string("THORN", 0x00de)); assert(test_string("Thorn", 0x00de)); assert(test_string("thorn", 0x00fe)); assert(test_keysym(0x1008FF56, "XF86Close")); assert(test_keysym(0x0, "NoSymbol")); assert(test_keysym(0x1008FE20, "XF86Ungrab")); assert(test_keysym(0x01001234, "U1234")); /* 16-bit unicode padded to width 4. */ assert(test_keysym(0x010002DE, "U02DE")); /* 32-bit unicode padded to width 8. */ assert(test_keysym(0x0101F4A9, "U0001F4A9")); assert(test_casestring("Undo", 0xFF65)); assert(test_casestring("UNDO", 0xFF65)); assert(test_casestring("A", 0x61)); assert(test_casestring("a", 0x61)); assert(test_casestring("ThisKeyShouldNotExist", XKB_KEY_NoSymbol)); assert(test_casestring("XF86_Switch_vT_5", 0x1008FE05)); assert(test_casestring("xF86_SwitcH_VT_5", 0x1008FE05)); assert(test_casestring("xF86SwiTch_VT_5", 0x1008FE05)); assert(test_casestring("xF86Switch_vt_5", 0x1008FE05)); assert(test_casestring("VoidSymbol", 0xFFFFFF)); assert(test_casestring("vOIDsymBol", 0xFFFFFF)); assert(test_casestring("U4567", 0x1004567)); assert(test_casestring("u4567", 0x1004567)); assert(test_casestring("0x10203040", 0x10203040)); assert(test_casestring("0X10203040", 0x10203040)); assert(test_casestring("THORN", 0x00fe)); assert(test_casestring("Thorn", 0x00fe)); assert(test_casestring("thorn", 0x00fe)); assert(test_utf8(XKB_KEY_y, "y")); assert(test_utf8(XKB_KEY_u, "u")); assert(test_utf8(XKB_KEY_m, "m")); assert(test_utf8(XKB_KEY_Cyrillic_em, "м")); assert(test_utf8(XKB_KEY_Cyrillic_u, "у")); assert(test_utf8(XKB_KEY_exclam, "!")); assert(test_utf8(XKB_KEY_oslash, "ø")); assert(test_utf8(XKB_KEY_hebrew_aleph, "א")); assert(test_utf8(XKB_KEY_Arabic_sheen, "ش")); assert(test_utf8(XKB_KEY_space, " ")); assert(test_utf8(XKB_KEY_KP_Space, " ")); assert(test_utf8(XKB_KEY_BackSpace, "\b")); assert(test_utf8(XKB_KEY_Escape, "\033")); assert(test_utf8(XKB_KEY_KP_Separator, ",")); assert(test_utf8(XKB_KEY_KP_Decimal, ".")); assert(test_utf8(XKB_KEY_Tab, "\t")); assert(test_utf8(XKB_KEY_KP_Tab, "\t")); assert(test_utf8(XKB_KEY_hyphen, "")); assert(test_utf8(XKB_KEY_Linefeed, "\n")); assert(test_utf8(XKB_KEY_Return, "\r")); assert(test_utf8(XKB_KEY_KP_Enter, "\r")); assert(test_utf8(XKB_KEY_KP_Equal, "=")); assert(test_utf8(XKB_KEY_9, "9")); assert(test_utf8(XKB_KEY_KP_9, "9")); assert(test_utf8(XKB_KEY_KP_Multiply, "*")); assert(test_utf8(XKB_KEY_KP_Subtract, "-")); assert(xkb_keysym_is_lower(XKB_KEY_a)); assert(xkb_keysym_is_lower(XKB_KEY_Greek_lambda)); assert(xkb_keysym_is_lower(xkb_keysym_from_name("U03b1", 0))); /* GREEK SMALL LETTER ALPHA */ assert(xkb_keysym_is_lower(xkb_keysym_from_name("U03af", 0))); /* GREEK SMALL LETTER IOTA WITH TONOS */ assert(xkb_keysym_is_upper(XKB_KEY_A)); assert(xkb_keysym_is_upper(XKB_KEY_Greek_LAMBDA)); assert(xkb_keysym_is_upper(xkb_keysym_from_name("U0391", 0))); /* GREEK CAPITAL LETTER ALPHA */ assert(xkb_keysym_is_upper(xkb_keysym_from_name("U0388", 0))); /* GREEK CAPITAL LETTER EPSILON WITH TONOS */ assert(!xkb_keysym_is_upper(XKB_KEY_a)); assert(!xkb_keysym_is_lower(XKB_KEY_A)); assert(!xkb_keysym_is_lower(XKB_KEY_Return)); assert(!xkb_keysym_is_upper(XKB_KEY_Return)); assert(!xkb_keysym_is_lower(XKB_KEY_hebrew_aleph)); assert(!xkb_keysym_is_upper(XKB_KEY_hebrew_aleph)); assert(!xkb_keysym_is_upper(xkb_keysym_from_name("U05D0", 0))); /* HEBREW LETTER ALEF */ assert(!xkb_keysym_is_lower(xkb_keysym_from_name("U05D0", 0))); /* HEBREW LETTER ALEF */ assert(!xkb_keysym_is_lower(XKB_KEY_8)); assert(!xkb_keysym_is_upper(XKB_KEY_8)); assert(xkb_keysym_is_keypad(XKB_KEY_KP_Enter)); assert(xkb_keysym_is_keypad(XKB_KEY_KP_6)); assert(xkb_keysym_is_keypad(XKB_KEY_KP_Add)); assert(!xkb_keysym_is_keypad(XKB_KEY_Num_Lock)); assert(!xkb_keysym_is_keypad(XKB_KEY_1)); assert(!xkb_keysym_is_keypad(XKB_KEY_Return)); assert(xkb_keysym_to_upper(XKB_KEY_a) == XKB_KEY_A); assert(xkb_keysym_to_upper(XKB_KEY_A) == XKB_KEY_A); assert(xkb_keysym_to_lower(XKB_KEY_a) == XKB_KEY_a); assert(xkb_keysym_to_lower(XKB_KEY_A) == XKB_KEY_a); assert(xkb_keysym_to_upper(XKB_KEY_Return) == XKB_KEY_Return); assert(xkb_keysym_to_lower(XKB_KEY_Return) == XKB_KEY_Return); assert(xkb_keysym_to_upper(XKB_KEY_Greek_lambda) == XKB_KEY_Greek_LAMBDA); assert(xkb_keysym_to_upper(XKB_KEY_Greek_LAMBDA) == XKB_KEY_Greek_LAMBDA); assert(xkb_keysym_to_lower(XKB_KEY_Greek_lambda) == XKB_KEY_Greek_lambda); assert(xkb_keysym_to_lower(XKB_KEY_Greek_LAMBDA) == XKB_KEY_Greek_lambda); assert(xkb_keysym_to_upper(XKB_KEY_eacute) == XKB_KEY_Eacute); assert(xkb_keysym_to_lower(XKB_KEY_Eacute) == XKB_KEY_eacute); return 0; }