diff --git a/inc_case_folding.hh b/inc_case_folding.hh index dd01be35..5a3addec 100644 --- a/inc_case_folding.hh +++ b/inc_case_folding.hh @@ -241,6 +241,7 @@ size_t foldCase( wchar in, wchar * out ) case 0x370: *out = 0x371; return 1; case 0x372: *out = 0x373; return 1; case 0x376: *out = 0x377; return 1; + case 0x37f: *out = 0x3f3; return 1; case 0x386: *out = 0x3ac; return 1; case 0x388: *out = 0x3ad; return 1; case 0x389: *out = 0x3ae; return 1; @@ -447,6 +448,11 @@ size_t foldCase( wchar in, wchar * out ) case 0x520: *out = 0x521; return 1; case 0x522: *out = 0x523; return 1; case 0x524: *out = 0x525; return 1; + case 0x526: *out = 0x527; return 1; + case 0x528: *out = 0x529; return 1; + case 0x52a: *out = 0x52b; return 1; + case 0x52c: *out = 0x52d; return 1; + case 0x52e: *out = 0x52f; return 1; case 0x531: *out = 0x561; return 1; case 0x532: *out = 0x562; return 1; case 0x533: *out = 0x563; return 1; @@ -524,6 +530,69 @@ size_t foldCase( wchar in, wchar * out ) case 0x10c3: *out = 0x2d23; return 1; case 0x10c4: *out = 0x2d24; return 1; case 0x10c5: *out = 0x2d25; return 1; + case 0x10c7: *out = 0x2d27; return 1; + case 0x10cd: *out = 0x2d2d; return 1; + case 0x13f8: *out = 0x13f0; return 1; + case 0x13f9: *out = 0x13f1; return 1; + case 0x13fa: *out = 0x13f2; return 1; + case 0x13fb: *out = 0x13f3; return 1; + case 0x13fc: *out = 0x13f4; return 1; + case 0x13fd: *out = 0x13f5; return 1; + case 0x1c80: *out = 0x432; return 1; + case 0x1c81: *out = 0x434; return 1; + case 0x1c82: *out = 0x43e; return 1; + case 0x1c83: *out = 0x441; return 1; + case 0x1c84: *out = 0x442; return 1; + case 0x1c85: *out = 0x442; return 1; + case 0x1c86: *out = 0x44a; return 1; + case 0x1c87: *out = 0x463; return 1; + case 0x1c88: *out = 0xa64b; return 1; + case 0x1c90: *out = 0x10d0; return 1; + case 0x1c91: *out = 0x10d1; return 1; + case 0x1c92: *out = 0x10d2; return 1; + case 0x1c93: *out = 0x10d3; return 1; + case 0x1c94: *out = 0x10d4; return 1; + case 0x1c95: *out = 0x10d5; return 1; + case 0x1c96: *out = 0x10d6; return 1; + case 0x1c97: *out = 0x10d7; return 1; + case 0x1c98: *out = 0x10d8; return 1; + case 0x1c99: *out = 0x10d9; return 1; + case 0x1c9a: *out = 0x10da; return 1; + case 0x1c9b: *out = 0x10db; return 1; + case 0x1c9c: *out = 0x10dc; return 1; + case 0x1c9d: *out = 0x10dd; return 1; + case 0x1c9e: *out = 0x10de; return 1; + case 0x1c9f: *out = 0x10df; return 1; + case 0x1ca0: *out = 0x10e0; return 1; + case 0x1ca1: *out = 0x10e1; return 1; + case 0x1ca2: *out = 0x10e2; return 1; + case 0x1ca3: *out = 0x10e3; return 1; + case 0x1ca4: *out = 0x10e4; return 1; + case 0x1ca5: *out = 0x10e5; return 1; + case 0x1ca6: *out = 0x10e6; return 1; + case 0x1ca7: *out = 0x10e7; return 1; + case 0x1ca8: *out = 0x10e8; return 1; + case 0x1ca9: *out = 0x10e9; return 1; + case 0x1caa: *out = 0x10ea; return 1; + case 0x1cab: *out = 0x10eb; return 1; + case 0x1cac: *out = 0x10ec; return 1; + case 0x1cad: *out = 0x10ed; return 1; + case 0x1cae: *out = 0x10ee; return 1; + case 0x1caf: *out = 0x10ef; return 1; + case 0x1cb0: *out = 0x10f0; return 1; + case 0x1cb1: *out = 0x10f1; return 1; + case 0x1cb2: *out = 0x10f2; return 1; + case 0x1cb3: *out = 0x10f3; return 1; + case 0x1cb4: *out = 0x10f4; return 1; + case 0x1cb5: *out = 0x10f5; return 1; + case 0x1cb6: *out = 0x10f6; return 1; + case 0x1cb7: *out = 0x10f7; return 1; + case 0x1cb8: *out = 0x10f8; return 1; + case 0x1cb9: *out = 0x10f9; return 1; + case 0x1cba: *out = 0x10fa; return 1; + case 0x1cbd: *out = 0x10fd; return 1; + case 0x1cbe: *out = 0x10fe; return 1; + case 0x1cbf: *out = 0x10ff; return 1; case 0x1e00: *out = 0x1e01; return 1; case 0x1e02: *out = 0x1e03; return 1; case 0x1e04: *out = 0x1e05; return 1; @@ -897,6 +966,7 @@ size_t foldCase( wchar in, wchar * out ) case 0x2c2c: *out = 0x2c5c; return 1; case 0x2c2d: *out = 0x2c5d; return 1; case 0x2c2e: *out = 0x2c5e; return 1; + case 0x2c2f: *out = 0x2c5f; return 1; case 0x2c60: *out = 0x2c61; return 1; case 0x2c62: *out = 0x26b; return 1; case 0x2c63: *out = 0x1d7d; return 1; @@ -964,6 +1034,7 @@ size_t foldCase( wchar in, wchar * out ) case 0x2ce2: *out = 0x2ce3; return 1; case 0x2ceb: *out = 0x2cec; return 1; case 0x2ced: *out = 0x2cee; return 1; + case 0x2cf2: *out = 0x2cf3; return 1; case 0xa640: *out = 0xa641; return 1; case 0xa642: *out = 0xa643; return 1; case 0xa644: *out = 0xa645; return 1; @@ -980,6 +1051,7 @@ size_t foldCase( wchar in, wchar * out ) case 0xa65a: *out = 0xa65b; return 1; case 0xa65c: *out = 0xa65d; return 1; case 0xa65e: *out = 0xa65f; return 1; + case 0xa660: *out = 0xa661; return 1; case 0xa662: *out = 0xa663; return 1; case 0xa664: *out = 0xa665; return 1; case 0xa666: *out = 0xa667; return 1; @@ -998,6 +1070,8 @@ size_t foldCase( wchar in, wchar * out ) case 0xa692: *out = 0xa693; return 1; case 0xa694: *out = 0xa695; return 1; case 0xa696: *out = 0xa697; return 1; + case 0xa698: *out = 0xa699; return 1; + case 0xa69a: *out = 0xa69b; return 1; case 0xa722: *out = 0xa723; return 1; case 0xa724: *out = 0xa725; return 1; case 0xa726: *out = 0xa727; return 1; @@ -1045,6 +1119,125 @@ size_t foldCase( wchar in, wchar * out ) case 0xa784: *out = 0xa785; return 1; case 0xa786: *out = 0xa787; return 1; case 0xa78b: *out = 0xa78c; return 1; + case 0xa78d: *out = 0x265; return 1; + case 0xa790: *out = 0xa791; return 1; + case 0xa792: *out = 0xa793; return 1; + case 0xa796: *out = 0xa797; return 1; + case 0xa798: *out = 0xa799; return 1; + case 0xa79a: *out = 0xa79b; return 1; + case 0xa79c: *out = 0xa79d; return 1; + case 0xa79e: *out = 0xa79f; return 1; + case 0xa7a0: *out = 0xa7a1; return 1; + case 0xa7a2: *out = 0xa7a3; return 1; + case 0xa7a4: *out = 0xa7a5; return 1; + case 0xa7a6: *out = 0xa7a7; return 1; + case 0xa7a8: *out = 0xa7a9; return 1; + case 0xa7aa: *out = 0x266; return 1; + case 0xa7ab: *out = 0x25c; return 1; + case 0xa7ac: *out = 0x261; return 1; + case 0xa7ad: *out = 0x26c; return 1; + case 0xa7ae: *out = 0x26a; return 1; + case 0xa7b0: *out = 0x29e; return 1; + case 0xa7b1: *out = 0x287; return 1; + case 0xa7b2: *out = 0x29d; return 1; + case 0xa7b3: *out = 0xab53; return 1; + case 0xa7b4: *out = 0xa7b5; return 1; + case 0xa7b6: *out = 0xa7b7; return 1; + case 0xa7b8: *out = 0xa7b9; return 1; + case 0xa7ba: *out = 0xa7bb; return 1; + case 0xa7bc: *out = 0xa7bd; return 1; + case 0xa7be: *out = 0xa7bf; return 1; + case 0xa7c0: *out = 0xa7c1; return 1; + case 0xa7c2: *out = 0xa7c3; return 1; + case 0xa7c4: *out = 0xa794; return 1; + case 0xa7c5: *out = 0x282; return 1; + case 0xa7c6: *out = 0x1d8e; return 1; + case 0xa7c7: *out = 0xa7c8; return 1; + case 0xa7c9: *out = 0xa7ca; return 1; + case 0xa7d0: *out = 0xa7d1; return 1; + case 0xa7d6: *out = 0xa7d7; return 1; + case 0xa7d8: *out = 0xa7d9; return 1; + case 0xa7f5: *out = 0xa7f6; return 1; + case 0xab70: *out = 0x13a0; return 1; + case 0xab71: *out = 0x13a1; return 1; + case 0xab72: *out = 0x13a2; return 1; + case 0xab73: *out = 0x13a3; return 1; + case 0xab74: *out = 0x13a4; return 1; + case 0xab75: *out = 0x13a5; return 1; + case 0xab76: *out = 0x13a6; return 1; + case 0xab77: *out = 0x13a7; return 1; + case 0xab78: *out = 0x13a8; return 1; + case 0xab79: *out = 0x13a9; return 1; + case 0xab7a: *out = 0x13aa; return 1; + case 0xab7b: *out = 0x13ab; return 1; + case 0xab7c: *out = 0x13ac; return 1; + case 0xab7d: *out = 0x13ad; return 1; + case 0xab7e: *out = 0x13ae; return 1; + case 0xab7f: *out = 0x13af; return 1; + case 0xab80: *out = 0x13b0; return 1; + case 0xab81: *out = 0x13b1; return 1; + case 0xab82: *out = 0x13b2; return 1; + case 0xab83: *out = 0x13b3; return 1; + case 0xab84: *out = 0x13b4; return 1; + case 0xab85: *out = 0x13b5; return 1; + case 0xab86: *out = 0x13b6; return 1; + case 0xab87: *out = 0x13b7; return 1; + case 0xab88: *out = 0x13b8; return 1; + case 0xab89: *out = 0x13b9; return 1; + case 0xab8a: *out = 0x13ba; return 1; + case 0xab8b: *out = 0x13bb; return 1; + case 0xab8c: *out = 0x13bc; return 1; + case 0xab8d: *out = 0x13bd; return 1; + case 0xab8e: *out = 0x13be; return 1; + case 0xab8f: *out = 0x13bf; return 1; + case 0xab90: *out = 0x13c0; return 1; + case 0xab91: *out = 0x13c1; return 1; + case 0xab92: *out = 0x13c2; return 1; + case 0xab93: *out = 0x13c3; return 1; + case 0xab94: *out = 0x13c4; return 1; + case 0xab95: *out = 0x13c5; return 1; + case 0xab96: *out = 0x13c6; return 1; + case 0xab97: *out = 0x13c7; return 1; + case 0xab98: *out = 0x13c8; return 1; + case 0xab99: *out = 0x13c9; return 1; + case 0xab9a: *out = 0x13ca; return 1; + case 0xab9b: *out = 0x13cb; return 1; + case 0xab9c: *out = 0x13cc; return 1; + case 0xab9d: *out = 0x13cd; return 1; + case 0xab9e: *out = 0x13ce; return 1; + case 0xab9f: *out = 0x13cf; return 1; + case 0xaba0: *out = 0x13d0; return 1; + case 0xaba1: *out = 0x13d1; return 1; + case 0xaba2: *out = 0x13d2; return 1; + case 0xaba3: *out = 0x13d3; return 1; + case 0xaba4: *out = 0x13d4; return 1; + case 0xaba5: *out = 0x13d5; return 1; + case 0xaba6: *out = 0x13d6; return 1; + case 0xaba7: *out = 0x13d7; return 1; + case 0xaba8: *out = 0x13d8; return 1; + case 0xaba9: *out = 0x13d9; return 1; + case 0xabaa: *out = 0x13da; return 1; + case 0xabab: *out = 0x13db; return 1; + case 0xabac: *out = 0x13dc; return 1; + case 0xabad: *out = 0x13dd; return 1; + case 0xabae: *out = 0x13de; return 1; + case 0xabaf: *out = 0x13df; return 1; + case 0xabb0: *out = 0x13e0; return 1; + case 0xabb1: *out = 0x13e1; return 1; + case 0xabb2: *out = 0x13e2; return 1; + case 0xabb3: *out = 0x13e3; return 1; + case 0xabb4: *out = 0x13e4; return 1; + case 0xabb5: *out = 0x13e5; return 1; + case 0xabb6: *out = 0x13e6; return 1; + case 0xabb7: *out = 0x13e7; return 1; + case 0xabb8: *out = 0x13e8; return 1; + case 0xabb9: *out = 0x13e9; return 1; + case 0xabba: *out = 0x13ea; return 1; + case 0xabbb: *out = 0x13eb; return 1; + case 0xabbc: *out = 0x13ec; return 1; + case 0xabbd: *out = 0x13ed; return 1; + case 0xabbe: *out = 0x13ee; return 1; + case 0xabbf: *out = 0x13ef; return 1; case 0xfb00: out[ 0 ] = 0x66; out[ 1 ] = 0x66; return 2; case 0xfb01: out[ 0 ] = 0x66; out[ 1 ] = 0x69; return 2; case 0xfb02: out[ 0 ] = 0x66; out[ 1 ] = 0x6c; return 2; @@ -1123,6 +1316,226 @@ size_t foldCase( wchar in, wchar * out ) case 0x10425: *out = 0x1044d; return 1; case 0x10426: *out = 0x1044e; return 1; case 0x10427: *out = 0x1044f; return 1; + case 0x104b0: *out = 0x104d8; return 1; + case 0x104b1: *out = 0x104d9; return 1; + case 0x104b2: *out = 0x104da; return 1; + case 0x104b3: *out = 0x104db; return 1; + case 0x104b4: *out = 0x104dc; return 1; + case 0x104b5: *out = 0x104dd; return 1; + case 0x104b6: *out = 0x104de; return 1; + case 0x104b7: *out = 0x104df; return 1; + case 0x104b8: *out = 0x104e0; return 1; + case 0x104b9: *out = 0x104e1; return 1; + case 0x104ba: *out = 0x104e2; return 1; + case 0x104bb: *out = 0x104e3; return 1; + case 0x104bc: *out = 0x104e4; return 1; + case 0x104bd: *out = 0x104e5; return 1; + case 0x104be: *out = 0x104e6; return 1; + case 0x104bf: *out = 0x104e7; return 1; + case 0x104c0: *out = 0x104e8; return 1; + case 0x104c1: *out = 0x104e9; return 1; + case 0x104c2: *out = 0x104ea; return 1; + case 0x104c3: *out = 0x104eb; return 1; + case 0x104c4: *out = 0x104ec; return 1; + case 0x104c5: *out = 0x104ed; return 1; + case 0x104c6: *out = 0x104ee; return 1; + case 0x104c7: *out = 0x104ef; return 1; + case 0x104c8: *out = 0x104f0; return 1; + case 0x104c9: *out = 0x104f1; return 1; + case 0x104ca: *out = 0x104f2; return 1; + case 0x104cb: *out = 0x104f3; return 1; + case 0x104cc: *out = 0x104f4; return 1; + case 0x104cd: *out = 0x104f5; return 1; + case 0x104ce: *out = 0x104f6; return 1; + case 0x104cf: *out = 0x104f7; return 1; + case 0x104d0: *out = 0x104f8; return 1; + case 0x104d1: *out = 0x104f9; return 1; + case 0x104d2: *out = 0x104fa; return 1; + case 0x104d3: *out = 0x104fb; return 1; + case 0x10570: *out = 0x10597; return 1; + case 0x10571: *out = 0x10598; return 1; + case 0x10572: *out = 0x10599; return 1; + case 0x10573: *out = 0x1059a; return 1; + case 0x10574: *out = 0x1059b; return 1; + case 0x10575: *out = 0x1059c; return 1; + case 0x10576: *out = 0x1059d; return 1; + case 0x10577: *out = 0x1059e; return 1; + case 0x10578: *out = 0x1059f; return 1; + case 0x10579: *out = 0x105a0; return 1; + case 0x1057a: *out = 0x105a1; return 1; + case 0x1057c: *out = 0x105a3; return 1; + case 0x1057d: *out = 0x105a4; return 1; + case 0x1057e: *out = 0x105a5; return 1; + case 0x1057f: *out = 0x105a6; return 1; + case 0x10580: *out = 0x105a7; return 1; + case 0x10581: *out = 0x105a8; return 1; + case 0x10582: *out = 0x105a9; return 1; + case 0x10583: *out = 0x105aa; return 1; + case 0x10584: *out = 0x105ab; return 1; + case 0x10585: *out = 0x105ac; return 1; + case 0x10586: *out = 0x105ad; return 1; + case 0x10587: *out = 0x105ae; return 1; + case 0x10588: *out = 0x105af; return 1; + case 0x10589: *out = 0x105b0; return 1; + case 0x1058a: *out = 0x105b1; return 1; + case 0x1058c: *out = 0x105b3; return 1; + case 0x1058d: *out = 0x105b4; return 1; + case 0x1058e: *out = 0x105b5; return 1; + case 0x1058f: *out = 0x105b6; return 1; + case 0x10590: *out = 0x105b7; return 1; + case 0x10591: *out = 0x105b8; return 1; + case 0x10592: *out = 0x105b9; return 1; + case 0x10594: *out = 0x105bb; return 1; + case 0x10595: *out = 0x105bc; return 1; + case 0x10c80: *out = 0x10cc0; return 1; + case 0x10c81: *out = 0x10cc1; return 1; + case 0x10c82: *out = 0x10cc2; return 1; + case 0x10c83: *out = 0x10cc3; return 1; + case 0x10c84: *out = 0x10cc4; return 1; + case 0x10c85: *out = 0x10cc5; return 1; + case 0x10c86: *out = 0x10cc6; return 1; + case 0x10c87: *out = 0x10cc7; return 1; + case 0x10c88: *out = 0x10cc8; return 1; + case 0x10c89: *out = 0x10cc9; return 1; + case 0x10c8a: *out = 0x10cca; return 1; + case 0x10c8b: *out = 0x10ccb; return 1; + case 0x10c8c: *out = 0x10ccc; return 1; + case 0x10c8d: *out = 0x10ccd; return 1; + case 0x10c8e: *out = 0x10cce; return 1; + case 0x10c8f: *out = 0x10ccf; return 1; + case 0x10c90: *out = 0x10cd0; return 1; + case 0x10c91: *out = 0x10cd1; return 1; + case 0x10c92: *out = 0x10cd2; return 1; + case 0x10c93: *out = 0x10cd3; return 1; + case 0x10c94: *out = 0x10cd4; return 1; + case 0x10c95: *out = 0x10cd5; return 1; + case 0x10c96: *out = 0x10cd6; return 1; + case 0x10c97: *out = 0x10cd7; return 1; + case 0x10c98: *out = 0x10cd8; return 1; + case 0x10c99: *out = 0x10cd9; return 1; + case 0x10c9a: *out = 0x10cda; return 1; + case 0x10c9b: *out = 0x10cdb; return 1; + case 0x10c9c: *out = 0x10cdc; return 1; + case 0x10c9d: *out = 0x10cdd; return 1; + case 0x10c9e: *out = 0x10cde; return 1; + case 0x10c9f: *out = 0x10cdf; return 1; + case 0x10ca0: *out = 0x10ce0; return 1; + case 0x10ca1: *out = 0x10ce1; return 1; + case 0x10ca2: *out = 0x10ce2; return 1; + case 0x10ca3: *out = 0x10ce3; return 1; + case 0x10ca4: *out = 0x10ce4; return 1; + case 0x10ca5: *out = 0x10ce5; return 1; + case 0x10ca6: *out = 0x10ce6; return 1; + case 0x10ca7: *out = 0x10ce7; return 1; + case 0x10ca8: *out = 0x10ce8; return 1; + case 0x10ca9: *out = 0x10ce9; return 1; + case 0x10caa: *out = 0x10cea; return 1; + case 0x10cab: *out = 0x10ceb; return 1; + case 0x10cac: *out = 0x10cec; return 1; + case 0x10cad: *out = 0x10ced; return 1; + case 0x10cae: *out = 0x10cee; return 1; + case 0x10caf: *out = 0x10cef; return 1; + case 0x10cb0: *out = 0x10cf0; return 1; + case 0x10cb1: *out = 0x10cf1; return 1; + case 0x10cb2: *out = 0x10cf2; return 1; + case 0x118a0: *out = 0x118c0; return 1; + case 0x118a1: *out = 0x118c1; return 1; + case 0x118a2: *out = 0x118c2; return 1; + case 0x118a3: *out = 0x118c3; return 1; + case 0x118a4: *out = 0x118c4; return 1; + case 0x118a5: *out = 0x118c5; return 1; + case 0x118a6: *out = 0x118c6; return 1; + case 0x118a7: *out = 0x118c7; return 1; + case 0x118a8: *out = 0x118c8; return 1; + case 0x118a9: *out = 0x118c9; return 1; + case 0x118aa: *out = 0x118ca; return 1; + case 0x118ab: *out = 0x118cb; return 1; + case 0x118ac: *out = 0x118cc; return 1; + case 0x118ad: *out = 0x118cd; return 1; + case 0x118ae: *out = 0x118ce; return 1; + case 0x118af: *out = 0x118cf; return 1; + case 0x118b0: *out = 0x118d0; return 1; + case 0x118b1: *out = 0x118d1; return 1; + case 0x118b2: *out = 0x118d2; return 1; + case 0x118b3: *out = 0x118d3; return 1; + case 0x118b4: *out = 0x118d4; return 1; + case 0x118b5: *out = 0x118d5; return 1; + case 0x118b6: *out = 0x118d6; return 1; + case 0x118b7: *out = 0x118d7; return 1; + case 0x118b8: *out = 0x118d8; return 1; + case 0x118b9: *out = 0x118d9; return 1; + case 0x118ba: *out = 0x118da; return 1; + case 0x118bb: *out = 0x118db; return 1; + case 0x118bc: *out = 0x118dc; return 1; + case 0x118bd: *out = 0x118dd; return 1; + case 0x118be: *out = 0x118de; return 1; + case 0x118bf: *out = 0x118df; return 1; + case 0x16e40: *out = 0x16e60; return 1; + case 0x16e41: *out = 0x16e61; return 1; + case 0x16e42: *out = 0x16e62; return 1; + case 0x16e43: *out = 0x16e63; return 1; + case 0x16e44: *out = 0x16e64; return 1; + case 0x16e45: *out = 0x16e65; return 1; + case 0x16e46: *out = 0x16e66; return 1; + case 0x16e47: *out = 0x16e67; return 1; + case 0x16e48: *out = 0x16e68; return 1; + case 0x16e49: *out = 0x16e69; return 1; + case 0x16e4a: *out = 0x16e6a; return 1; + case 0x16e4b: *out = 0x16e6b; return 1; + case 0x16e4c: *out = 0x16e6c; return 1; + case 0x16e4d: *out = 0x16e6d; return 1; + case 0x16e4e: *out = 0x16e6e; return 1; + case 0x16e4f: *out = 0x16e6f; return 1; + case 0x16e50: *out = 0x16e70; return 1; + case 0x16e51: *out = 0x16e71; return 1; + case 0x16e52: *out = 0x16e72; return 1; + case 0x16e53: *out = 0x16e73; return 1; + case 0x16e54: *out = 0x16e74; return 1; + case 0x16e55: *out = 0x16e75; return 1; + case 0x16e56: *out = 0x16e76; return 1; + case 0x16e57: *out = 0x16e77; return 1; + case 0x16e58: *out = 0x16e78; return 1; + case 0x16e59: *out = 0x16e79; return 1; + case 0x16e5a: *out = 0x16e7a; return 1; + case 0x16e5b: *out = 0x16e7b; return 1; + case 0x16e5c: *out = 0x16e7c; return 1; + case 0x16e5d: *out = 0x16e7d; return 1; + case 0x16e5e: *out = 0x16e7e; return 1; + case 0x16e5f: *out = 0x16e7f; return 1; + case 0x1e900: *out = 0x1e922; return 1; + case 0x1e901: *out = 0x1e923; return 1; + case 0x1e902: *out = 0x1e924; return 1; + case 0x1e903: *out = 0x1e925; return 1; + case 0x1e904: *out = 0x1e926; return 1; + case 0x1e905: *out = 0x1e927; return 1; + case 0x1e906: *out = 0x1e928; return 1; + case 0x1e907: *out = 0x1e929; return 1; + case 0x1e908: *out = 0x1e92a; return 1; + case 0x1e909: *out = 0x1e92b; return 1; + case 0x1e90a: *out = 0x1e92c; return 1; + case 0x1e90b: *out = 0x1e92d; return 1; + case 0x1e90c: *out = 0x1e92e; return 1; + case 0x1e90d: *out = 0x1e92f; return 1; + case 0x1e90e: *out = 0x1e930; return 1; + case 0x1e90f: *out = 0x1e931; return 1; + case 0x1e910: *out = 0x1e932; return 1; + case 0x1e911: *out = 0x1e933; return 1; + case 0x1e912: *out = 0x1e934; return 1; + case 0x1e913: *out = 0x1e935; return 1; + case 0x1e914: *out = 0x1e936; return 1; + case 0x1e915: *out = 0x1e937; return 1; + case 0x1e916: *out = 0x1e938; return 1; + case 0x1e917: *out = 0x1e939; return 1; + case 0x1e918: *out = 0x1e93a; return 1; + case 0x1e919: *out = 0x1e93b; return 1; + case 0x1e91a: *out = 0x1e93c; return 1; + case 0x1e91b: *out = 0x1e93d; return 1; + case 0x1e91c: *out = 0x1e93e; return 1; + case 0x1e91d: *out = 0x1e93f; return 1; + case 0x1e91e: *out = 0x1e940; return 1; + case 0x1e91f: *out = 0x1e941; return 1; + case 0x1e920: *out = 0x1e942; return 1; + case 0x1e921: *out = 0x1e943; return 1; default: *out = in; return 1; } } @@ -1362,6 +1775,7 @@ wchar foldCaseSimple( wchar in ) case 0x370: return 0x371; case 0x372: return 0x373; case 0x376: return 0x377; + case 0x37f: return 0x3f3; case 0x386: return 0x3ac; case 0x388: return 0x3ad; case 0x389: return 0x3ae; @@ -1566,6 +1980,11 @@ wchar foldCaseSimple( wchar in ) case 0x520: return 0x521; case 0x522: return 0x523; case 0x524: return 0x525; + case 0x526: return 0x527; + case 0x528: return 0x529; + case 0x52a: return 0x52b; + case 0x52c: return 0x52d; + case 0x52e: return 0x52f; case 0x531: return 0x561; case 0x532: return 0x562; case 0x533: return 0x563; @@ -1642,6 +2061,69 @@ wchar foldCaseSimple( wchar in ) case 0x10c3: return 0x2d23; case 0x10c4: return 0x2d24; case 0x10c5: return 0x2d25; + case 0x10c7: return 0x2d27; + case 0x10cd: return 0x2d2d; + case 0x13f8: return 0x13f0; + case 0x13f9: return 0x13f1; + case 0x13fa: return 0x13f2; + case 0x13fb: return 0x13f3; + case 0x13fc: return 0x13f4; + case 0x13fd: return 0x13f5; + case 0x1c80: return 0x432; + case 0x1c81: return 0x434; + case 0x1c82: return 0x43e; + case 0x1c83: return 0x441; + case 0x1c84: return 0x442; + case 0x1c85: return 0x442; + case 0x1c86: return 0x44a; + case 0x1c87: return 0x463; + case 0x1c88: return 0xa64b; + case 0x1c90: return 0x10d0; + case 0x1c91: return 0x10d1; + case 0x1c92: return 0x10d2; + case 0x1c93: return 0x10d3; + case 0x1c94: return 0x10d4; + case 0x1c95: return 0x10d5; + case 0x1c96: return 0x10d6; + case 0x1c97: return 0x10d7; + case 0x1c98: return 0x10d8; + case 0x1c99: return 0x10d9; + case 0x1c9a: return 0x10da; + case 0x1c9b: return 0x10db; + case 0x1c9c: return 0x10dc; + case 0x1c9d: return 0x10dd; + case 0x1c9e: return 0x10de; + case 0x1c9f: return 0x10df; + case 0x1ca0: return 0x10e0; + case 0x1ca1: return 0x10e1; + case 0x1ca2: return 0x10e2; + case 0x1ca3: return 0x10e3; + case 0x1ca4: return 0x10e4; + case 0x1ca5: return 0x10e5; + case 0x1ca6: return 0x10e6; + case 0x1ca7: return 0x10e7; + case 0x1ca8: return 0x10e8; + case 0x1ca9: return 0x10e9; + case 0x1caa: return 0x10ea; + case 0x1cab: return 0x10eb; + case 0x1cac: return 0x10ec; + case 0x1cad: return 0x10ed; + case 0x1cae: return 0x10ee; + case 0x1caf: return 0x10ef; + case 0x1cb0: return 0x10f0; + case 0x1cb1: return 0x10f1; + case 0x1cb2: return 0x10f2; + case 0x1cb3: return 0x10f3; + case 0x1cb4: return 0x10f4; + case 0x1cb5: return 0x10f5; + case 0x1cb6: return 0x10f6; + case 0x1cb7: return 0x10f7; + case 0x1cb8: return 0x10f8; + case 0x1cb9: return 0x10f9; + case 0x1cba: return 0x10fa; + case 0x1cbd: return 0x10fd; + case 0x1cbe: return 0x10fe; + case 0x1cbf: return 0x10ff; case 0x1e00: return 0x1e01; case 0x1e02: return 0x1e03; case 0x1e04: return 0x1e05; @@ -1958,6 +2440,7 @@ wchar foldCaseSimple( wchar in ) case 0x2c2c: return 0x2c5c; case 0x2c2d: return 0x2c5d; case 0x2c2e: return 0x2c5e; + case 0x2c2f: return 0x2c5f; case 0x2c60: return 0x2c61; case 0x2c62: return 0x26b; case 0x2c63: return 0x1d7d; @@ -2025,6 +2508,7 @@ wchar foldCaseSimple( wchar in ) case 0x2ce2: return 0x2ce3; case 0x2ceb: return 0x2cec; case 0x2ced: return 0x2cee; + case 0x2cf2: return 0x2cf3; case 0xa640: return 0xa641; case 0xa642: return 0xa643; case 0xa644: return 0xa645; @@ -2041,6 +2525,7 @@ wchar foldCaseSimple( wchar in ) case 0xa65a: return 0xa65b; case 0xa65c: return 0xa65d; case 0xa65e: return 0xa65f; + case 0xa660: return 0xa661; case 0xa662: return 0xa663; case 0xa664: return 0xa665; case 0xa666: return 0xa667; @@ -2059,6 +2544,8 @@ wchar foldCaseSimple( wchar in ) case 0xa692: return 0xa693; case 0xa694: return 0xa695; case 0xa696: return 0xa697; + case 0xa698: return 0xa699; + case 0xa69a: return 0xa69b; case 0xa722: return 0xa723; case 0xa724: return 0xa725; case 0xa726: return 0xa727; @@ -2106,6 +2593,125 @@ wchar foldCaseSimple( wchar in ) case 0xa784: return 0xa785; case 0xa786: return 0xa787; case 0xa78b: return 0xa78c; + case 0xa78d: return 0x265; + case 0xa790: return 0xa791; + case 0xa792: return 0xa793; + case 0xa796: return 0xa797; + case 0xa798: return 0xa799; + case 0xa79a: return 0xa79b; + case 0xa79c: return 0xa79d; + case 0xa79e: return 0xa79f; + case 0xa7a0: return 0xa7a1; + case 0xa7a2: return 0xa7a3; + case 0xa7a4: return 0xa7a5; + case 0xa7a6: return 0xa7a7; + case 0xa7a8: return 0xa7a9; + case 0xa7aa: return 0x266; + case 0xa7ab: return 0x25c; + case 0xa7ac: return 0x261; + case 0xa7ad: return 0x26c; + case 0xa7ae: return 0x26a; + case 0xa7b0: return 0x29e; + case 0xa7b1: return 0x287; + case 0xa7b2: return 0x29d; + case 0xa7b3: return 0xab53; + case 0xa7b4: return 0xa7b5; + case 0xa7b6: return 0xa7b7; + case 0xa7b8: return 0xa7b9; + case 0xa7ba: return 0xa7bb; + case 0xa7bc: return 0xa7bd; + case 0xa7be: return 0xa7bf; + case 0xa7c0: return 0xa7c1; + case 0xa7c2: return 0xa7c3; + case 0xa7c4: return 0xa794; + case 0xa7c5: return 0x282; + case 0xa7c6: return 0x1d8e; + case 0xa7c7: return 0xa7c8; + case 0xa7c9: return 0xa7ca; + case 0xa7d0: return 0xa7d1; + case 0xa7d6: return 0xa7d7; + case 0xa7d8: return 0xa7d9; + case 0xa7f5: return 0xa7f6; + case 0xab70: return 0x13a0; + case 0xab71: return 0x13a1; + case 0xab72: return 0x13a2; + case 0xab73: return 0x13a3; + case 0xab74: return 0x13a4; + case 0xab75: return 0x13a5; + case 0xab76: return 0x13a6; + case 0xab77: return 0x13a7; + case 0xab78: return 0x13a8; + case 0xab79: return 0x13a9; + case 0xab7a: return 0x13aa; + case 0xab7b: return 0x13ab; + case 0xab7c: return 0x13ac; + case 0xab7d: return 0x13ad; + case 0xab7e: return 0x13ae; + case 0xab7f: return 0x13af; + case 0xab80: return 0x13b0; + case 0xab81: return 0x13b1; + case 0xab82: return 0x13b2; + case 0xab83: return 0x13b3; + case 0xab84: return 0x13b4; + case 0xab85: return 0x13b5; + case 0xab86: return 0x13b6; + case 0xab87: return 0x13b7; + case 0xab88: return 0x13b8; + case 0xab89: return 0x13b9; + case 0xab8a: return 0x13ba; + case 0xab8b: return 0x13bb; + case 0xab8c: return 0x13bc; + case 0xab8d: return 0x13bd; + case 0xab8e: return 0x13be; + case 0xab8f: return 0x13bf; + case 0xab90: return 0x13c0; + case 0xab91: return 0x13c1; + case 0xab92: return 0x13c2; + case 0xab93: return 0x13c3; + case 0xab94: return 0x13c4; + case 0xab95: return 0x13c5; + case 0xab96: return 0x13c6; + case 0xab97: return 0x13c7; + case 0xab98: return 0x13c8; + case 0xab99: return 0x13c9; + case 0xab9a: return 0x13ca; + case 0xab9b: return 0x13cb; + case 0xab9c: return 0x13cc; + case 0xab9d: return 0x13cd; + case 0xab9e: return 0x13ce; + case 0xab9f: return 0x13cf; + case 0xaba0: return 0x13d0; + case 0xaba1: return 0x13d1; + case 0xaba2: return 0x13d2; + case 0xaba3: return 0x13d3; + case 0xaba4: return 0x13d4; + case 0xaba5: return 0x13d5; + case 0xaba6: return 0x13d6; + case 0xaba7: return 0x13d7; + case 0xaba8: return 0x13d8; + case 0xaba9: return 0x13d9; + case 0xabaa: return 0x13da; + case 0xabab: return 0x13db; + case 0xabac: return 0x13dc; + case 0xabad: return 0x13dd; + case 0xabae: return 0x13de; + case 0xabaf: return 0x13df; + case 0xabb0: return 0x13e0; + case 0xabb1: return 0x13e1; + case 0xabb2: return 0x13e2; + case 0xabb3: return 0x13e3; + case 0xabb4: return 0x13e4; + case 0xabb5: return 0x13e5; + case 0xabb6: return 0x13e6; + case 0xabb7: return 0x13e7; + case 0xabb8: return 0x13e8; + case 0xabb9: return 0x13e9; + case 0xabba: return 0x13ea; + case 0xabbb: return 0x13eb; + case 0xabbc: return 0x13ec; + case 0xabbd: return 0x13ed; + case 0xabbe: return 0x13ee; + case 0xabbf: return 0x13ef; case 0xff21: return 0xff41; case 0xff22: return 0xff42; case 0xff23: return 0xff43; @@ -2172,6 +2778,226 @@ wchar foldCaseSimple( wchar in ) case 0x10425: return 0x1044d; case 0x10426: return 0x1044e; case 0x10427: return 0x1044f; + case 0x104b0: return 0x104d8; + case 0x104b1: return 0x104d9; + case 0x104b2: return 0x104da; + case 0x104b3: return 0x104db; + case 0x104b4: return 0x104dc; + case 0x104b5: return 0x104dd; + case 0x104b6: return 0x104de; + case 0x104b7: return 0x104df; + case 0x104b8: return 0x104e0; + case 0x104b9: return 0x104e1; + case 0x104ba: return 0x104e2; + case 0x104bb: return 0x104e3; + case 0x104bc: return 0x104e4; + case 0x104bd: return 0x104e5; + case 0x104be: return 0x104e6; + case 0x104bf: return 0x104e7; + case 0x104c0: return 0x104e8; + case 0x104c1: return 0x104e9; + case 0x104c2: return 0x104ea; + case 0x104c3: return 0x104eb; + case 0x104c4: return 0x104ec; + case 0x104c5: return 0x104ed; + case 0x104c6: return 0x104ee; + case 0x104c7: return 0x104ef; + case 0x104c8: return 0x104f0; + case 0x104c9: return 0x104f1; + case 0x104ca: return 0x104f2; + case 0x104cb: return 0x104f3; + case 0x104cc: return 0x104f4; + case 0x104cd: return 0x104f5; + case 0x104ce: return 0x104f6; + case 0x104cf: return 0x104f7; + case 0x104d0: return 0x104f8; + case 0x104d1: return 0x104f9; + case 0x104d2: return 0x104fa; + case 0x104d3: return 0x104fb; + case 0x10570: return 0x10597; + case 0x10571: return 0x10598; + case 0x10572: return 0x10599; + case 0x10573: return 0x1059a; + case 0x10574: return 0x1059b; + case 0x10575: return 0x1059c; + case 0x10576: return 0x1059d; + case 0x10577: return 0x1059e; + case 0x10578: return 0x1059f; + case 0x10579: return 0x105a0; + case 0x1057a: return 0x105a1; + case 0x1057c: return 0x105a3; + case 0x1057d: return 0x105a4; + case 0x1057e: return 0x105a5; + case 0x1057f: return 0x105a6; + case 0x10580: return 0x105a7; + case 0x10581: return 0x105a8; + case 0x10582: return 0x105a9; + case 0x10583: return 0x105aa; + case 0x10584: return 0x105ab; + case 0x10585: return 0x105ac; + case 0x10586: return 0x105ad; + case 0x10587: return 0x105ae; + case 0x10588: return 0x105af; + case 0x10589: return 0x105b0; + case 0x1058a: return 0x105b1; + case 0x1058c: return 0x105b3; + case 0x1058d: return 0x105b4; + case 0x1058e: return 0x105b5; + case 0x1058f: return 0x105b6; + case 0x10590: return 0x105b7; + case 0x10591: return 0x105b8; + case 0x10592: return 0x105b9; + case 0x10594: return 0x105bb; + case 0x10595: return 0x105bc; + case 0x10c80: return 0x10cc0; + case 0x10c81: return 0x10cc1; + case 0x10c82: return 0x10cc2; + case 0x10c83: return 0x10cc3; + case 0x10c84: return 0x10cc4; + case 0x10c85: return 0x10cc5; + case 0x10c86: return 0x10cc6; + case 0x10c87: return 0x10cc7; + case 0x10c88: return 0x10cc8; + case 0x10c89: return 0x10cc9; + case 0x10c8a: return 0x10cca; + case 0x10c8b: return 0x10ccb; + case 0x10c8c: return 0x10ccc; + case 0x10c8d: return 0x10ccd; + case 0x10c8e: return 0x10cce; + case 0x10c8f: return 0x10ccf; + case 0x10c90: return 0x10cd0; + case 0x10c91: return 0x10cd1; + case 0x10c92: return 0x10cd2; + case 0x10c93: return 0x10cd3; + case 0x10c94: return 0x10cd4; + case 0x10c95: return 0x10cd5; + case 0x10c96: return 0x10cd6; + case 0x10c97: return 0x10cd7; + case 0x10c98: return 0x10cd8; + case 0x10c99: return 0x10cd9; + case 0x10c9a: return 0x10cda; + case 0x10c9b: return 0x10cdb; + case 0x10c9c: return 0x10cdc; + case 0x10c9d: return 0x10cdd; + case 0x10c9e: return 0x10cde; + case 0x10c9f: return 0x10cdf; + case 0x10ca0: return 0x10ce0; + case 0x10ca1: return 0x10ce1; + case 0x10ca2: return 0x10ce2; + case 0x10ca3: return 0x10ce3; + case 0x10ca4: return 0x10ce4; + case 0x10ca5: return 0x10ce5; + case 0x10ca6: return 0x10ce6; + case 0x10ca7: return 0x10ce7; + case 0x10ca8: return 0x10ce8; + case 0x10ca9: return 0x10ce9; + case 0x10caa: return 0x10cea; + case 0x10cab: return 0x10ceb; + case 0x10cac: return 0x10cec; + case 0x10cad: return 0x10ced; + case 0x10cae: return 0x10cee; + case 0x10caf: return 0x10cef; + case 0x10cb0: return 0x10cf0; + case 0x10cb1: return 0x10cf1; + case 0x10cb2: return 0x10cf2; + case 0x118a0: return 0x118c0; + case 0x118a1: return 0x118c1; + case 0x118a2: return 0x118c2; + case 0x118a3: return 0x118c3; + case 0x118a4: return 0x118c4; + case 0x118a5: return 0x118c5; + case 0x118a6: return 0x118c6; + case 0x118a7: return 0x118c7; + case 0x118a8: return 0x118c8; + case 0x118a9: return 0x118c9; + case 0x118aa: return 0x118ca; + case 0x118ab: return 0x118cb; + case 0x118ac: return 0x118cc; + case 0x118ad: return 0x118cd; + case 0x118ae: return 0x118ce; + case 0x118af: return 0x118cf; + case 0x118b0: return 0x118d0; + case 0x118b1: return 0x118d1; + case 0x118b2: return 0x118d2; + case 0x118b3: return 0x118d3; + case 0x118b4: return 0x118d4; + case 0x118b5: return 0x118d5; + case 0x118b6: return 0x118d6; + case 0x118b7: return 0x118d7; + case 0x118b8: return 0x118d8; + case 0x118b9: return 0x118d9; + case 0x118ba: return 0x118da; + case 0x118bb: return 0x118db; + case 0x118bc: return 0x118dc; + case 0x118bd: return 0x118dd; + case 0x118be: return 0x118de; + case 0x118bf: return 0x118df; + case 0x16e40: return 0x16e60; + case 0x16e41: return 0x16e61; + case 0x16e42: return 0x16e62; + case 0x16e43: return 0x16e63; + case 0x16e44: return 0x16e64; + case 0x16e45: return 0x16e65; + case 0x16e46: return 0x16e66; + case 0x16e47: return 0x16e67; + case 0x16e48: return 0x16e68; + case 0x16e49: return 0x16e69; + case 0x16e4a: return 0x16e6a; + case 0x16e4b: return 0x16e6b; + case 0x16e4c: return 0x16e6c; + case 0x16e4d: return 0x16e6d; + case 0x16e4e: return 0x16e6e; + case 0x16e4f: return 0x16e6f; + case 0x16e50: return 0x16e70; + case 0x16e51: return 0x16e71; + case 0x16e52: return 0x16e72; + case 0x16e53: return 0x16e73; + case 0x16e54: return 0x16e74; + case 0x16e55: return 0x16e75; + case 0x16e56: return 0x16e76; + case 0x16e57: return 0x16e77; + case 0x16e58: return 0x16e78; + case 0x16e59: return 0x16e79; + case 0x16e5a: return 0x16e7a; + case 0x16e5b: return 0x16e7b; + case 0x16e5c: return 0x16e7c; + case 0x16e5d: return 0x16e7d; + case 0x16e5e: return 0x16e7e; + case 0x16e5f: return 0x16e7f; + case 0x1e900: return 0x1e922; + case 0x1e901: return 0x1e923; + case 0x1e902: return 0x1e924; + case 0x1e903: return 0x1e925; + case 0x1e904: return 0x1e926; + case 0x1e905: return 0x1e927; + case 0x1e906: return 0x1e928; + case 0x1e907: return 0x1e929; + case 0x1e908: return 0x1e92a; + case 0x1e909: return 0x1e92b; + case 0x1e90a: return 0x1e92c; + case 0x1e90b: return 0x1e92d; + case 0x1e90c: return 0x1e92e; + case 0x1e90d: return 0x1e92f; + case 0x1e90e: return 0x1e930; + case 0x1e90f: return 0x1e931; + case 0x1e910: return 0x1e932; + case 0x1e911: return 0x1e933; + case 0x1e912: return 0x1e934; + case 0x1e913: return 0x1e935; + case 0x1e914: return 0x1e936; + case 0x1e915: return 0x1e937; + case 0x1e916: return 0x1e938; + case 0x1e917: return 0x1e939; + case 0x1e918: return 0x1e93a; + case 0x1e919: return 0x1e93b; + case 0x1e91a: return 0x1e93c; + case 0x1e91b: return 0x1e93d; + case 0x1e91c: return 0x1e93e; + case 0x1e91d: return 0x1e93f; + case 0x1e91e: return 0x1e940; + case 0x1e91f: return 0x1e941; + case 0x1e920: return 0x1e942; + case 0x1e921: return 0x1e943; default: return in; } } diff --git a/tools/generators/CaseFolding.txt b/tools/generators/CaseFolding.txt index bd0e86d0..d154ec8b 100644 --- a/tools/generators/CaseFolding.txt +++ b/tools/generators/CaseFolding.txt @@ -1,10 +1,11 @@ -# CaseFolding-5.2.0.txt -# Date: 2009-05-28, 23:02:34 GMT [MD] +# CaseFolding-15.0.0.txt +# Date: 2022-02-02, 23:35:35 GMT +# © 2022 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use, see https://www.unicode.org/terms_of_use.html # # Unicode Character Database -# Copyright (c) 1991-2009 Unicode, Inc. -# For terms of use, see http://www.unicode.org/terms_of_use.html -# For documentation, see http://www.unicode.org/reports/tr44/ +# For documentation, see https://www.unicode.org/reports/tr44/ # # Case Folding Properties # @@ -23,9 +24,9 @@ # # NOTE: case folding does not preserve normalization formats! # -# For information on case folding, including how to have case folding +# For information on case folding, including how to have case folding # preserve normalization formats, see Section 3.13 Default Case Algorithms in -# The Unicode Standard, Version 5.0. +# The Unicode Standard. # # ================================================================================ # Format @@ -52,7 +53,13 @@ # behavior. (The default option is to exclude them.) # # ================================================================= -# @missing 0000..10FFFF; +# +# Property: Case_Folding +# +# All code points not explicitly listed for Case_Folding +# have the value C for the status field, and the code point itself for the mapping field. +# +# ================================================================= 0041; C; 0061; # LATIN CAPITAL LETTER A 0042; C; 0062; # LATIN CAPITAL LETTER B 0043; C; 0063; # LATIN CAPITAL LETTER C @@ -290,6 +297,7 @@ 0370; C; 0371; # GREEK CAPITAL LETTER HETA 0372; C; 0373; # GREEK CAPITAL LETTER ARCHAIC SAMPI 0376; C; 0377; # GREEK CAPITAL LETTER PAMPHYLIAN DIGAMMA +037F; C; 03F3; # GREEK CAPITAL LETTER YOT 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS @@ -496,6 +504,11 @@ 0520; C; 0521; # CYRILLIC CAPITAL LETTER EL WITH MIDDLE HOOK 0522; C; 0523; # CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK 0524; C; 0525; # CYRILLIC CAPITAL LETTER PE WITH DESCENDER +0526; C; 0527; # CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER +0528; C; 0529; # CYRILLIC CAPITAL LETTER EN WITH LEFT HOOK +052A; C; 052B; # CYRILLIC CAPITAL LETTER DZZHE +052C; C; 052D; # CYRILLIC CAPITAL LETTER DCHE +052E; C; 052F; # CYRILLIC CAPITAL LETTER EL WITH DESCENDER 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM @@ -573,6 +586,69 @@ 10C3; C; 2D23; # GEORGIAN CAPITAL LETTER WE 10C4; C; 2D24; # GEORGIAN CAPITAL LETTER HAR 10C5; C; 2D25; # GEORGIAN CAPITAL LETTER HOE +10C7; C; 2D27; # GEORGIAN CAPITAL LETTER YN +10CD; C; 2D2D; # GEORGIAN CAPITAL LETTER AEN +13F8; C; 13F0; # CHEROKEE SMALL LETTER YE +13F9; C; 13F1; # CHEROKEE SMALL LETTER YI +13FA; C; 13F2; # CHEROKEE SMALL LETTER YO +13FB; C; 13F3; # CHEROKEE SMALL LETTER YU +13FC; C; 13F4; # CHEROKEE SMALL LETTER YV +13FD; C; 13F5; # CHEROKEE SMALL LETTER MV +1C80; C; 0432; # CYRILLIC SMALL LETTER ROUNDED VE +1C81; C; 0434; # CYRILLIC SMALL LETTER LONG-LEGGED DE +1C82; C; 043E; # CYRILLIC SMALL LETTER NARROW O +1C83; C; 0441; # CYRILLIC SMALL LETTER WIDE ES +1C84; C; 0442; # CYRILLIC SMALL LETTER TALL TE +1C85; C; 0442; # CYRILLIC SMALL LETTER THREE-LEGGED TE +1C86; C; 044A; # CYRILLIC SMALL LETTER TALL HARD SIGN +1C87; C; 0463; # CYRILLIC SMALL LETTER TALL YAT +1C88; C; A64B; # CYRILLIC SMALL LETTER UNBLENDED UK +1C90; C; 10D0; # GEORGIAN MTAVRULI CAPITAL LETTER AN +1C91; C; 10D1; # GEORGIAN MTAVRULI CAPITAL LETTER BAN +1C92; C; 10D2; # GEORGIAN MTAVRULI CAPITAL LETTER GAN +1C93; C; 10D3; # GEORGIAN MTAVRULI CAPITAL LETTER DON +1C94; C; 10D4; # GEORGIAN MTAVRULI CAPITAL LETTER EN +1C95; C; 10D5; # GEORGIAN MTAVRULI CAPITAL LETTER VIN +1C96; C; 10D6; # GEORGIAN MTAVRULI CAPITAL LETTER ZEN +1C97; C; 10D7; # GEORGIAN MTAVRULI CAPITAL LETTER TAN +1C98; C; 10D8; # GEORGIAN MTAVRULI CAPITAL LETTER IN +1C99; C; 10D9; # GEORGIAN MTAVRULI CAPITAL LETTER KAN +1C9A; C; 10DA; # GEORGIAN MTAVRULI CAPITAL LETTER LAS +1C9B; C; 10DB; # GEORGIAN MTAVRULI CAPITAL LETTER MAN +1C9C; C; 10DC; # GEORGIAN MTAVRULI CAPITAL LETTER NAR +1C9D; C; 10DD; # GEORGIAN MTAVRULI CAPITAL LETTER ON +1C9E; C; 10DE; # GEORGIAN MTAVRULI CAPITAL LETTER PAR +1C9F; C; 10DF; # GEORGIAN MTAVRULI CAPITAL LETTER ZHAR +1CA0; C; 10E0; # GEORGIAN MTAVRULI CAPITAL LETTER RAE +1CA1; C; 10E1; # GEORGIAN MTAVRULI CAPITAL LETTER SAN +1CA2; C; 10E2; # GEORGIAN MTAVRULI CAPITAL LETTER TAR +1CA3; C; 10E3; # GEORGIAN MTAVRULI CAPITAL LETTER UN +1CA4; C; 10E4; # GEORGIAN MTAVRULI CAPITAL LETTER PHAR +1CA5; C; 10E5; # GEORGIAN MTAVRULI CAPITAL LETTER KHAR +1CA6; C; 10E6; # GEORGIAN MTAVRULI CAPITAL LETTER GHAN +1CA7; C; 10E7; # GEORGIAN MTAVRULI CAPITAL LETTER QAR +1CA8; C; 10E8; # GEORGIAN MTAVRULI CAPITAL LETTER SHIN +1CA9; C; 10E9; # GEORGIAN MTAVRULI CAPITAL LETTER CHIN +1CAA; C; 10EA; # GEORGIAN MTAVRULI CAPITAL LETTER CAN +1CAB; C; 10EB; # GEORGIAN MTAVRULI CAPITAL LETTER JIL +1CAC; C; 10EC; # GEORGIAN MTAVRULI CAPITAL LETTER CIL +1CAD; C; 10ED; # GEORGIAN MTAVRULI CAPITAL LETTER CHAR +1CAE; C; 10EE; # GEORGIAN MTAVRULI CAPITAL LETTER XAN +1CAF; C; 10EF; # GEORGIAN MTAVRULI CAPITAL LETTER JHAN +1CB0; C; 10F0; # GEORGIAN MTAVRULI CAPITAL LETTER HAE +1CB1; C; 10F1; # GEORGIAN MTAVRULI CAPITAL LETTER HE +1CB2; C; 10F2; # GEORGIAN MTAVRULI CAPITAL LETTER HIE +1CB3; C; 10F3; # GEORGIAN MTAVRULI CAPITAL LETTER WE +1CB4; C; 10F4; # GEORGIAN MTAVRULI CAPITAL LETTER HAR +1CB5; C; 10F5; # GEORGIAN MTAVRULI CAPITAL LETTER HOE +1CB6; C; 10F6; # GEORGIAN MTAVRULI CAPITAL LETTER FI +1CB7; C; 10F7; # GEORGIAN MTAVRULI CAPITAL LETTER YN +1CB8; C; 10F8; # GEORGIAN MTAVRULI CAPITAL LETTER ELIFI +1CB9; C; 10F9; # GEORGIAN MTAVRULI CAPITAL LETTER TURNED GAN +1CBA; C; 10FA; # GEORGIAN MTAVRULI CAPITAL LETTER AIN +1CBD; C; 10FD; # GEORGIAN MTAVRULI CAPITAL LETTER AEN +1CBE; C; 10FE; # GEORGIAN MTAVRULI CAPITAL LETTER HARD SIGN +1CBF; C; 10FF; # GEORGIAN MTAVRULI CAPITAL LETTER LABIAL SIGN 1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW 1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW @@ -974,6 +1050,7 @@ 2C2C; C; 2C5C; # GLAGOLITIC CAPITAL LETTER SHTAPIC 2C2D; C; 2C5D; # GLAGOLITIC CAPITAL LETTER TROKUTASTI A 2C2E; C; 2C5E; # GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE +2C2F; C; 2C5F; # GLAGOLITIC CAPITAL LETTER CAUDATE CHRIVI 2C60; C; 2C61; # LATIN CAPITAL LETTER L WITH DOUBLE BAR 2C62; C; 026B; # LATIN CAPITAL LETTER L WITH MIDDLE TILDE 2C63; C; 1D7D; # LATIN CAPITAL LETTER P WITH STROKE @@ -1041,6 +1118,7 @@ 2CE2; C; 2CE3; # COPTIC CAPITAL LETTER OLD NUBIAN WAU 2CEB; C; 2CEC; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI 2CED; C; 2CEE; # COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA +2CF2; C; 2CF3; # COPTIC CAPITAL LETTER BOHAIRIC KHEI A640; C; A641; # CYRILLIC CAPITAL LETTER ZEMLYA A642; C; A643; # CYRILLIC CAPITAL LETTER DZELO A644; C; A645; # CYRILLIC CAPITAL LETTER REVERSED DZE @@ -1057,6 +1135,7 @@ A658; C; A659; # CYRILLIC CAPITAL LETTER CLOSED LITTLE YUS A65A; C; A65B; # CYRILLIC CAPITAL LETTER BLENDED YUS A65C; C; A65D; # CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS A65E; C; A65F; # CYRILLIC CAPITAL LETTER YN +A660; C; A661; # CYRILLIC CAPITAL LETTER REVERSED TSE A662; C; A663; # CYRILLIC CAPITAL LETTER SOFT DE A664; C; A665; # CYRILLIC CAPITAL LETTER SOFT EL A666; C; A667; # CYRILLIC CAPITAL LETTER SOFT EM @@ -1075,6 +1154,8 @@ A690; C; A691; # CYRILLIC CAPITAL LETTER TSSE A692; C; A693; # CYRILLIC CAPITAL LETTER TCHE A694; C; A695; # CYRILLIC CAPITAL LETTER HWE A696; C; A697; # CYRILLIC CAPITAL LETTER SHWE +A698; C; A699; # CYRILLIC CAPITAL LETTER DOUBLE O +A69A; C; A69B; # CYRILLIC CAPITAL LETTER CROSSED O A722; C; A723; # LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF A724; C; A725; # LATIN CAPITAL LETTER EGYPTOLOGICAL AIN A726; C; A727; # LATIN CAPITAL LETTER HENG @@ -1122,6 +1203,125 @@ A782; C; A783; # LATIN CAPITAL LETTER INSULAR R A784; C; A785; # LATIN CAPITAL LETTER INSULAR S A786; C; A787; # LATIN CAPITAL LETTER INSULAR T A78B; C; A78C; # LATIN CAPITAL LETTER SALTILLO +A78D; C; 0265; # LATIN CAPITAL LETTER TURNED H +A790; C; A791; # LATIN CAPITAL LETTER N WITH DESCENDER +A792; C; A793; # LATIN CAPITAL LETTER C WITH BAR +A796; C; A797; # LATIN CAPITAL LETTER B WITH FLOURISH +A798; C; A799; # LATIN CAPITAL LETTER F WITH STROKE +A79A; C; A79B; # LATIN CAPITAL LETTER VOLAPUK AE +A79C; C; A79D; # LATIN CAPITAL LETTER VOLAPUK OE +A79E; C; A79F; # LATIN CAPITAL LETTER VOLAPUK UE +A7A0; C; A7A1; # LATIN CAPITAL LETTER G WITH OBLIQUE STROKE +A7A2; C; A7A3; # LATIN CAPITAL LETTER K WITH OBLIQUE STROKE +A7A4; C; A7A5; # LATIN CAPITAL LETTER N WITH OBLIQUE STROKE +A7A6; C; A7A7; # LATIN CAPITAL LETTER R WITH OBLIQUE STROKE +A7A8; C; A7A9; # LATIN CAPITAL LETTER S WITH OBLIQUE STROKE +A7AA; C; 0266; # LATIN CAPITAL LETTER H WITH HOOK +A7AB; C; 025C; # LATIN CAPITAL LETTER REVERSED OPEN E +A7AC; C; 0261; # LATIN CAPITAL LETTER SCRIPT G +A7AD; C; 026C; # LATIN CAPITAL LETTER L WITH BELT +A7AE; C; 026A; # LATIN CAPITAL LETTER SMALL CAPITAL I +A7B0; C; 029E; # LATIN CAPITAL LETTER TURNED K +A7B1; C; 0287; # LATIN CAPITAL LETTER TURNED T +A7B2; C; 029D; # LATIN CAPITAL LETTER J WITH CROSSED-TAIL +A7B3; C; AB53; # LATIN CAPITAL LETTER CHI +A7B4; C; A7B5; # LATIN CAPITAL LETTER BETA +A7B6; C; A7B7; # LATIN CAPITAL LETTER OMEGA +A7B8; C; A7B9; # LATIN CAPITAL LETTER U WITH STROKE +A7BA; C; A7BB; # LATIN CAPITAL LETTER GLOTTAL A +A7BC; C; A7BD; # LATIN CAPITAL LETTER GLOTTAL I +A7BE; C; A7BF; # LATIN CAPITAL LETTER GLOTTAL U +A7C0; C; A7C1; # LATIN CAPITAL LETTER OLD POLISH O +A7C2; C; A7C3; # LATIN CAPITAL LETTER ANGLICANA W +A7C4; C; A794; # LATIN CAPITAL LETTER C WITH PALATAL HOOK +A7C5; C; 0282; # LATIN CAPITAL LETTER S WITH HOOK +A7C6; C; 1D8E; # LATIN CAPITAL LETTER Z WITH PALATAL HOOK +A7C7; C; A7C8; # LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY +A7C9; C; A7CA; # LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY +A7D0; C; A7D1; # LATIN CAPITAL LETTER CLOSED INSULAR G +A7D6; C; A7D7; # LATIN CAPITAL LETTER MIDDLE SCOTS S +A7D8; C; A7D9; # LATIN CAPITAL LETTER SIGMOID S +A7F5; C; A7F6; # LATIN CAPITAL LETTER REVERSED HALF H +AB70; C; 13A0; # CHEROKEE SMALL LETTER A +AB71; C; 13A1; # CHEROKEE SMALL LETTER E +AB72; C; 13A2; # CHEROKEE SMALL LETTER I +AB73; C; 13A3; # CHEROKEE SMALL LETTER O +AB74; C; 13A4; # CHEROKEE SMALL LETTER U +AB75; C; 13A5; # CHEROKEE SMALL LETTER V +AB76; C; 13A6; # CHEROKEE SMALL LETTER GA +AB77; C; 13A7; # CHEROKEE SMALL LETTER KA +AB78; C; 13A8; # CHEROKEE SMALL LETTER GE +AB79; C; 13A9; # CHEROKEE SMALL LETTER GI +AB7A; C; 13AA; # CHEROKEE SMALL LETTER GO +AB7B; C; 13AB; # CHEROKEE SMALL LETTER GU +AB7C; C; 13AC; # CHEROKEE SMALL LETTER GV +AB7D; C; 13AD; # CHEROKEE SMALL LETTER HA +AB7E; C; 13AE; # CHEROKEE SMALL LETTER HE +AB7F; C; 13AF; # CHEROKEE SMALL LETTER HI +AB80; C; 13B0; # CHEROKEE SMALL LETTER HO +AB81; C; 13B1; # CHEROKEE SMALL LETTER HU +AB82; C; 13B2; # CHEROKEE SMALL LETTER HV +AB83; C; 13B3; # CHEROKEE SMALL LETTER LA +AB84; C; 13B4; # CHEROKEE SMALL LETTER LE +AB85; C; 13B5; # CHEROKEE SMALL LETTER LI +AB86; C; 13B6; # CHEROKEE SMALL LETTER LO +AB87; C; 13B7; # CHEROKEE SMALL LETTER LU +AB88; C; 13B8; # CHEROKEE SMALL LETTER LV +AB89; C; 13B9; # CHEROKEE SMALL LETTER MA +AB8A; C; 13BA; # CHEROKEE SMALL LETTER ME +AB8B; C; 13BB; # CHEROKEE SMALL LETTER MI +AB8C; C; 13BC; # CHEROKEE SMALL LETTER MO +AB8D; C; 13BD; # CHEROKEE SMALL LETTER MU +AB8E; C; 13BE; # CHEROKEE SMALL LETTER NA +AB8F; C; 13BF; # CHEROKEE SMALL LETTER HNA +AB90; C; 13C0; # CHEROKEE SMALL LETTER NAH +AB91; C; 13C1; # CHEROKEE SMALL LETTER NE +AB92; C; 13C2; # CHEROKEE SMALL LETTER NI +AB93; C; 13C3; # CHEROKEE SMALL LETTER NO +AB94; C; 13C4; # CHEROKEE SMALL LETTER NU +AB95; C; 13C5; # CHEROKEE SMALL LETTER NV +AB96; C; 13C6; # CHEROKEE SMALL LETTER QUA +AB97; C; 13C7; # CHEROKEE SMALL LETTER QUE +AB98; C; 13C8; # CHEROKEE SMALL LETTER QUI +AB99; C; 13C9; # CHEROKEE SMALL LETTER QUO +AB9A; C; 13CA; # CHEROKEE SMALL LETTER QUU +AB9B; C; 13CB; # CHEROKEE SMALL LETTER QUV +AB9C; C; 13CC; # CHEROKEE SMALL LETTER SA +AB9D; C; 13CD; # CHEROKEE SMALL LETTER S +AB9E; C; 13CE; # CHEROKEE SMALL LETTER SE +AB9F; C; 13CF; # CHEROKEE SMALL LETTER SI +ABA0; C; 13D0; # CHEROKEE SMALL LETTER SO +ABA1; C; 13D1; # CHEROKEE SMALL LETTER SU +ABA2; C; 13D2; # CHEROKEE SMALL LETTER SV +ABA3; C; 13D3; # CHEROKEE SMALL LETTER DA +ABA4; C; 13D4; # CHEROKEE SMALL LETTER TA +ABA5; C; 13D5; # CHEROKEE SMALL LETTER DE +ABA6; C; 13D6; # CHEROKEE SMALL LETTER TE +ABA7; C; 13D7; # CHEROKEE SMALL LETTER DI +ABA8; C; 13D8; # CHEROKEE SMALL LETTER TI +ABA9; C; 13D9; # CHEROKEE SMALL LETTER DO +ABAA; C; 13DA; # CHEROKEE SMALL LETTER DU +ABAB; C; 13DB; # CHEROKEE SMALL LETTER DV +ABAC; C; 13DC; # CHEROKEE SMALL LETTER DLA +ABAD; C; 13DD; # CHEROKEE SMALL LETTER TLA +ABAE; C; 13DE; # CHEROKEE SMALL LETTER TLE +ABAF; C; 13DF; # CHEROKEE SMALL LETTER TLI +ABB0; C; 13E0; # CHEROKEE SMALL LETTER TLO +ABB1; C; 13E1; # CHEROKEE SMALL LETTER TLU +ABB2; C; 13E2; # CHEROKEE SMALL LETTER TLV +ABB3; C; 13E3; # CHEROKEE SMALL LETTER TSA +ABB4; C; 13E4; # CHEROKEE SMALL LETTER TSE +ABB5; C; 13E5; # CHEROKEE SMALL LETTER TSI +ABB6; C; 13E6; # CHEROKEE SMALL LETTER TSO +ABB7; C; 13E7; # CHEROKEE SMALL LETTER TSU +ABB8; C; 13E8; # CHEROKEE SMALL LETTER TSV +ABB9; C; 13E9; # CHEROKEE SMALL LETTER WA +ABBA; C; 13EA; # CHEROKEE SMALL LETTER WE +ABBB; C; 13EB; # CHEROKEE SMALL LETTER WI +ABBC; C; 13EC; # CHEROKEE SMALL LETTER WO +ABBD; C; 13ED; # CHEROKEE SMALL LETTER WU +ABBE; C; 13EE; # CHEROKEE SMALL LETTER WV +ABBF; C; 13EF; # CHEROKEE SMALL LETTER YA FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL @@ -1200,3 +1400,223 @@ FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10425; C; 1044D; # DESERET CAPITAL LETTER ENG 10426; C; 1044E; # DESERET CAPITAL LETTER OI 10427; C; 1044F; # DESERET CAPITAL LETTER EW +104B0; C; 104D8; # OSAGE CAPITAL LETTER A +104B1; C; 104D9; # OSAGE CAPITAL LETTER AI +104B2; C; 104DA; # OSAGE CAPITAL LETTER AIN +104B3; C; 104DB; # OSAGE CAPITAL LETTER AH +104B4; C; 104DC; # OSAGE CAPITAL LETTER BRA +104B5; C; 104DD; # OSAGE CAPITAL LETTER CHA +104B6; C; 104DE; # OSAGE CAPITAL LETTER EHCHA +104B7; C; 104DF; # OSAGE CAPITAL LETTER E +104B8; C; 104E0; # OSAGE CAPITAL LETTER EIN +104B9; C; 104E1; # OSAGE CAPITAL LETTER HA +104BA; C; 104E2; # OSAGE CAPITAL LETTER HYA +104BB; C; 104E3; # OSAGE CAPITAL LETTER I +104BC; C; 104E4; # OSAGE CAPITAL LETTER KA +104BD; C; 104E5; # OSAGE CAPITAL LETTER EHKA +104BE; C; 104E6; # OSAGE CAPITAL LETTER KYA +104BF; C; 104E7; # OSAGE CAPITAL LETTER LA +104C0; C; 104E8; # OSAGE CAPITAL LETTER MA +104C1; C; 104E9; # OSAGE CAPITAL LETTER NA +104C2; C; 104EA; # OSAGE CAPITAL LETTER O +104C3; C; 104EB; # OSAGE CAPITAL LETTER OIN +104C4; C; 104EC; # OSAGE CAPITAL LETTER PA +104C5; C; 104ED; # OSAGE CAPITAL LETTER EHPA +104C6; C; 104EE; # OSAGE CAPITAL LETTER SA +104C7; C; 104EF; # OSAGE CAPITAL LETTER SHA +104C8; C; 104F0; # OSAGE CAPITAL LETTER TA +104C9; C; 104F1; # OSAGE CAPITAL LETTER EHTA +104CA; C; 104F2; # OSAGE CAPITAL LETTER TSA +104CB; C; 104F3; # OSAGE CAPITAL LETTER EHTSA +104CC; C; 104F4; # OSAGE CAPITAL LETTER TSHA +104CD; C; 104F5; # OSAGE CAPITAL LETTER DHA +104CE; C; 104F6; # OSAGE CAPITAL LETTER U +104CF; C; 104F7; # OSAGE CAPITAL LETTER WA +104D0; C; 104F8; # OSAGE CAPITAL LETTER KHA +104D1; C; 104F9; # OSAGE CAPITAL LETTER GHA +104D2; C; 104FA; # OSAGE CAPITAL LETTER ZA +104D3; C; 104FB; # OSAGE CAPITAL LETTER ZHA +10570; C; 10597; # VITHKUQI CAPITAL LETTER A +10571; C; 10598; # VITHKUQI CAPITAL LETTER BBE +10572; C; 10599; # VITHKUQI CAPITAL LETTER BE +10573; C; 1059A; # VITHKUQI CAPITAL LETTER CE +10574; C; 1059B; # VITHKUQI CAPITAL LETTER CHE +10575; C; 1059C; # VITHKUQI CAPITAL LETTER DE +10576; C; 1059D; # VITHKUQI CAPITAL LETTER DHE +10577; C; 1059E; # VITHKUQI CAPITAL LETTER EI +10578; C; 1059F; # VITHKUQI CAPITAL LETTER E +10579; C; 105A0; # VITHKUQI CAPITAL LETTER FE +1057A; C; 105A1; # VITHKUQI CAPITAL LETTER GA +1057C; C; 105A3; # VITHKUQI CAPITAL LETTER HA +1057D; C; 105A4; # VITHKUQI CAPITAL LETTER HHA +1057E; C; 105A5; # VITHKUQI CAPITAL LETTER I +1057F; C; 105A6; # VITHKUQI CAPITAL LETTER IJE +10580; C; 105A7; # VITHKUQI CAPITAL LETTER JE +10581; C; 105A8; # VITHKUQI CAPITAL LETTER KA +10582; C; 105A9; # VITHKUQI CAPITAL LETTER LA +10583; C; 105AA; # VITHKUQI CAPITAL LETTER LLA +10584; C; 105AB; # VITHKUQI CAPITAL LETTER ME +10585; C; 105AC; # VITHKUQI CAPITAL LETTER NE +10586; C; 105AD; # VITHKUQI CAPITAL LETTER NJE +10587; C; 105AE; # VITHKUQI CAPITAL LETTER O +10588; C; 105AF; # VITHKUQI CAPITAL LETTER PE +10589; C; 105B0; # VITHKUQI CAPITAL LETTER QA +1058A; C; 105B1; # VITHKUQI CAPITAL LETTER RE +1058C; C; 105B3; # VITHKUQI CAPITAL LETTER SE +1058D; C; 105B4; # VITHKUQI CAPITAL LETTER SHE +1058E; C; 105B5; # VITHKUQI CAPITAL LETTER TE +1058F; C; 105B6; # VITHKUQI CAPITAL LETTER THE +10590; C; 105B7; # VITHKUQI CAPITAL LETTER U +10591; C; 105B8; # VITHKUQI CAPITAL LETTER VE +10592; C; 105B9; # VITHKUQI CAPITAL LETTER XE +10594; C; 105BB; # VITHKUQI CAPITAL LETTER Y +10595; C; 105BC; # VITHKUQI CAPITAL LETTER ZE +10C80; C; 10CC0; # OLD HUNGARIAN CAPITAL LETTER A +10C81; C; 10CC1; # OLD HUNGARIAN CAPITAL LETTER AA +10C82; C; 10CC2; # OLD HUNGARIAN CAPITAL LETTER EB +10C83; C; 10CC3; # OLD HUNGARIAN CAPITAL LETTER AMB +10C84; C; 10CC4; # OLD HUNGARIAN CAPITAL LETTER EC +10C85; C; 10CC5; # OLD HUNGARIAN CAPITAL LETTER ENC +10C86; C; 10CC6; # OLD HUNGARIAN CAPITAL LETTER ECS +10C87; C; 10CC7; # OLD HUNGARIAN CAPITAL LETTER ED +10C88; C; 10CC8; # OLD HUNGARIAN CAPITAL LETTER AND +10C89; C; 10CC9; # OLD HUNGARIAN CAPITAL LETTER E +10C8A; C; 10CCA; # OLD HUNGARIAN CAPITAL LETTER CLOSE E +10C8B; C; 10CCB; # OLD HUNGARIAN CAPITAL LETTER EE +10C8C; C; 10CCC; # OLD HUNGARIAN CAPITAL LETTER EF +10C8D; C; 10CCD; # OLD HUNGARIAN CAPITAL LETTER EG +10C8E; C; 10CCE; # OLD HUNGARIAN CAPITAL LETTER EGY +10C8F; C; 10CCF; # OLD HUNGARIAN CAPITAL LETTER EH +10C90; C; 10CD0; # OLD HUNGARIAN CAPITAL LETTER I +10C91; C; 10CD1; # OLD HUNGARIAN CAPITAL LETTER II +10C92; C; 10CD2; # OLD HUNGARIAN CAPITAL LETTER EJ +10C93; C; 10CD3; # OLD HUNGARIAN CAPITAL LETTER EK +10C94; C; 10CD4; # OLD HUNGARIAN CAPITAL LETTER AK +10C95; C; 10CD5; # OLD HUNGARIAN CAPITAL LETTER UNK +10C96; C; 10CD6; # OLD HUNGARIAN CAPITAL LETTER EL +10C97; C; 10CD7; # OLD HUNGARIAN CAPITAL LETTER ELY +10C98; C; 10CD8; # OLD HUNGARIAN CAPITAL LETTER EM +10C99; C; 10CD9; # OLD HUNGARIAN CAPITAL LETTER EN +10C9A; C; 10CDA; # OLD HUNGARIAN CAPITAL LETTER ENY +10C9B; C; 10CDB; # OLD HUNGARIAN CAPITAL LETTER O +10C9C; C; 10CDC; # OLD HUNGARIAN CAPITAL LETTER OO +10C9D; C; 10CDD; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG OE +10C9E; C; 10CDE; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA OE +10C9F; C; 10CDF; # OLD HUNGARIAN CAPITAL LETTER OEE +10CA0; C; 10CE0; # OLD HUNGARIAN CAPITAL LETTER EP +10CA1; C; 10CE1; # OLD HUNGARIAN CAPITAL LETTER EMP +10CA2; C; 10CE2; # OLD HUNGARIAN CAPITAL LETTER ER +10CA3; C; 10CE3; # OLD HUNGARIAN CAPITAL LETTER SHORT ER +10CA4; C; 10CE4; # OLD HUNGARIAN CAPITAL LETTER ES +10CA5; C; 10CE5; # OLD HUNGARIAN CAPITAL LETTER ESZ +10CA6; C; 10CE6; # OLD HUNGARIAN CAPITAL LETTER ET +10CA7; C; 10CE7; # OLD HUNGARIAN CAPITAL LETTER ENT +10CA8; C; 10CE8; # OLD HUNGARIAN CAPITAL LETTER ETY +10CA9; C; 10CE9; # OLD HUNGARIAN CAPITAL LETTER ECH +10CAA; C; 10CEA; # OLD HUNGARIAN CAPITAL LETTER U +10CAB; C; 10CEB; # OLD HUNGARIAN CAPITAL LETTER UU +10CAC; C; 10CEC; # OLD HUNGARIAN CAPITAL LETTER NIKOLSBURG UE +10CAD; C; 10CED; # OLD HUNGARIAN CAPITAL LETTER RUDIMENTA UE +10CAE; C; 10CEE; # OLD HUNGARIAN CAPITAL LETTER EV +10CAF; C; 10CEF; # OLD HUNGARIAN CAPITAL LETTER EZ +10CB0; C; 10CF0; # OLD HUNGARIAN CAPITAL LETTER EZS +10CB1; C; 10CF1; # OLD HUNGARIAN CAPITAL LETTER ENT-SHAPED SIGN +10CB2; C; 10CF2; # OLD HUNGARIAN CAPITAL LETTER US +118A0; C; 118C0; # WARANG CITI CAPITAL LETTER NGAA +118A1; C; 118C1; # WARANG CITI CAPITAL LETTER A +118A2; C; 118C2; # WARANG CITI CAPITAL LETTER WI +118A3; C; 118C3; # WARANG CITI CAPITAL LETTER YU +118A4; C; 118C4; # WARANG CITI CAPITAL LETTER YA +118A5; C; 118C5; # WARANG CITI CAPITAL LETTER YO +118A6; C; 118C6; # WARANG CITI CAPITAL LETTER II +118A7; C; 118C7; # WARANG CITI CAPITAL LETTER UU +118A8; C; 118C8; # WARANG CITI CAPITAL LETTER E +118A9; C; 118C9; # WARANG CITI CAPITAL LETTER O +118AA; C; 118CA; # WARANG CITI CAPITAL LETTER ANG +118AB; C; 118CB; # WARANG CITI CAPITAL LETTER GA +118AC; C; 118CC; # WARANG CITI CAPITAL LETTER KO +118AD; C; 118CD; # WARANG CITI CAPITAL LETTER ENY +118AE; C; 118CE; # WARANG CITI CAPITAL LETTER YUJ +118AF; C; 118CF; # WARANG CITI CAPITAL LETTER UC +118B0; C; 118D0; # WARANG CITI CAPITAL LETTER ENN +118B1; C; 118D1; # WARANG CITI CAPITAL LETTER ODD +118B2; C; 118D2; # WARANG CITI CAPITAL LETTER TTE +118B3; C; 118D3; # WARANG CITI CAPITAL LETTER NUNG +118B4; C; 118D4; # WARANG CITI CAPITAL LETTER DA +118B5; C; 118D5; # WARANG CITI CAPITAL LETTER AT +118B6; C; 118D6; # WARANG CITI CAPITAL LETTER AM +118B7; C; 118D7; # WARANG CITI CAPITAL LETTER BU +118B8; C; 118D8; # WARANG CITI CAPITAL LETTER PU +118B9; C; 118D9; # WARANG CITI CAPITAL LETTER HIYO +118BA; C; 118DA; # WARANG CITI CAPITAL LETTER HOLO +118BB; C; 118DB; # WARANG CITI CAPITAL LETTER HORR +118BC; C; 118DC; # WARANG CITI CAPITAL LETTER HAR +118BD; C; 118DD; # WARANG CITI CAPITAL LETTER SSUU +118BE; C; 118DE; # WARANG CITI CAPITAL LETTER SII +118BF; C; 118DF; # WARANG CITI CAPITAL LETTER VIYO +16E40; C; 16E60; # MEDEFAIDRIN CAPITAL LETTER M +16E41; C; 16E61; # MEDEFAIDRIN CAPITAL LETTER S +16E42; C; 16E62; # MEDEFAIDRIN CAPITAL LETTER V +16E43; C; 16E63; # MEDEFAIDRIN CAPITAL LETTER W +16E44; C; 16E64; # MEDEFAIDRIN CAPITAL LETTER ATIU +16E45; C; 16E65; # MEDEFAIDRIN CAPITAL LETTER Z +16E46; C; 16E66; # MEDEFAIDRIN CAPITAL LETTER KP +16E47; C; 16E67; # MEDEFAIDRIN CAPITAL LETTER P +16E48; C; 16E68; # MEDEFAIDRIN CAPITAL LETTER T +16E49; C; 16E69; # MEDEFAIDRIN CAPITAL LETTER G +16E4A; C; 16E6A; # MEDEFAIDRIN CAPITAL LETTER F +16E4B; C; 16E6B; # MEDEFAIDRIN CAPITAL LETTER I +16E4C; C; 16E6C; # MEDEFAIDRIN CAPITAL LETTER K +16E4D; C; 16E6D; # MEDEFAIDRIN CAPITAL LETTER A +16E4E; C; 16E6E; # MEDEFAIDRIN CAPITAL LETTER J +16E4F; C; 16E6F; # MEDEFAIDRIN CAPITAL LETTER E +16E50; C; 16E70; # MEDEFAIDRIN CAPITAL LETTER B +16E51; C; 16E71; # MEDEFAIDRIN CAPITAL LETTER C +16E52; C; 16E72; # MEDEFAIDRIN CAPITAL LETTER U +16E53; C; 16E73; # MEDEFAIDRIN CAPITAL LETTER YU +16E54; C; 16E74; # MEDEFAIDRIN CAPITAL LETTER L +16E55; C; 16E75; # MEDEFAIDRIN CAPITAL LETTER Q +16E56; C; 16E76; # MEDEFAIDRIN CAPITAL LETTER HP +16E57; C; 16E77; # MEDEFAIDRIN CAPITAL LETTER NY +16E58; C; 16E78; # MEDEFAIDRIN CAPITAL LETTER X +16E59; C; 16E79; # MEDEFAIDRIN CAPITAL LETTER D +16E5A; C; 16E7A; # MEDEFAIDRIN CAPITAL LETTER OE +16E5B; C; 16E7B; # MEDEFAIDRIN CAPITAL LETTER N +16E5C; C; 16E7C; # MEDEFAIDRIN CAPITAL LETTER R +16E5D; C; 16E7D; # MEDEFAIDRIN CAPITAL LETTER O +16E5E; C; 16E7E; # MEDEFAIDRIN CAPITAL LETTER AI +16E5F; C; 16E7F; # MEDEFAIDRIN CAPITAL LETTER Y +1E900; C; 1E922; # ADLAM CAPITAL LETTER ALIF +1E901; C; 1E923; # ADLAM CAPITAL LETTER DAALI +1E902; C; 1E924; # ADLAM CAPITAL LETTER LAAM +1E903; C; 1E925; # ADLAM CAPITAL LETTER MIIM +1E904; C; 1E926; # ADLAM CAPITAL LETTER BA +1E905; C; 1E927; # ADLAM CAPITAL LETTER SINNYIIYHE +1E906; C; 1E928; # ADLAM CAPITAL LETTER PE +1E907; C; 1E929; # ADLAM CAPITAL LETTER BHE +1E908; C; 1E92A; # ADLAM CAPITAL LETTER RA +1E909; C; 1E92B; # ADLAM CAPITAL LETTER E +1E90A; C; 1E92C; # ADLAM CAPITAL LETTER FA +1E90B; C; 1E92D; # ADLAM CAPITAL LETTER I +1E90C; C; 1E92E; # ADLAM CAPITAL LETTER O +1E90D; C; 1E92F; # ADLAM CAPITAL LETTER DHA +1E90E; C; 1E930; # ADLAM CAPITAL LETTER YHE +1E90F; C; 1E931; # ADLAM CAPITAL LETTER WAW +1E910; C; 1E932; # ADLAM CAPITAL LETTER NUN +1E911; C; 1E933; # ADLAM CAPITAL LETTER KAF +1E912; C; 1E934; # ADLAM CAPITAL LETTER YA +1E913; C; 1E935; # ADLAM CAPITAL LETTER U +1E914; C; 1E936; # ADLAM CAPITAL LETTER JIIM +1E915; C; 1E937; # ADLAM CAPITAL LETTER CHI +1E916; C; 1E938; # ADLAM CAPITAL LETTER HA +1E917; C; 1E939; # ADLAM CAPITAL LETTER QAAF +1E918; C; 1E93A; # ADLAM CAPITAL LETTER GA +1E919; C; 1E93B; # ADLAM CAPITAL LETTER NYA +1E91A; C; 1E93C; # ADLAM CAPITAL LETTER TU +1E91B; C; 1E93D; # ADLAM CAPITAL LETTER NHA +1E91C; C; 1E93E; # ADLAM CAPITAL LETTER VA +1E91D; C; 1E93F; # ADLAM CAPITAL LETTER KHA +1E91E; C; 1E940; # ADLAM CAPITAL LETTER GBE +1E91F; C; 1E941; # ADLAM CAPITAL LETTER ZAL +1E920; C; 1E942; # ADLAM CAPITAL LETTER KPO +1E921; C; 1E943; # ADLAM CAPITAL LETTER SHA \ No newline at end of file diff --git a/tools/generators/generate.cc b/tools/generators/generate.cc index 5facff4c..c499440f 100644 --- a/tools/generators/generate.cc +++ b/tools/generators/generate.cc @@ -12,25 +12,26 @@ #include using std::map; -using std::wstring; +using std::u32string; struct Node { - map< wchar_t, Node > nodes; - wchar_t tail; + map< char32_t, Node > nodes; + char32_t tail; - Node(): tail( 0 ) - {} + Node(): + tail( 0 ) + { + } }; void indent( FILE * outf, size_t steps ) { - for( unsigned x = steps; x--; ) + for ( unsigned x = steps; x--; ) fprintf( outf, " " ); } -void handleForest( FILE * outf, map< wchar_t, Node > const & forest, size_t - prev, size_t steps ) +void handleForest( FILE * outf, map< char32_t, Node > const & forest, size_t prev, size_t steps ) { indent( outf, steps ); fprintf( outf, "if ( size > %u )\n", prev ); @@ -44,9 +45,7 @@ void handleForest( FILE * outf, map< wchar_t, Node > const & forest, size_t indent( outf, steps + 1 ); fprintf( outf, "{\n" ); - for( map< wchar_t, Node >::const_iterator i = forest.begin(); - i != forest.end(); ++i ) - { + for ( map< char32_t, Node >::const_iterator i = forest.begin(); i != forest.end(); ++i ) { indent( outf, steps + 2 ); fprintf( outf, "case 0x%x:\n", i->first ); @@ -73,21 +72,19 @@ int main() // Case folding { FILE * inf = fopen( "CaseFolding.txt", "r" ); - - if ( !inf ) - { + + if ( !inf ) { fprintf( stderr, "Failed to open CaseFolding.txt\n" ); - + return 1; } - + char buf[ 4096 ]; - map< wchar_t, wstring > foldTable; - map< wchar_t, wchar_t > simpleFoldTable; + map< char32_t, u32string > foldTable; + map< char32_t, char32_t > simpleFoldTable; - while( fgets( buf, sizeof( buf ), inf ) ) - { + while ( fgets( buf, sizeof( buf ), inf ) ) { if ( *buf == '#' ) continue; // A comment @@ -97,69 +94,54 @@ int main() unsigned totalOut; - if ( sscanf( buf, "%lx; %c; %lx %lx %lx %lx;", &in, &type, - out, out + 1, out + 2, out + 3 ) == 6 ) - { - fprintf( stderr, "Four output chars ecountered in CaseFolding.txt, which we expected" - "the file didn't have, make changes into the program.\n" ); + if ( sscanf( buf, "%lx; %c; %lx %lx %lx %lx;", &in, &type, out, out + 1, out + 2, out + 3 ) == 6 ) { + fprintf( stderr, + "Four output chars ecountered in CaseFolding.txt, which we expected" + "the file didn't have, make changes into the program.\n" ); return 1; } - if ( sscanf( buf, "%lx; %c; %lx %lx %lx;", &in, &type, - out, out + 1, out + 2 ) == 5 ) + if ( sscanf( buf, "%lx; %c; %lx %lx %lx;", &in, &type, out, out + 1, out + 2 ) == 5 ) totalOut = 3; - else - if ( sscanf( buf, "%lx; %c; %lx %lx;", &in, &type, - out, out + 1 ) == 4 ) + else if ( sscanf( buf, "%lx; %c; %lx %lx;", &in, &type, out, out + 1 ) == 4 ) totalOut = 2; - else - if ( sscanf( buf, "%lx; %c; %lx;", &in, &type, - out ) == 3 ) + else if ( sscanf( buf, "%lx; %c; %lx;", &in, &type, out ) == 3 ) totalOut = 1; - else - { + else { fprintf( stderr, "Erroneous input in CaseFolding.txt: %s\n", buf ); return 1; } - switch( type ) - { + switch ( type ) { case 'C': - if ( totalOut != 1 ) - { + if ( totalOut != 1 ) { fprintf( stderr, "C-record has more than one output char in CaseFolding.txt: %s\n", buf ); return 1; } simpleFoldTable[ in ] = out[ 0 ]; // fall-through - case 'F': - { - wstring result( totalOut, 0 ); + case 'F': { + u32string result( totalOut, 0 ); - for( unsigned x = 0; x < totalOut; ++x ) - { + for ( unsigned x = 0; x < totalOut; ++x ) { result[ x ] = out[ x ]; } foldTable[ in ] = result; - } - break; - case 'S': - { - if ( totalOut != 1 ) - { + } break; + case 'S': { + if ( totalOut != 1 ) { fprintf( stderr, "S-record has more than one output char in CaseFolding.txt: %s\n", buf ); return 1; } simpleFoldTable[ in ] = out[ 0 ]; - } - break; + } break; case 'T': // Ignore special foldings - break; + break; default: @@ -172,10 +154,9 @@ int main() // Create an outfile - FILE * outf = fopen( "../inc_case_folding.hh", "w" ); + FILE * outf = fopen( "inc_case_folding.hh", "w" ); - if ( !outf ) - { + if ( !outf ) { fprintf( stderr, "Failed to create outfile\n" ); return 1; @@ -186,16 +167,13 @@ int main() fprintf( outf, "enum { foldCaseMaxOut = 3 };\n\n" ); fprintf( outf, "size_t foldCase( wchar in, wchar * out )\n{\n switch( in )\n {\n" ); - for( map< wchar_t, wstring >::const_iterator i = foldTable.begin(); - i != foldTable.end(); ++i ) - { + for ( map< char32_t, u32string >::const_iterator i = foldTable.begin(); i != foldTable.end(); ++i ) { if ( i->second.size() == 1 ) fprintf( outf, " case 0x%x: *out = 0x%x; return 1;\n", i->first, i->second[ 0 ] ); - else - { + else { fprintf( outf, " case 0x%x: ", i->first ); - for( unsigned x = 0; x < i->second.size(); ++x ) + for ( unsigned x = 0; x < i->second.size(); ++x ) fprintf( outf, "out[ %u ] = 0x%x; ", x, i->second[ x ] ); fprintf( outf, "return %u;\n", i->second.size() ); @@ -207,9 +185,8 @@ int main() fprintf( outf, "wchar foldCaseSimple( wchar in )\n{\n switch( in )\n {\n" ); - for( map< wchar_t, wchar_t >::const_iterator i = simpleFoldTable.begin(); - i != simpleFoldTable.end(); ++i ) - fprintf( outf, " case 0x%x: return 0x%x;\n", i->first, i->second ); + for ( map< char32_t, char32_t >::const_iterator i = simpleFoldTable.begin(); i != simpleFoldTable.end(); ++i ) + fprintf( outf, " case 0x%x: return 0x%x;\n", i->first, i->second ); fprintf( outf, " default: return in;\n" ); fprintf( outf, " }\n}\n" ); @@ -221,8 +198,7 @@ int main() { FILE * inf = fopen( "DiacriticFolding.txt", "r" ); - if ( !inf ) - { + if ( !inf ) { fprintf( stderr, "Failed to open DiacriticFolding.txt\n" ); return 1; @@ -230,10 +206,9 @@ int main() char buf[ 4096 ]; - map< wchar_t, Node > forest; + map< char32_t, Node > forest; - while( fgets( buf, sizeof( buf ), inf ) ) - { + while ( fgets( buf, sizeof( buf ), inf ) ) { if ( *buf == '#' || *buf == '\n' ) continue; // A comment or a whiteline @@ -241,56 +216,49 @@ int main() unsigned totalIn; - if ( sscanf( buf, "%lx %lx %lx %lx; %lx", in, in + 1, in + 2, in + 3, &out ) == 5 ) - { - fprintf( stderr, "Four input chars ecountered in DiacriticFolding.txt, which we expected" - "the file didn't have, make changes into the program.\n" ); + if ( sscanf( buf, "%lx %lx %lx %lx; %lx", in, in + 1, in + 2, in + 3, &out ) == 5 ) { + fprintf( stderr, + "Four input chars ecountered in DiacriticFolding.txt, which we expected" + "the file didn't have, make changes into the program.\n" ); return 1; } - else - if ( sscanf( buf, "%lx %lx %lx; %lx", in, in + 1, in + 2, &out ) == 4 ) + else if ( sscanf( buf, "%lx %lx %lx; %lx", in, in + 1, in + 2, &out ) == 4 ) totalIn = 3; - else - if ( sscanf( buf, "%lx %lx; %lx", in, in + 1, &out ) == 3 ) + else if ( sscanf( buf, "%lx %lx; %lx", in, in + 1, &out ) == 3 ) totalIn = 2; - else - if ( sscanf( buf, "%lx; %lx", in, &out ) == 2 ) + else if ( sscanf( buf, "%lx; %lx", in, &out ) == 2 ) totalIn = 1; - else - { + else { fprintf( stderr, "Erroneous input in DiacriticFolding.txt: %s\n", buf ); return 1; } - map< wchar_t, Node > * cur = &forest; + map< char32_t, Node > * cur = &forest; - for( unsigned x = 0; x < totalIn - 1; ++x ) - { + for ( unsigned x = 0; x < totalIn - 1; ++x ) { //printf( "%x ", in[ x ] ); - cur = &( (*cur)[ in[ x ] ].nodes ); + cur = &( ( *cur )[ in[ x ] ].nodes ); } //printf( "%x\n", in[ totalIn - 1 ] ); - if ( (*cur)[ in[ totalIn - 1 ] ].tail ) - { + if ( ( *cur )[ in[ totalIn - 1 ] ].tail ) { fprintf( stderr, "Ambiguity in DiacriticFolding.txt\n" ); return 1; } - (*cur)[ in[ totalIn - 1 ] ].tail = out; + ( *cur )[ in[ totalIn - 1 ] ].tail = out; } fclose( inf ); - // Create an outfile + // Create an outfile FILE * outf = fopen( "../inc_diacritic_folding.hh", "w" ); - if ( !outf ) - { + if ( !outf ) { fprintf( stderr, "Failed to create outfile\n" ); return 1; @@ -303,15 +271,16 @@ int main() handleForest( outf, forest, 0, 1 ); - fprintf( outf, " if ( size )\n" - " {\n" - " consumed = 1; return *in;\n" - " }\n" - " consumed = 0; return 0;\n" - "}\n" ); + fprintf( outf, + " if ( size )\n" + " {\n" + " consumed = 1; return *in;\n" + " }\n" + " consumed = 0; return 0;\n" + "}\n" ); fclose( outf ); - } + } return 0; } diff --git a/tools/generators/make_flags_qrc.sh b/tools/generators/make_flags_qrc.sh deleted file mode 100755 index 01e28844..00000000 --- a/tools/generators/make_flags_qrc.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -# This script generates ../flags.qrc based on the ../flags dir contents - -cd .. - -OUT=flags.qrc - -echo "" > $OUT -echo " " >> $OUT - -for x in flags/*.png; do - echo " $x" >> $OUT -done - -echo " " >> $OUT -echo "" >> $OUT