diff options
author | Anton Samokhvalov <pg83@yandex.ru> | 2022-02-10 16:45:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:15 +0300 |
commit | 72cb13b4aff9bc9cf22e49251bc8fd143f82538f (patch) | |
tree | da2c34829458c7d4e74bdfbdf85dff449e9e7fb8 /util/charset | |
parent | 778e51ba091dc39e7b7fcab2b9cf4dbedfb6f2b5 (diff) | |
download | ydb-72cb13b4aff9bc9cf22e49251bc8fd143f82538f.tar.gz |
Restoring authorship annotation for Anton Samokhvalov <pg83@yandex.ru>. Commit 1 of 2.
Diffstat (limited to 'util/charset')
-rw-r--r-- | util/charset/benchmark/to_lower/main.cpp | 52 | ||||
-rw-r--r-- | util/charset/benchmark/utf8_to_wide/main.cpp | 64 | ||||
-rw-r--r-- | util/charset/generated/unidata.cpp | 2244 | ||||
-rw-r--r-- | util/charset/recode_result.cpp | 2 | ||||
-rw-r--r-- | util/charset/recode_result.h | 2 | ||||
-rw-r--r-- | util/charset/unicode_table.cpp | 2 | ||||
-rw-r--r-- | util/charset/unicode_table.h | 6 | ||||
-rw-r--r-- | util/charset/unidata.cpp | 2 | ||||
-rw-r--r-- | util/charset/unidata.h | 190 | ||||
-rw-r--r-- | util/charset/ut/ya.make | 4 | ||||
-rw-r--r-- | util/charset/utf8.cpp | 2 | ||||
-rw-r--r-- | util/charset/utf8.h | 34 | ||||
-rw-r--r-- | util/charset/wide.cpp | 60 | ||||
-rw-r--r-- | util/charset/wide.h | 72 | ||||
-rw-r--r-- | util/charset/wide_sse41.cpp | 48 | ||||
-rw-r--r-- | util/charset/wide_ut.cpp | 166 | ||||
-rw-r--r-- | util/charset/ya.make | 16 |
17 files changed, 1483 insertions, 1483 deletions
diff --git a/util/charset/benchmark/to_lower/main.cpp b/util/charset/benchmark/to_lower/main.cpp index e95fdc2371..82ee1747b2 100644 --- a/util/charset/benchmark/to_lower/main.cpp +++ b/util/charset/benchmark/to_lower/main.cpp @@ -20,34 +20,34 @@ static const auto LongRussian = UTF8ToWide( "Большая часть таблицы занята китайско-японскими иероглифами и своеобразными корейскими" "буквами. В Юникоде 10.0 в этой плоскости представлены следующие блоки"); -#define DEFINE_INPLACE_BENCH(s) \ - Y_CPU_BENCHMARK(s##CopyDetach, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - auto copy = s; \ - NBench::Escape(copy.Detach()); \ - NBench::Clobber(); \ - } \ - } \ - \ - Y_CPU_BENCHMARK(s##Inplace, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - auto copy = s; \ - ToLower(copy); \ - NBench::Escape(copy.data()); \ - NBench::Clobber(); \ - } \ +#define DEFINE_INPLACE_BENCH(s) \ + Y_CPU_BENCHMARK(s##CopyDetach, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + auto copy = s; \ + NBench::Escape(copy.Detach()); \ + NBench::Clobber(); \ + } \ + } \ + \ + Y_CPU_BENCHMARK(s##Inplace, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + auto copy = s; \ + ToLower(copy); \ + NBench::Escape(copy.data()); \ + NBench::Clobber(); \ + } \ } -#define DEFINE_RET_BENCH(s) \ - Y_CPU_BENCHMARK(s##Ret, iface) { \ - for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ - NBench::Clobber(); \ - const auto res = ToLowerRet(TWtringBuf{s}); \ - NBench::Escape(res.data()); \ - NBench::Clobber(); \ - } \ +#define DEFINE_RET_BENCH(s) \ + Y_CPU_BENCHMARK(s##Ret, iface) { \ + for (size_t i = 0, iEnd = iface.Iterations(); i < iEnd; ++i) { \ + NBench::Clobber(); \ + const auto res = ToLowerRet(TWtringBuf{s}); \ + NBench::Escape(res.data()); \ + NBench::Clobber(); \ + } \ } DEFINE_INPLACE_BENCH(ShortAscii) diff --git a/util/charset/benchmark/utf8_to_wide/main.cpp b/util/charset/benchmark/utf8_to_wide/main.cpp index 09fa567fe5..d1e79965ac 100644 --- a/util/charset/benchmark/utf8_to_wide/main.cpp +++ b/util/charset/benchmark/utf8_to_wide/main.cpp @@ -46,39 +46,39 @@ namespace { } #ifdef _sse2_ - #define IS_ASCII_BENCHMARK(length) \ - Y_CPU_BENCHMARK(IsStringASCII##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISSE##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISSE(reinterpret_cast<const unsigned char*>(data.begin()), reinterpret_cast<const unsigned char*>(data.end()))); \ - } \ - } + #define IS_ASCII_BENCHMARK(length) \ + Y_CPU_BENCHMARK(IsStringASCII##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISSE##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISSE(reinterpret_cast<const unsigned char*>(data.begin()), reinterpret_cast<const unsigned char*>(data.end()))); \ + } \ + } #else //no sse - #define IS_ASCII_BENCHMARK(length) \ - Y_CPU_BENCHMARK(IsStringASCIIScalar##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ - } \ - } \ - Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ - const auto& data = *Singleton<RAS##length>(); \ - for (size_t x = 0; x < iface.Iterations(); ++x) { \ - Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ - } \ - } + #define IS_ASCII_BENCHMARK(length) \ + Y_CPU_BENCHMARK(IsStringASCIIScalar##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCII(data.begin(), data.end())); \ + } \ + } \ + Y_CPU_BENCHMARK(IsStringASCIISlow##length, iface) { \ + const auto& data = *Singleton<RAS##length>(); \ + for (size_t x = 0; x < iface.Iterations(); ++x) { \ + Y_DO_NOT_OPTIMIZE_AWAY(::NDetail::DoIsStringASCIISlow(data.begin(), data.end())); \ + } \ + } #endif IS_ASCII_BENCHMARK(1); diff --git a/util/charset/generated/unidata.cpp b/util/charset/generated/unidata.cpp index 6f5adbbc0a..929b900981 100644 --- a/util/charset/generated/unidata.cpp +++ b/util/charset/generated/unidata.cpp @@ -1,1589 +1,1589 @@ #include <util/charset/unidata.h> -namespace { namespace NUnidataTableGenerated { +namespace { namespace NUnidataTableGenerated { using TV = const NUnicode::NPrivate::TUnidataTable::TStored; - static const TV V[] = { -#undef V0 -#define V0 (*(V + 0)) - {0xF018, 0, 0, 0, 0}, -#undef V1 -#define V1 (*(V + 1)) - {0x9F019, 0, 0, 0, 0}, -#undef V2 -#define V2 (*(V + 2)) - {0x8F019, 0, 0, 0, 0}, -#undef V3 -#define V3 (*(V + 3)) - {0x8F01A, 0, 0, 0, 0}, -#undef V4 -#define V4 (*(V + 4)) - {0x9F01A, 0, 0, 0, 0}, -#undef V5 -#define V5 (*(V + 5)) - {0xAF014, 0, 0, 0, 0}, -#undef V6 -#define V6 (*(V + 6)) - {0xBF02C, 0, 0, 0, 0}, -#undef V7 -#define V7 (*(V + 7)) - {0xBF02B, 0, 0, 0, 0}, -#undef V8 -#define V8 (*(V + 8)) - {0x5F02A, 0, 0, 0, 0}, -#undef V9 -#define V9 (*(V + 9)) - {0x5F031, 0, 0, 0, 0}, -#undef V10 -#define V10 (*(V + 10)) - {0xBF02A, 0, 0, 0, 0}, -#undef V11 -#define V11 (*(V + 11)) - {0xBF038, 0, 0, 0, 0}, -#undef V12 -#define V12 (*(V + 12)) - {0xBF023, 0, 0, 0, 0}, -#undef V13 -#define V13 (*(V + 13)) - {0xBF025, 0, 0, 0, 0}, -#undef V14 -#define V14 (*(V + 14)) - {0x4F02F, 0, 0, 0, 0}, -#undef V15 -#define V15 (*(V + 15)) - {0x7F02C, 0, 0, 0, 0}, -#undef V16 -#define V16 (*(V + 16)) - {0x4F022, 0, 0, 0, 0}, -#undef V17 -#define V17 (*(V + 17)) - {0x7F02A, 0, 0, 0, 0}, -#undef V18 -#define V18 (*(V + 18)) - {0x3F0D0, 0, 0, 0, 0}, -#undef V19 -#define V19 (*(V + 19)) - {0x43F0D0, 0, 0, 0, 0}, -#undef V20 -#define V20 (*(V + 20)) - {0x83F0D0, 0, 0, 0, 0}, -#undef V21 -#define V21 (*(V + 21)) - {0xC3F0D0, 0, 0, 0, 0}, -#undef V22 -#define V22 (*(V + 22)) - {0x103F0D0, 0, 0, 0, 0}, -#undef V23 -#define V23 (*(V + 23)) - {0x143F0D0, 0, 0, 0, 0}, -#undef V24 -#define V24 (*(V + 24)) - {0x183F0D0, 0, 0, 0, 0}, -#undef V25 -#define V25 (*(V + 25)) - {0x1C3F0D0, 0, 0, 0, 0}, -#undef V26 -#define V26 (*(V + 26)) - {0x203F0D0, 0, 0, 0, 0}, -#undef V27 -#define V27 (*(V + 27)) - {0x243F0D0, 0, 0, 0, 0}, -#undef V28 -#define V28 (*(V + 28)) - {0xBF02F, 0, 0, 0, 0}, -#undef V29 -#define V29 (*(V + 29)) - {0x1F041, 32, 0, 0, 0}, -#undef V30 -#define V30 (*(V + 30)) - {0x1F001, 32, 0, 0, 0}, -#undef V31 -#define V31 (*(V + 31)) - {0xBF032, 0, 0, 0, 0}, -#undef V32 -#define V32 (*(V + 32)) - {0xBF029, 0, 0, 0, 0}, -#undef V33 -#define V33 (*(V + 33)) - {0x1F042, 0, -32, -32, 0}, -#undef V34 -#define V34 (*(V + 34)) - {0x1F002, 0, -32, -32, 0}, -#undef V35 -#define V35 (*(V + 35)) - {0x8F018, 0, 0, 0, 0}, -#undef V36 -#define V36 (*(V + 36)) - {0x73514, 0, 0, 0, 0}, -#undef V37 -#define V37 (*(V + 37)) - {0xBF033, 0, 0, 0, 0}, -#undef V38 -#define V38 (*(V + 38)) - {0xB3432, 0, 0, 0, 0}, -#undef V39 -#define V39 (*(V + 39)) + static const TV V[] = { +#undef V0 +#define V0 (*(V + 0)) + {0xF018, 0, 0, 0, 0}, +#undef V1 +#define V1 (*(V + 1)) + {0x9F019, 0, 0, 0, 0}, +#undef V2 +#define V2 (*(V + 2)) + {0x8F019, 0, 0, 0, 0}, +#undef V3 +#define V3 (*(V + 3)) + {0x8F01A, 0, 0, 0, 0}, +#undef V4 +#define V4 (*(V + 4)) + {0x9F01A, 0, 0, 0, 0}, +#undef V5 +#define V5 (*(V + 5)) + {0xAF014, 0, 0, 0, 0}, +#undef V6 +#define V6 (*(V + 6)) + {0xBF02C, 0, 0, 0, 0}, +#undef V7 +#define V7 (*(V + 7)) + {0xBF02B, 0, 0, 0, 0}, +#undef V8 +#define V8 (*(V + 8)) + {0x5F02A, 0, 0, 0, 0}, +#undef V9 +#define V9 (*(V + 9)) + {0x5F031, 0, 0, 0, 0}, +#undef V10 +#define V10 (*(V + 10)) + {0xBF02A, 0, 0, 0, 0}, +#undef V11 +#define V11 (*(V + 11)) + {0xBF038, 0, 0, 0, 0}, +#undef V12 +#define V12 (*(V + 12)) + {0xBF023, 0, 0, 0, 0}, +#undef V13 +#define V13 (*(V + 13)) + {0xBF025, 0, 0, 0, 0}, +#undef V14 +#define V14 (*(V + 14)) + {0x4F02F, 0, 0, 0, 0}, +#undef V15 +#define V15 (*(V + 15)) + {0x7F02C, 0, 0, 0, 0}, +#undef V16 +#define V16 (*(V + 16)) + {0x4F022, 0, 0, 0, 0}, +#undef V17 +#define V17 (*(V + 17)) + {0x7F02A, 0, 0, 0, 0}, +#undef V18 +#define V18 (*(V + 18)) + {0x3F0D0, 0, 0, 0, 0}, +#undef V19 +#define V19 (*(V + 19)) + {0x43F0D0, 0, 0, 0, 0}, +#undef V20 +#define V20 (*(V + 20)) + {0x83F0D0, 0, 0, 0, 0}, +#undef V21 +#define V21 (*(V + 21)) + {0xC3F0D0, 0, 0, 0, 0}, +#undef V22 +#define V22 (*(V + 22)) + {0x103F0D0, 0, 0, 0, 0}, +#undef V23 +#define V23 (*(V + 23)) + {0x143F0D0, 0, 0, 0, 0}, +#undef V24 +#define V24 (*(V + 24)) + {0x183F0D0, 0, 0, 0, 0}, +#undef V25 +#define V25 (*(V + 25)) + {0x1C3F0D0, 0, 0, 0, 0}, +#undef V26 +#define V26 (*(V + 26)) + {0x203F0D0, 0, 0, 0, 0}, +#undef V27 +#define V27 (*(V + 27)) + {0x243F0D0, 0, 0, 0, 0}, +#undef V28 +#define V28 (*(V + 28)) + {0xBF02F, 0, 0, 0, 0}, +#undef V29 +#define V29 (*(V + 29)) + {0x1F041, 32, 0, 0, 0}, +#undef V30 +#define V30 (*(V + 30)) + {0x1F001, 32, 0, 0, 0}, +#undef V31 +#define V31 (*(V + 31)) + {0xBF032, 0, 0, 0, 0}, +#undef V32 +#define V32 (*(V + 32)) + {0xBF029, 0, 0, 0, 0}, +#undef V33 +#define V33 (*(V + 33)) + {0x1F042, 0, -32, -32, 0}, +#undef V34 +#define V34 (*(V + 34)) + {0x1F002, 0, -32, -32, 0}, +#undef V35 +#define V35 (*(V + 35)) + {0x8F018, 0, 0, 0, 0}, +#undef V36 +#define V36 (*(V + 36)) + {0x73514, 0, 0, 0, 0}, +#undef V37 +#define V37 (*(V + 37)) + {0xBF033, 0, 0, 0, 0}, +#undef V38 +#define V38 (*(V + 38)) + {0xB3432, 0, 0, 0, 0}, +#undef V39 +#define V39 (*(V + 39)) {0x13406, 0, 0, 0, 0}, -#undef V40 -#define V40 (*(V + 40)) - {0xBF027, 0, 0, 0, 0}, -#undef V41 -#define V41 (*(V + 41)) - {0xF01B, 0, 0, 0, 0}, -#undef V42 -#define V42 (*(V + 42)) - {0x5F033, 0, 0, 0, 0}, -#undef V43 -#define V43 (*(V + 43)) - {0x5F02F, 0, 0, 0, 0}, -#undef V44 -#define V44 (*(V + 44)) - {0x833493, 0, 0, 0, 0}, -#undef V45 -#define V45 (*(V + 45)) - {0xC33493, 0, 0, 0, 0}, -#undef V46 -#define V46 (*(V + 46)) - {0x13402, 0, 743, 743, 0}, -#undef V47 -#define V47 (*(V + 47)) - {0xBF02D, 0, 0, 0, 0}, -#undef V48 -#define V48 (*(V + 48)) - {0x433493, 0, 0, 0, 0}, -#undef V49 -#define V49 (*(V + 49)) - {0xBF028, 0, 0, 0, 0}, -#undef V50 -#define V50 (*(V + 50)) - {0xB3413, 0, 0, 0, 0}, -#undef V51 -#define V51 (*(V + 51)) - {0x1A801, 32, 0, 0, 0}, -#undef V52 -#define V52 (*(V + 52)) - {0x1F002, 0, 0, 0, 0}, -#undef V53 -#define V53 (*(V + 53)) - {0x1A802, 0, -32, -32, 0}, -#undef V54 -#define V54 (*(V + 54)) - {0x1A802, 0, 121, 121, 0}, -#undef V55 -#define V55 (*(V + 55)) - {0x1A801, 1, 0, 0, 0}, -#undef V56 -#define V56 (*(V + 56)) - {0x1A802, 0, -1, -1, 0}, -#undef V57 -#define V57 (*(V + 57)) - {0x1F001, 1, 0, 0, 0}, -#undef V58 -#define V58 (*(V + 58)) - {0x1F002, 0, -1, -1, 0}, -#undef V59 -#define V59 (*(V + 59)) - {0x1A801, -199, 0, 0, 0}, -#undef V60 -#define V60 (*(V + 60)) - {0x1F002, 0, -232, -232, 0}, -#undef V61 -#define V61 (*(V + 61)) - {0x13401, 1, 0, 0, 0}, -#undef V62 -#define V62 (*(V + 62)) - {0x13402, 0, -1, -1, 0}, -#undef V63 -#define V63 (*(V + 63)) +#undef V40 +#define V40 (*(V + 40)) + {0xBF027, 0, 0, 0, 0}, +#undef V41 +#define V41 (*(V + 41)) + {0xF01B, 0, 0, 0, 0}, +#undef V42 +#define V42 (*(V + 42)) + {0x5F033, 0, 0, 0, 0}, +#undef V43 +#define V43 (*(V + 43)) + {0x5F02F, 0, 0, 0, 0}, +#undef V44 +#define V44 (*(V + 44)) + {0x833493, 0, 0, 0, 0}, +#undef V45 +#define V45 (*(V + 45)) + {0xC33493, 0, 0, 0, 0}, +#undef V46 +#define V46 (*(V + 46)) + {0x13402, 0, 743, 743, 0}, +#undef V47 +#define V47 (*(V + 47)) + {0xBF02D, 0, 0, 0, 0}, +#undef V48 +#define V48 (*(V + 48)) + {0x433493, 0, 0, 0, 0}, +#undef V49 +#define V49 (*(V + 49)) + {0xBF028, 0, 0, 0, 0}, +#undef V50 +#define V50 (*(V + 50)) + {0xB3413, 0, 0, 0, 0}, +#undef V51 +#define V51 (*(V + 51)) + {0x1A801, 32, 0, 0, 0}, +#undef V52 +#define V52 (*(V + 52)) + {0x1F002, 0, 0, 0, 0}, +#undef V53 +#define V53 (*(V + 53)) + {0x1A802, 0, -32, -32, 0}, +#undef V54 +#define V54 (*(V + 54)) + {0x1A802, 0, 121, 121, 0}, +#undef V55 +#define V55 (*(V + 55)) + {0x1A801, 1, 0, 0, 0}, +#undef V56 +#define V56 (*(V + 56)) + {0x1A802, 0, -1, -1, 0}, +#undef V57 +#define V57 (*(V + 57)) + {0x1F001, 1, 0, 0, 0}, +#undef V58 +#define V58 (*(V + 58)) + {0x1F002, 0, -1, -1, 0}, +#undef V59 +#define V59 (*(V + 59)) + {0x1A801, -199, 0, 0, 0}, +#undef V60 +#define V60 (*(V + 60)) + {0x1F002, 0, -232, -232, 0}, +#undef V61 +#define V61 (*(V + 61)) + {0x13401, 1, 0, 0, 0}, +#undef V62 +#define V62 (*(V + 62)) + {0x13402, 0, -1, -1, 0}, +#undef V63 +#define V63 (*(V + 63)) {0x13402, 0, 0, 0, 0}, -#undef V64 -#define V64 (*(V + 64)) +#undef V64 +#define V64 (*(V + 64)) {0x1A801, -121, 0, 0, 0}, -#undef V65 -#define V65 (*(V + 65)) +#undef V65 +#define V65 (*(V + 65)) {0x13402, 0, -300, -300, 0}, -#undef V66 -#define V66 (*(V + 66)) +#undef V66 +#define V66 (*(V + 66)) {0x1F002, 0, 195, 195, 0}, -#undef V67 -#define V67 (*(V + 67)) +#undef V67 +#define V67 (*(V + 67)) {0x1F001, 210, 0, 0, 0}, -#undef V68 -#define V68 (*(V + 68)) +#undef V68 +#define V68 (*(V + 68)) {0x1F001, 206, 0, 0, 0}, -#undef V69 -#define V69 (*(V + 69)) +#undef V69 +#define V69 (*(V + 69)) {0x1F001, 205, 0, 0, 0}, -#undef V70 -#define V70 (*(V + 70)) +#undef V70 +#define V70 (*(V + 70)) {0x1F001, 79, 0, 0, 0}, -#undef V71 -#define V71 (*(V + 71)) +#undef V71 +#define V71 (*(V + 71)) {0x1F001, 202, 0, 0, 0}, -#undef V72 -#define V72 (*(V + 72)) +#undef V72 +#define V72 (*(V + 72)) {0x1F001, 203, 0, 0, 0}, -#undef V73 -#define V73 (*(V + 73)) +#undef V73 +#define V73 (*(V + 73)) {0x1F001, 207, 0, 0, 0}, -#undef V74 -#define V74 (*(V + 74)) +#undef V74 +#define V74 (*(V + 74)) {0x1F002, 0, 97, 97, 0}, -#undef V75 -#define V75 (*(V + 75)) +#undef V75 +#define V75 (*(V + 75)) {0x1F001, 211, 0, 0, 0}, -#undef V76 -#define V76 (*(V + 76)) +#undef V76 +#define V76 (*(V + 76)) {0x1F001, 209, 0, 0, 0}, -#undef V77 -#define V77 (*(V + 77)) +#undef V77 +#define V77 (*(V + 77)) {0x1F002, 0, 163, 163, 0}, -#undef V78 -#define V78 (*(V + 78)) +#undef V78 +#define V78 (*(V + 78)) {0x1F001, 213, 0, 0, 0}, -#undef V79 -#define V79 (*(V + 79)) +#undef V79 +#define V79 (*(V + 79)) {0x1F002, 0, 130, 130, 0}, -#undef V80 -#define V80 (*(V + 80)) +#undef V80 +#define V80 (*(V + 80)) {0x1F001, 214, 0, 0, 0}, -#undef V81 -#define V81 (*(V + 81)) +#undef V81 +#define V81 (*(V + 81)) {0x1F001, 218, 0, 0, 0}, -#undef V82 -#define V82 (*(V + 82)) +#undef V82 +#define V82 (*(V + 82)) {0x1F001, 217, 0, 0, 0}, -#undef V83 -#define V83 (*(V + 83)) +#undef V83 +#define V83 (*(V + 83)) {0x1F001, 219, 0, 0, 0}, -#undef V84 -#define V84 (*(V + 84)) +#undef V84 +#define V84 (*(V + 84)) {0x1F006, 0, 0, 0, 0}, -#undef V85 -#define V85 (*(V + 85)) +#undef V85 +#define V85 (*(V + 85)) {0x1F002, 0, 56, 56, 0}, -#undef V86 -#define V86 (*(V + 86)) +#undef V86 +#define V86 (*(V + 86)) {0x13401, 2, 0, 1, 0}, -#undef V87 -#define V87 (*(V + 87)) +#undef V87 +#define V87 (*(V + 87)) {0x13403, 1, -1, 0, 0}, -#undef V88 -#define V88 (*(V + 88)) +#undef V88 +#define V88 (*(V + 88)) {0x13402, 0, -2, -1, 0}, -#undef V89 -#define V89 (*(V + 89)) +#undef V89 +#define V89 (*(V + 89)) {0x1F002, 0, -79, -79, 0}, -#undef V90 -#define V90 (*(V + 90)) +#undef V90 +#define V90 (*(V + 90)) {0x1A802, 0, 0, 0, 0}, -#undef V91 -#define V91 (*(V + 91)) +#undef V91 +#define V91 (*(V + 91)) {0x1F001, -97, 0, 0, 0}, -#undef V92 -#define V92 (*(V + 92)) +#undef V92 +#define V92 (*(V + 92)) {0x1F001, -56, 0, 0, 0}, -#undef V93 -#define V93 (*(V + 93)) +#undef V93 +#define V93 (*(V + 93)) {0x1F001, -130, 0, 0, 0}, -#undef V94 -#define V94 (*(V + 94)) +#undef V94 +#define V94 (*(V + 94)) {0x1F001, 10795, 0, 0, 0}, -#undef V95 -#define V95 (*(V + 95)) +#undef V95 +#define V95 (*(V + 95)) {0x1F001, -163, 0, 0, 0}, -#undef V96 -#define V96 (*(V + 96)) +#undef V96 +#define V96 (*(V + 96)) {0x1F001, 10792, 0, 0, 0}, -#undef V97 -#define V97 (*(V + 97)) +#undef V97 +#define V97 (*(V + 97)) {0x1F002, 0, 10815, 10815, 0}, -#undef V98 -#define V98 (*(V + 98)) +#undef V98 +#define V98 (*(V + 98)) {0x1F001, -195, 0, 0, 0}, -#undef V99 -#define V99 (*(V + 99)) +#undef V99 +#define V99 (*(V + 99)) {0x1F001, 69, 0, 0, 0}, -#undef V100 -#define V100 (*(V + 100)) +#undef V100 +#define V100 (*(V + 100)) {0x1F001, 71, 0, 0, 0}, -#undef V101 -#define V101 (*(V + 101)) +#undef V101 +#define V101 (*(V + 101)) {0x1F002, 0, 10783, 10783, 0}, -#undef V102 -#define V102 (*(V + 102)) +#undef V102 +#define V102 (*(V + 102)) {0x1F002, 0, 10780, 10780, 0}, -#undef V103 -#define V103 (*(V + 103)) +#undef V103 +#define V103 (*(V + 103)) {0x1F002, 0, 10782, 10782, 0}, -#undef V104 -#define V104 (*(V + 104)) +#undef V104 +#define V104 (*(V + 104)) {0x1F002, 0, -210, -210, 0}, -#undef V105 -#define V105 (*(V + 105)) +#undef V105 +#define V105 (*(V + 105)) {0x1F002, 0, -206, -206, 0}, -#undef V106 -#define V106 (*(V + 106)) +#undef V106 +#define V106 (*(V + 106)) {0x1F002, 0, -205, -205, 0}, -#undef V107 -#define V107 (*(V + 107)) +#undef V107 +#define V107 (*(V + 107)) {0x1F002, 0, -202, -202, 0}, -#undef V108 -#define V108 (*(V + 108)) +#undef V108 +#define V108 (*(V + 108)) {0x1F002, 0, -203, -203, 0}, -#undef V109 -#define V109 (*(V + 109)) +#undef V109 +#define V109 (*(V + 109)) {0x1F002, 0, 42319, 42319, 0}, -#undef V110 -#define V110 (*(V + 110)) +#undef V110 +#define V110 (*(V + 110)) {0x1F002, 0, 42315, 42315, 0}, -#undef V111 -#define V111 (*(V + 111)) +#undef V111 +#define V111 (*(V + 111)) {0x1F002, 0, -207, -207, 0}, -#undef V112 -#define V112 (*(V + 112)) +#undef V112 +#define V112 (*(V + 112)) {0x1F002, 0, 42280, 42280, 0}, -#undef V113 -#define V113 (*(V + 113)) +#undef V113 +#define V113 (*(V + 113)) {0x1F002, 0, 42308, 42308, 0}, -#undef V114 -#define V114 (*(V + 114)) +#undef V114 +#define V114 (*(V + 114)) {0x1F002, 0, -209, -209, 0}, -#undef V115 -#define V115 (*(V + 115)) +#undef V115 +#define V115 (*(V + 115)) {0x1F002, 0, -211, -211, 0}, -#undef V116 -#define V116 (*(V + 116)) +#undef V116 +#define V116 (*(V + 116)) {0x1F002, 0, 10743, 10743, 0}, -#undef V117 -#define V117 (*(V + 117)) +#undef V117 +#define V117 (*(V + 117)) {0x1F002, 0, 42305, 42305, 0}, -#undef V118 -#define V118 (*(V + 118)) +#undef V118 +#define V118 (*(V + 118)) {0x1F002, 0, 10749, 10749, 0}, -#undef V119 -#define V119 (*(V + 119)) +#undef V119 +#define V119 (*(V + 119)) {0x1F002, 0, -213, -213, 0}, -#undef V120 -#define V120 (*(V + 120)) +#undef V120 +#define V120 (*(V + 120)) {0x1F002, 0, -214, -214, 0}, -#undef V121 -#define V121 (*(V + 121)) +#undef V121 +#define V121 (*(V + 121)) {0x1F002, 0, 10727, 10727, 0}, -#undef V122 -#define V122 (*(V + 122)) +#undef V122 +#define V122 (*(V + 122)) {0x1F002, 0, -218, -218, 0}, -#undef V123 -#define V123 (*(V + 123)) +#undef V123 +#define V123 (*(V + 123)) {0x1F002, 0, 42282, 42282, 0}, -#undef V124 -#define V124 (*(V + 124)) +#undef V124 +#define V124 (*(V + 124)) {0x1F002, 0, -69, -69, 0}, -#undef V125 -#define V125 (*(V + 125)) +#undef V125 +#define V125 (*(V + 125)) {0x1F002, 0, -217, -217, 0}, -#undef V126 -#define V126 (*(V + 126)) +#undef V126 +#define V126 (*(V + 126)) {0x1F002, 0, -71, -71, 0}, -#undef V127 -#define V127 (*(V + 127)) +#undef V127 +#define V127 (*(V + 127)) {0x1F002, 0, -219, -219, 0}, -#undef V128 -#define V128 (*(V + 128)) +#undef V128 +#define V128 (*(V + 128)) {0x1F002, 0, 42261, 42261, 0}, -#undef V129 -#define V129 (*(V + 129)) +#undef V129 +#define V129 (*(V + 129)) {0x1F002, 0, 42258, 42258, 0}, -#undef V130 -#define V130 (*(V + 130)) +#undef V130 +#define V130 (*(V + 130)) {0x13405, 0, 0, 0, 0}, -#undef V131 -#define V131 (*(V + 131)) +#undef V131 +#define V131 (*(V + 131)) {0xBF005, 0, 0, 0, 0}, -#undef V132 -#define V132 (*(V + 132)) +#undef V132 +#define V132 (*(V + 132)) {0x1F005, 0, 0, 0, 0}, -#undef V133 -#define V133 (*(V + 133)) +#undef V133 +#define V133 (*(V + 133)) {0xBF004, 0, 0, 0, 0}, -#undef V134 -#define V134 (*(V + 134)) +#undef V134 +#define V134 (*(V + 134)) {0x1F004, 0, 0, 0, 0}, -#undef V135 -#define V135 (*(V + 135)) +#undef V135 +#define V135 (*(V + 135)) {0x500D, 0, 0, 0, 230}, -#undef V136 -#define V136 (*(V + 136)) +#undef V136 +#define V136 (*(V + 136)) {0xF00D, 0, 0, 0, 230}, -#undef V137 -#define V137 (*(V + 137)) +#undef V137 +#define V137 (*(V + 137)) {0xF00D, 0, 0, 0, 232}, -#undef V138 -#define V138 (*(V + 138)) +#undef V138 +#define V138 (*(V + 138)) {0xF00D, 0, 0, 0, 220}, -#undef V139 -#define V139 (*(V + 139)) +#undef V139 +#define V139 (*(V + 139)) {0x500D, 0, 0, 0, 216}, -#undef V140 -#define V140 (*(V + 140)) +#undef V140 +#define V140 (*(V + 140)) {0xF00D, 0, 0, 0, 202}, -#undef V141 -#define V141 (*(V + 141)) +#undef V141 +#define V141 (*(V + 141)) {0x500D, 0, 0, 0, 220}, -#undef V142 -#define V142 (*(V + 142)) +#undef V142 +#define V142 (*(V + 142)) {0x500D, 0, 0, 0, 202}, -#undef V143 -#define V143 (*(V + 143)) +#undef V143 +#define V143 (*(V + 143)) {0xF00D, 0, 0, 0, 1}, -#undef V144 -#define V144 (*(V + 144)) +#undef V144 +#define V144 (*(V + 144)) {0x500D, 0, 0, 0, 1}, -#undef V145 -#define V145 (*(V + 145)) +#undef V145 +#define V145 (*(V + 145)) {0x80D, 0, 0, 0, 230}, -#undef V146 -#define V146 (*(V + 146)) +#undef V146 +#define V146 (*(V + 146)) {0x500D, 0, 84, 84, 240}, -#undef V147 -#define V147 (*(V + 147)) +#undef V147 +#define V147 (*(V + 147)) {0xF00D, 0, 0, 0, 0}, -#undef V148 -#define V148 (*(V + 148)) +#undef V148 +#define V148 (*(V + 148)) {0xF00D, 0, 0, 0, 233}, -#undef V149 -#define V149 (*(V + 149)) +#undef V149 +#define V149 (*(V + 149)) {0xF00D, 0, 0, 0, 234}, -#undef V150 -#define V150 (*(V + 150)) +#undef V150 +#define V150 (*(V + 150)) {0xB0804, 0, 0, 0, 0}, -#undef V151 -#define V151 (*(V + 151)) +#undef V151 +#define V151 (*(V + 151)) {0xF000, 0, 0, 0, 0}, -#undef V152 -#define V152 (*(V + 152)) +#undef V152 +#define V152 (*(V + 152)) {0x13404, 0, 0, 0, 0}, -#undef V153 -#define V153 (*(V + 153)) +#undef V153 +#define V153 (*(V + 153)) {0xB082C, 0, 0, 0, 0}, -#undef V154 -#define V154 (*(V + 154)) +#undef V154 +#define V154 (*(V + 154)) {0x1F001, 116, 0, 0, 0}, -#undef V155 -#define V155 (*(V + 155)) +#undef V155 +#define V155 (*(V + 155)) {0xB2832, 0, 0, 0, 0}, -#undef V156 -#define V156 (*(V + 156)) +#undef V156 +#define V156 (*(V + 156)) {0x1A801, 38, 0, 0, 0}, -#undef V157 -#define V157 (*(V + 157)) +#undef V157 +#define V157 (*(V + 157)) {0x1A801, 37, 0, 0, 0}, -#undef V158 -#define V158 (*(V + 158)) +#undef V158 +#define V158 (*(V + 158)) {0x1A801, 64, 0, 0, 0}, -#undef V159 -#define V159 (*(V + 159)) +#undef V159 +#define V159 (*(V + 159)) {0x1A801, 63, 0, 0, 0}, -#undef V160 -#define V160 (*(V + 160)) +#undef V160 +#define V160 (*(V + 160)) {0x1A802, 0, -38, -38, 0}, -#undef V161 -#define V161 (*(V + 161)) +#undef V161 +#define V161 (*(V + 161)) {0x1A802, 0, -37, -37, 0}, -#undef V162 -#define V162 (*(V + 162)) +#undef V162 +#define V162 (*(V + 162)) {0x1F002, 0, -31, -31, 0}, -#undef V163 -#define V163 (*(V + 163)) +#undef V163 +#define V163 (*(V + 163)) {0x1A802, 0, -64, -64, 0}, -#undef V164 -#define V164 (*(V + 164)) +#undef V164 +#define V164 (*(V + 164)) {0x1A802, 0, -63, -63, 0}, -#undef V165 -#define V165 (*(V + 165)) +#undef V165 +#define V165 (*(V + 165)) {0x1F001, 8, 0, 0, 0}, -#undef V166 -#define V166 (*(V + 166)) +#undef V166 +#define V166 (*(V + 166)) {0x13402, 0, -62, -62, 0}, -#undef V167 -#define V167 (*(V + 167)) +#undef V167 +#define V167 (*(V + 167)) {0x13402, 0, -57, -57, 0}, -#undef V168 -#define V168 (*(V + 168)) +#undef V168 +#define V168 (*(V + 168)) {0x13401, 0, 0, 0, 0}, -#undef V169 -#define V169 (*(V + 169)) +#undef V169 +#define V169 (*(V + 169)) {0x12801, 0, 0, 0, 0}, -#undef V170 -#define V170 (*(V + 170)) +#undef V170 +#define V170 (*(V + 170)) {0x13402, 0, -47, -47, 0}, -#undef V171 -#define V171 (*(V + 171)) +#undef V171 +#define V171 (*(V + 171)) {0x13402, 0, -54, -54, 0}, -#undef V172 -#define V172 (*(V + 172)) +#undef V172 +#define V172 (*(V + 172)) {0x1F002, 0, -8, -8, 0}, -#undef V173 -#define V173 (*(V + 173)) +#undef V173 +#define V173 (*(V + 173)) {0x13402, 0, -86, -86, 0}, -#undef V174 -#define V174 (*(V + 174)) +#undef V174 +#define V174 (*(V + 174)) {0x13402, 0, -80, -80, 0}, -#undef V175 -#define V175 (*(V + 175)) +#undef V175 +#define V175 (*(V + 175)) {0x13402, 0, 7, 7, 0}, -#undef V176 -#define V176 (*(V + 176)) +#undef V176 +#define V176 (*(V + 176)) {0x1F002, 0, -116, -116, 0}, -#undef V177 -#define V177 (*(V + 177)) +#undef V177 +#define V177 (*(V + 177)) {0x13401, -60, 0, 0, 0}, -#undef V178 -#define V178 (*(V + 178)) +#undef V178 +#define V178 (*(V + 178)) {0x13402, 0, -96, -96, 0}, -#undef V179 -#define V179 (*(V + 179)) +#undef V179 +#define V179 (*(V + 179)) {0x13401, -7, 0, 0, 0}, -#undef V180 -#define V180 (*(V + 180)) +#undef V180 +#define V180 (*(V + 180)) {0x1A801, 80, 0, 0, 0}, -#undef V181 -#define V181 (*(V + 181)) +#undef V181 +#define V181 (*(V + 181)) {0x1F001, 80, 0, 0, 0}, -#undef V182 -#define V182 (*(V + 182)) +#undef V182 +#define V182 (*(V + 182)) {0x1A802, 0, -80, -80, 0}, -#undef V183 -#define V183 (*(V + 183)) +#undef V183 +#define V183 (*(V + 183)) {0x1F002, 0, -80, -80, 0}, -#undef V184 -#define V184 (*(V + 184)) +#undef V184 +#define V184 (*(V + 184)) {0x1F033, 0, 0, 0, 0}, -#undef V185 -#define V185 (*(V + 185)) +#undef V185 +#define V185 (*(V + 185)) {0xF00E, 0, 0, 0, 0}, -#undef V186 -#define V186 (*(V + 186)) +#undef V186 +#define V186 (*(V + 186)) {0x1F001, 15, 0, 0, 0}, -#undef V187 -#define V187 (*(V + 187)) +#undef V187 +#define V187 (*(V + 187)) {0x1F002, 0, -15, -15, 0}, -#undef V188 -#define V188 (*(V + 188)) +#undef V188 +#define V188 (*(V + 188)) {0x1F001, 48, 0, 0, 0}, -#undef V189 -#define V189 (*(V + 189)) +#undef V189 +#define V189 (*(V + 189)) {0x1F02A, 0, 0, 0, 0}, -#undef V190 -#define V190 (*(V + 190)) +#undef V190 +#define V190 (*(V + 190)) {0x1F002, 0, -48, -48, 0}, -#undef V191 -#define V191 (*(V + 191)) +#undef V191 +#define V191 (*(V + 191)) {0x1F02C, 0, 0, 0, 0}, -#undef V192 -#define V192 (*(V + 192)) +#undef V192 +#define V192 (*(V + 192)) {0xBF022, 0, 0, 0, 0}, -#undef V193 -#define V193 (*(V + 193)) +#undef V193 +#define V193 (*(V + 193)) {0xF00D, 0, 0, 0, 222}, -#undef V194 -#define V194 (*(V + 194)) +#undef V194 +#define V194 (*(V + 194)) {0xF00D, 0, 0, 0, 228}, -#undef V195 -#define V195 (*(V + 195)) +#undef V195 +#define V195 (*(V + 195)) {0xF00D, 0, 0, 0, 10}, -#undef V196 -#define V196 (*(V + 196)) +#undef V196 +#define V196 (*(V + 196)) {0xF00D, 0, 0, 0, 11}, -#undef V197 -#define V197 (*(V + 197)) +#undef V197 +#define V197 (*(V + 197)) {0xF00D, 0, 0, 0, 12}, -#undef V198 -#define V198 (*(V + 198)) +#undef V198 +#define V198 (*(V + 198)) {0xF00D, 0, 0, 0, 13}, -#undef V199 -#define V199 (*(V + 199)) +#undef V199 +#define V199 (*(V + 199)) {0xF00D, 0, 0, 0, 14}, -#undef V200 -#define V200 (*(V + 200)) +#undef V200 +#define V200 (*(V + 200)) {0xF00D, 0, 0, 0, 15}, -#undef V201 -#define V201 (*(V + 201)) +#undef V201 +#define V201 (*(V + 201)) {0xF00D, 0, 0, 0, 16}, -#undef V202 -#define V202 (*(V + 202)) +#undef V202 +#define V202 (*(V + 202)) {0xF00D, 0, 0, 0, 17}, -#undef V203 -#define V203 (*(V + 203)) +#undef V203 +#define V203 (*(V + 203)) {0xF00D, 0, 0, 0, 18}, -#undef V204 -#define V204 (*(V + 204)) +#undef V204 +#define V204 (*(V + 204)) {0xF00D, 0, 0, 0, 19}, -#undef V205 -#define V205 (*(V + 205)) +#undef V205 +#define V205 (*(V + 205)) {0xF00D, 0, 0, 0, 20}, -#undef V206 -#define V206 (*(V + 206)) +#undef V206 +#define V206 (*(V + 206)) {0xF00D, 0, 0, 0, 21}, -#undef V207 -#define V207 (*(V + 207)) +#undef V207 +#define V207 (*(V + 207)) {0xF00D, 0, 0, 0, 22}, -#undef V208 -#define V208 (*(V + 208)) +#undef V208 +#define V208 (*(V + 208)) {0x2F021, 0, 0, 0, 0}, -#undef V209 -#define V209 (*(V + 209)) +#undef V209 +#define V209 (*(V + 209)) {0xF00D, 0, 0, 0, 23}, -#undef V210 -#define V210 (*(V + 210)) +#undef V210 +#define V210 (*(V + 210)) {0x2F02A, 0, 0, 0, 0}, -#undef V211 -#define V211 (*(V + 211)) +#undef V211 +#define V211 (*(V + 211)) {0xF00D, 0, 0, 0, 24}, -#undef V212 -#define V212 (*(V + 212)) +#undef V212 +#define V212 (*(V + 212)) {0xF00D, 0, 0, 0, 25}, -#undef V213 -#define V213 (*(V + 213)) +#undef V213 +#define V213 (*(V + 213)) {0x2F006, 0, 0, 0, 0}, -#undef V214 -#define V214 (*(V + 214)) +#undef V214 +#define V214 (*(V + 214)) {0x6F01B, 0, 0, 0, 0}, -#undef V215 -#define V215 (*(V + 215)) +#undef V215 +#define V215 (*(V + 215)) {0xF02F, 0, 0, 0, 0}, -#undef V216 -#define V216 (*(V + 216)) +#undef V216 +#define V216 (*(V + 216)) {0xF031, 0, 0, 0, 0}, -#undef V217 -#define V217 (*(V + 217)) +#undef V217 +#define V217 (*(V + 217)) {0xF02A, 0, 0, 0, 0}, -#undef V218 -#define V218 (*(V + 218)) +#undef V218 +#define V218 (*(V + 218)) {0xF00D, 0, 0, 0, 30}, -#undef V219 -#define V219 (*(V + 219)) +#undef V219 +#define V219 (*(V + 219)) {0xF00D, 0, 0, 0, 31}, -#undef V220 -#define V220 (*(V + 220)) +#undef V220 +#define V220 (*(V + 220)) {0xF00D, 0, 0, 0, 32}, -#undef V221 -#define V221 (*(V + 221)) +#undef V221 +#define V221 (*(V + 221)) {0xF02C, 0, 0, 0, 0}, -#undef V222 -#define V222 (*(V + 222)) +#undef V222 +#define V222 (*(V + 222)) {0xF006, 0, 0, 0, 0}, -#undef V223 -#define V223 (*(V + 223)) +#undef V223 +#define V223 (*(V + 223)) {0xA806, 0, 0, 0, 0}, -#undef V224 -#define V224 (*(V + 224)) +#undef V224 +#define V224 (*(V + 224)) {0xF004, 0, 0, 0, 0}, -#undef V225 -#define V225 (*(V + 225)) +#undef V225 +#define V225 (*(V + 225)) {0xF00D, 0, 0, 0, 27}, -#undef V226 -#define V226 (*(V + 226)) +#undef V226 +#define V226 (*(V + 226)) {0xF00D, 0, 0, 0, 28}, -#undef V227 -#define V227 (*(V + 227)) +#undef V227 +#define V227 (*(V + 227)) {0xF00D, 0, 0, 0, 29}, -#undef V228 -#define V228 (*(V + 228)) +#undef V228 +#define V228 (*(V + 228)) {0xF00D, 0, 0, 0, 33}, -#undef V229 -#define V229 (*(V + 229)) +#undef V229 +#define V229 (*(V + 229)) {0xF00D, 0, 0, 0, 34}, -#undef V230 -#define V230 (*(V + 230)) +#undef V230 +#define V230 (*(V + 230)) {0x6F090, 0, 0, 0, 0}, -#undef V231 -#define V231 (*(V + 231)) +#undef V231 +#define V231 (*(V + 231)) {0x46F090, 0, 0, 0, 0}, -#undef V232 -#define V232 (*(V + 232)) +#undef V232 +#define V232 (*(V + 232)) {0x86F090, 0, 0, 0, 0}, -#undef V233 -#define V233 (*(V + 233)) +#undef V233 +#define V233 (*(V + 233)) {0xC6F090, 0, 0, 0, 0}, -#undef V234 -#define V234 (*(V + 234)) +#undef V234 +#define V234 (*(V + 234)) {0x106F090, 0, 0, 0, 0}, -#undef V235 -#define V235 (*(V + 235)) +#undef V235 +#define V235 (*(V + 235)) {0x146F090, 0, 0, 0, 0}, -#undef V236 -#define V236 (*(V + 236)) +#undef V236 +#define V236 (*(V + 236)) {0x186F090, 0, 0, 0, 0}, -#undef V237 -#define V237 (*(V + 237)) +#undef V237 +#define V237 (*(V + 237)) {0x1C6F090, 0, 0, 0, 0}, -#undef V238 -#define V238 (*(V + 238)) +#undef V238 +#define V238 (*(V + 238)) {0x206F090, 0, 0, 0, 0}, -#undef V239 -#define V239 (*(V + 239)) +#undef V239 +#define V239 (*(V + 239)) {0x246F090, 0, 0, 0, 0}, -#undef V240 -#define V240 (*(V + 240)) +#undef V240 +#define V240 (*(V + 240)) {0x6F02A, 0, 0, 0, 0}, -#undef V241 -#define V241 (*(V + 241)) +#undef V241 +#define V241 (*(V + 241)) {0xF00D, 0, 0, 0, 35}, -#undef V242 -#define V242 (*(V + 242)) +#undef V242 +#define V242 (*(V + 242)) {0x3406, 0, 0, 0, 0}, -#undef V243 -#define V243 (*(V + 243)) +#undef V243 +#define V243 (*(V + 243)) {0xF005, 0, 0, 0, 0}, -#undef V244 -#define V244 (*(V + 244)) +#undef V244 +#define V244 (*(V + 244)) {0x3F090, 0, 0, 0, 0}, -#undef V245 -#define V245 (*(V + 245)) +#undef V245 +#define V245 (*(V + 245)) {0x43F090, 0, 0, 0, 0}, -#undef V246 -#define V246 (*(V + 246)) +#undef V246 +#define V246 (*(V + 246)) {0x83F090, 0, 0, 0, 0}, -#undef V247 -#define V247 (*(V + 247)) +#undef V247 +#define V247 (*(V + 247)) {0xC3F090, 0, 0, 0, 0}, -#undef V248 -#define V248 (*(V + 248)) +#undef V248 +#define V248 (*(V + 248)) {0x103F090, 0, 0, 0, 0}, -#undef V249 -#define V249 (*(V + 249)) +#undef V249 +#define V249 (*(V + 249)) {0x143F090, 0, 0, 0, 0}, -#undef V250 -#define V250 (*(V + 250)) +#undef V250 +#define V250 (*(V + 250)) {0x183F090, 0, 0, 0, 0}, -#undef V251 -#define V251 (*(V + 251)) +#undef V251 +#define V251 (*(V + 251)) {0x1C3F090, 0, 0, 0, 0}, -#undef V252 -#define V252 (*(V + 252)) +#undef V252 +#define V252 (*(V + 252)) {0x203F090, 0, 0, 0, 0}, -#undef V253 -#define V253 (*(V + 253)) +#undef V253 +#define V253 (*(V + 253)) {0x243F090, 0, 0, 0, 0}, -#undef V254 -#define V254 (*(V + 254)) +#undef V254 +#define V254 (*(V + 254)) {0xF033, 0, 0, 0, 0}, -#undef V255 -#define V255 (*(V + 255)) +#undef V255 +#define V255 (*(V + 255)) {0xF00D, 0, 0, 0, 36}, -#undef V256 -#define V256 (*(V + 256)) +#undef V256 +#define V256 (*(V + 256)) {0x2F090, 0, 0, 0, 0}, -#undef V257 -#define V257 (*(V + 257)) +#undef V257 +#define V257 (*(V + 257)) {0x42F090, 0, 0, 0, 0}, -#undef V258 -#define V258 (*(V + 258)) +#undef V258 +#define V258 (*(V + 258)) {0x82F090, 0, 0, 0, 0}, -#undef V259 -#define V259 (*(V + 259)) +#undef V259 +#define V259 (*(V + 259)) {0xC2F090, 0, 0, 0, 0}, -#undef V260 -#define V260 (*(V + 260)) +#undef V260 +#define V260 (*(V + 260)) {0x102F090, 0, 0, 0, 0}, -#undef V261 -#define V261 (*(V + 261)) +#undef V261 +#define V261 (*(V + 261)) {0x142F090, 0, 0, 0, 0}, -#undef V262 -#define V262 (*(V + 262)) +#undef V262 +#define V262 (*(V + 262)) {0x182F090, 0, 0, 0, 0}, -#undef V263 -#define V263 (*(V + 263)) +#undef V263 +#define V263 (*(V + 263)) {0x1C2F090, 0, 0, 0, 0}, -#undef V264 -#define V264 (*(V + 264)) +#undef V264 +#define V264 (*(V + 264)) {0x202F090, 0, 0, 0, 0}, -#undef V265 -#define V265 (*(V + 265)) +#undef V265 +#define V265 (*(V + 265)) {0x242F090, 0, 0, 0, 0}, -#undef V266 -#define V266 (*(V + 266)) +#undef V266 +#define V266 (*(V + 266)) {0x2F004, 0, 0, 0, 0}, -#undef V267 -#define V267 (*(V + 267)) +#undef V267 +#define V267 (*(V + 267)) {0x2F005, 0, 0, 0, 0}, -#undef V268 -#define V268 (*(V + 268)) +#undef V268 +#define V268 (*(V + 268)) {0x1F00F, 0, 0, 0, 0}, -#undef V269 -#define V269 (*(V + 269)) +#undef V269 +#define V269 (*(V + 269)) {0x1A806, 0, 0, 0, 0}, -#undef V270 -#define V270 (*(V + 270)) +#undef V270 +#define V270 (*(V + 270)) {0x500D, 0, 0, 0, 7}, -#undef V271 -#define V271 (*(V + 271)) +#undef V271 +#define V271 (*(V + 271)) {0xF00D, 0, 0, 0, 9}, -#undef V272 -#define V272 (*(V + 272)) +#undef V272 +#define V272 (*(V + 272)) {0x10806, 0, 0, 0, 0}, -#undef V273 -#define V273 (*(V + 273)) +#undef V273 +#define V273 (*(V + 273)) {0x1F090, 0, 0, 0, 0}, -#undef V274 -#define V274 (*(V + 274)) +#undef V274 +#define V274 (*(V + 274)) {0x41F090, 0, 0, 0, 0}, -#undef V275 -#define V275 (*(V + 275)) +#undef V275 +#define V275 (*(V + 275)) {0x81F090, 0, 0, 0, 0}, -#undef V276 -#define V276 (*(V + 276)) +#undef V276 +#define V276 (*(V + 276)) {0xC1F090, 0, 0, 0, 0}, -#undef V277 -#define V277 (*(V + 277)) +#undef V277 +#define V277 (*(V + 277)) {0x101F090, 0, 0, 0, 0}, -#undef V278 -#define V278 (*(V + 278)) +#undef V278 +#define V278 (*(V + 278)) {0x141F090, 0, 0, 0, 0}, -#undef V279 -#define V279 (*(V + 279)) +#undef V279 +#define V279 (*(V + 279)) {0x181F090, 0, 0, 0, 0}, -#undef V280 -#define V280 (*(V + 280)) +#undef V280 +#define V280 (*(V + 280)) {0x1C1F090, 0, 0, 0, 0}, -#undef V281 -#define V281 (*(V + 281)) +#undef V281 +#define V281 (*(V + 281)) {0x201F090, 0, 0, 0, 0}, -#undef V282 -#define V282 (*(V + 282)) +#undef V282 +#define V282 (*(V + 282)) {0x241F090, 0, 0, 0, 0}, -#undef V283 -#define V283 (*(V + 283)) +#undef V283 +#define V283 (*(V + 283)) {0xF00D, 0, 0, 0, 7}, -#undef V284 -#define V284 (*(V + 284)) +#undef V284 +#define V284 (*(V + 284)) {0x1500F, 0, 0, 0, 0}, -#undef V285 -#define V285 (*(V + 285)) +#undef V285 +#define V285 (*(V + 285)) {0x1A80F, 0, 0, 0, 0}, -#undef V286 -#define V286 (*(V + 286)) +#undef V286 +#define V286 (*(V + 286)) {0x1F013, 0, 0, 0, 0}, -#undef V287 -#define V287 (*(V + 287)) +#undef V287 +#define V287 (*(V + 287)) {0x500D, 0, 0, 0, 0}, -#undef V288 -#define V288 (*(V + 288)) +#undef V288 +#define V288 (*(V + 288)) {0xA80D, 0, 0, 0, 0}, -#undef V289 -#define V289 (*(V + 289)) +#undef V289 +#define V289 (*(V + 289)) {0xF00D, 0, 0, 0, 84}, -#undef V290 -#define V290 (*(V + 290)) +#undef V290 +#define V290 (*(V + 290)) {0x500D, 0, 0, 0, 91}, -#undef V291 -#define V291 (*(V + 291)) +#undef V291 +#define V291 (*(V + 291)) {0xBF013, 0, 0, 0, 0}, -#undef V292 -#define V292 (*(V + 292)) +#undef V292 +#define V292 (*(V + 292)) {0x1F00D, 0, 0, 0, 0}, -#undef V293 -#define V293 (*(V + 293)) +#undef V293 +#define V293 (*(V + 293)) {0x500D, 0, 0, 0, 9}, -#undef V294 -#define V294 (*(V + 294)) +#undef V294 +#define V294 (*(V + 294)) {0xF00D, 0, 0, 0, 103}, -#undef V295 -#define V295 (*(V + 295)) +#undef V295 +#define V295 (*(V + 295)) {0xF00D, 0, 0, 0, 107}, -#undef V296 -#define V296 (*(V + 296)) +#undef V296 +#define V296 (*(V + 296)) {0xF00D, 0, 0, 0, 118}, -#undef V297 -#define V297 (*(V + 297)) +#undef V297 +#define V297 (*(V + 297)) {0xF00D, 0, 0, 0, 122}, -#undef V298 -#define V298 (*(V + 298)) +#undef V298 +#define V298 (*(V + 298)) {0x1342A, 0, 0, 0, 0}, -#undef V299 -#define V299 (*(V + 299)) +#undef V299 +#define V299 (*(V + 299)) {0xF00D, 0, 0, 0, 216}, -#undef V300 -#define V300 (*(V + 300)) +#undef V300 +#define V300 (*(V + 300)) {0xF00D, 0, 0, 0, 129}, -#undef V301 -#define V301 (*(V + 301)) +#undef V301 +#define V301 (*(V + 301)) {0xF00D, 0, 0, 0, 130}, -#undef V302 -#define V302 (*(V + 302)) +#undef V302 +#define V302 (*(V + 302)) {0x80D, 0, 0, 0, 0}, -#undef V303 -#define V303 (*(V + 303)) +#undef V303 +#define V303 (*(V + 303)) {0xF00D, 0, 0, 0, 132}, -#undef V304 -#define V304 (*(V + 304)) +#undef V304 +#define V304 (*(V + 304)) {0x340D, 0, 0, 0, 0}, -#undef V305 -#define V305 (*(V + 305)) +#undef V305 +#define V305 (*(V + 305)) {0x1F001, 7264, 0, 0, 0}, -#undef V306 -#define V306 (*(V + 306)) +#undef V306 +#define V306 (*(V + 306)) {0x1F00A, 0, 0, 0, 0}, -#undef V307 -#define V307 (*(V + 307)) +#undef V307 +#define V307 (*(V + 307)) {0x1F00B, 0, 0, 0, 0}, -#undef V308 -#define V308 (*(V + 308)) +#undef V308 +#define V308 (*(V + 308)) {0x1500B, 0, 0, 0, 0}, -#undef V309 -#define V309 (*(V + 309)) +#undef V309 +#define V309 (*(V + 309)) {0x1500C, 0, 0, 0, 0}, -#undef V310 -#define V310 (*(V + 310)) +#undef V310 +#define V310 (*(V + 310)) {0x1F00C, 0, 0, 0, 0}, -#undef V311 -#define V311 (*(V + 311)) +#undef V311 +#define V311 (*(V + 311)) {0x41F093, 0, 0, 0, 0}, -#undef V312 -#define V312 (*(V + 312)) +#undef V312 +#define V312 (*(V + 312)) {0x81F093, 0, 0, 0, 0}, -#undef V313 -#define V313 (*(V + 313)) +#undef V313 +#define V313 (*(V + 313)) {0xC1F093, 0, 0, 0, 0}, -#undef V314 -#define V314 (*(V + 314)) +#undef V314 +#define V314 (*(V + 314)) {0x101F093, 0, 0, 0, 0}, -#undef V315 -#define V315 (*(V + 315)) +#undef V315 +#define V315 (*(V + 315)) {0x141F093, 0, 0, 0, 0}, -#undef V316 -#define V316 (*(V + 316)) +#undef V316 +#define V316 (*(V + 316)) {0x181F093, 0, 0, 0, 0}, -#undef V317 -#define V317 (*(V + 317)) +#undef V317 +#define V317 (*(V + 317)) {0x1C1F093, 0, 0, 0, 0}, -#undef V318 -#define V318 (*(V + 318)) +#undef V318 +#define V318 (*(V + 318)) {0x201F093, 0, 0, 0, 0}, -#undef V319 -#define V319 (*(V + 319)) +#undef V319 +#define V319 (*(V + 319)) {0x241F093, 0, 0, 0, 0}, -#undef V320 -#define V320 (*(V + 320)) +#undef V320 +#define V320 (*(V + 320)) {0x1F001, 38864, 0, 0, 0}, -#undef V321 -#define V321 (*(V + 321)) +#undef V321 +#define V321 (*(V + 321)) {0x1F011, 0, 0, 0, 0}, -#undef V322 -#define V322 (*(V + 322)) +#undef V322 +#define V322 (*(V + 322)) {0x1F00F, 0, 0, 0, 9}, -#undef V323 -#define V323 (*(V + 323)) +#undef V323 +#define V323 (*(V + 323)) {0x1F002, 0, -6254, -6254, 0}, -#undef V324 -#define V324 (*(V + 324)) +#undef V324 +#define V324 (*(V + 324)) {0x1F002, 0, -6253, -6253, 0}, -#undef V325 -#define V325 (*(V + 325)) +#undef V325 +#define V325 (*(V + 325)) {0x1F002, 0, -6244, -6244, 0}, -#undef V326 -#define V326 (*(V + 326)) +#undef V326 +#define V326 (*(V + 326)) {0x1F002, 0, -6242, -6242, 0}, -#undef V327 -#define V327 (*(V + 327)) +#undef V327 +#define V327 (*(V + 327)) {0x1F002, 0, -6243, -6243, 0}, -#undef V328 -#define V328 (*(V + 328)) +#undef V328 +#define V328 (*(V + 328)) {0x1F002, 0, -6236, -6236, 0}, -#undef V329 -#define V329 (*(V + 329)) +#undef V329 +#define V329 (*(V + 329)) {0x1F002, 0, -6181, -6181, 0}, -#undef V330 -#define V330 (*(V + 330)) +#undef V330 +#define V330 (*(V + 330)) {0x1F002, 0, 35266, 35266, 0}, -#undef V331 -#define V331 (*(V + 331)) +#undef V331 +#define V331 (*(V + 331)) {0x1F002, 0, 35332, 35332, 0}, -#undef V332 -#define V332 (*(V + 332)) +#undef V332 +#define V332 (*(V + 332)) {0x1F002, 0, 3814, 3814, 0}, -#undef V333 -#define V333 (*(V + 333)) +#undef V333 +#define V333 (*(V + 333)) {0xF00D, 0, 0, 0, 214}, -#undef V334 -#define V334 (*(V + 334)) +#undef V334 +#define V334 (*(V + 334)) {0x12802, 0, -59, -59, 0}, -#undef V335 -#define V335 (*(V + 335)) +#undef V335 +#define V335 (*(V + 335)) {0x1F001, -7615, 0, 0, 0}, -#undef V336 -#define V336 (*(V + 336)) +#undef V336 +#define V336 (*(V + 336)) {0x1A802, 0, 8, 8, 0}, -#undef V337 -#define V337 (*(V + 337)) +#undef V337 +#define V337 (*(V + 337)) {0x1A801, -8, 0, 0, 0}, -#undef V338 -#define V338 (*(V + 338)) +#undef V338 +#define V338 (*(V + 338)) {0x1A802, 0, 74, 74, 0}, -#undef V339 -#define V339 (*(V + 339)) +#undef V339 +#define V339 (*(V + 339)) {0x10802, 0, 74, 74, 0}, -#undef V340 -#define V340 (*(V + 340)) +#undef V340 +#define V340 (*(V + 340)) {0x1A802, 0, 86, 86, 0}, -#undef V341 -#define V341 (*(V + 341)) +#undef V341 +#define V341 (*(V + 341)) {0x10802, 0, 86, 86, 0}, -#undef V342 -#define V342 (*(V + 342)) +#undef V342 +#define V342 (*(V + 342)) {0x1A802, 0, 100, 100, 0}, -#undef V343 -#define V343 (*(V + 343)) +#undef V343 +#define V343 (*(V + 343)) {0x10802, 0, 100, 100, 0}, -#undef V344 -#define V344 (*(V + 344)) +#undef V344 +#define V344 (*(V + 344)) {0x1A802, 0, 128, 128, 0}, -#undef V345 -#define V345 (*(V + 345)) +#undef V345 +#define V345 (*(V + 345)) {0x10802, 0, 128, 128, 0}, -#undef V346 -#define V346 (*(V + 346)) +#undef V346 +#define V346 (*(V + 346)) {0x1A802, 0, 112, 112, 0}, -#undef V347 -#define V347 (*(V + 347)) +#undef V347 +#define V347 (*(V + 347)) {0x10802, 0, 112, 112, 0}, -#undef V348 -#define V348 (*(V + 348)) +#undef V348 +#define V348 (*(V + 348)) {0x1A802, 0, 126, 126, 0}, -#undef V349 -#define V349 (*(V + 349)) +#undef V349 +#define V349 (*(V + 349)) {0x10802, 0, 126, 126, 0}, -#undef V350 -#define V350 (*(V + 350)) +#undef V350 +#define V350 (*(V + 350)) {0x1A803, -8, 0, 0, 0}, -#undef V351 -#define V351 (*(V + 351)) +#undef V351 +#define V351 (*(V + 351)) {0x1A802, 0, 9, 9, 0}, -#undef V352 -#define V352 (*(V + 352)) +#undef V352 +#define V352 (*(V + 352)) {0x1A801, -74, 0, 0, 0}, -#undef V353 -#define V353 (*(V + 353)) +#undef V353 +#define V353 (*(V + 353)) {0x10801, -74, 0, 0, 0}, -#undef V354 -#define V354 (*(V + 354)) +#undef V354 +#define V354 (*(V + 354)) {0x1A803, -9, 0, 0, 0}, -#undef V355 -#define V355 (*(V + 355)) +#undef V355 +#define V355 (*(V + 355)) {0x10802, 0, -7205, -7205, 0}, -#undef V356 -#define V356 (*(V + 356)) +#undef V356 +#define V356 (*(V + 356)) {0x1A801, -86, 0, 0, 0}, -#undef V357 -#define V357 (*(V + 357)) +#undef V357 +#define V357 (*(V + 357)) {0x10801, -86, 0, 0, 0}, -#undef V358 -#define V358 (*(V + 358)) +#undef V358 +#define V358 (*(V + 358)) {0x10802, 0, 0, 0, 0}, -#undef V359 -#define V359 (*(V + 359)) +#undef V359 +#define V359 (*(V + 359)) {0x1A801, -100, 0, 0, 0}, -#undef V360 -#define V360 (*(V + 360)) +#undef V360 +#define V360 (*(V + 360)) {0x10801, -100, 0, 0, 0}, -#undef V361 -#define V361 (*(V + 361)) +#undef V361 +#define V361 (*(V + 361)) {0x1A802, 0, 7, 7, 0}, -#undef V362 -#define V362 (*(V + 362)) +#undef V362 +#define V362 (*(V + 362)) {0x1A801, -112, 0, 0, 0}, -#undef V363 -#define V363 (*(V + 363)) +#undef V363 +#define V363 (*(V + 363)) {0x10801, -112, 0, 0, 0}, -#undef V364 -#define V364 (*(V + 364)) +#undef V364 +#define V364 (*(V + 364)) {0x1A801, -7, 0, 0, 0}, -#undef V365 -#define V365 (*(V + 365)) +#undef V365 +#define V365 (*(V + 365)) {0xB0832, 0, 0, 0, 0}, -#undef V366 -#define V366 (*(V + 366)) +#undef V366 +#define V366 (*(V + 366)) {0x1A801, -128, 0, 0, 0}, -#undef V367 -#define V367 (*(V + 367)) +#undef V367 +#define V367 (*(V + 367)) {0x10801, -128, 0, 0, 0}, -#undef V368 -#define V368 (*(V + 368)) +#undef V368 +#define V368 (*(V + 368)) {0x1A801, -126, 0, 0, 0}, -#undef V369 -#define V369 (*(V + 369)) +#undef V369 +#define V369 (*(V + 369)) {0x10801, -126, 0, 0, 0}, -#undef V370 -#define V370 (*(V + 370)) +#undef V370 +#define V370 (*(V + 370)) {0xA0814, 0, 0, 0, 0}, -#undef V371 -#define V371 (*(V + 371)) +#undef V371 +#define V371 (*(V + 371)) {0xA3414, 0, 0, 0, 0}, -#undef V372 -#define V372 (*(V + 372)) +#undef V372 +#define V372 (*(V + 372)) {0xF015, 0, 0, 0, 0}, -#undef V373 -#define V373 (*(V + 373)) +#undef V373 +#define V373 (*(V + 373)) {0xF01C, 0, 0, 0, 0}, -#undef V374 -#define V374 (*(V + 374)) +#undef V374 +#define V374 (*(V + 374)) {0x1F01D, 0, 0, 0, 0}, -#undef V375 -#define V375 (*(V + 375)) +#undef V375 +#define V375 (*(V + 375)) {0x2F01D, 0, 0, 0, 0}, -#undef V376 -#define V376 (*(V + 376)) +#undef V376 +#define V376 (*(V + 376)) {0xB3522, 0, 0, 0, 0}, -#undef V377 -#define V377 (*(V + 377)) +#undef V377 +#define V377 (*(V + 377)) {0xBF021, 0, 0, 0, 0}, -#undef V378 -#define V378 (*(V + 378)) +#undef V378 +#define V378 (*(V + 378)) {0xB342A, 0, 0, 0, 0}, -#undef V379 -#define V379 (*(V + 379)) +#undef V379 +#define V379 (*(V + 379)) {0xBF036, 0, 0, 0, 0}, -#undef V380 -#define V380 (*(V + 380)) +#undef V380 +#define V380 (*(V + 380)) {0xBF037, 0, 0, 0, 0}, -#undef V381 -#define V381 (*(V + 381)) +#undef V381 +#define V381 (*(V + 381)) {0xBF034, 0, 0, 0, 0}, -#undef V382 -#define V382 (*(V + 382)) +#undef V382 +#define V382 (*(V + 382)) {0xBF024, 0, 0, 0, 0}, -#undef V383 -#define V383 (*(V + 383)) +#undef V383 +#define V383 (*(V + 383)) {0xB342C, 0, 0, 0, 0}, -#undef V384 -#define V384 (*(V + 384)) +#undef V384 +#define V384 (*(V + 384)) {0xAF016, 0, 0, 0, 0}, -#undef V385 -#define V385 (*(V + 385)) +#undef V385 +#define V385 (*(V + 385)) {0x8F017, 0, 0, 0, 0}, -#undef V386 -#define V386 (*(V + 386)) +#undef V386 +#define V386 (*(V + 386)) {0xF01D, 0, 0, 0, 0}, -#undef V387 -#define V387 (*(V + 387)) +#undef V387 +#define V387 (*(V + 387)) {0x5F038, 0, 0, 0, 0}, -#undef V388 -#define V388 (*(V + 388)) +#undef V388 +#define V388 (*(V + 388)) {0x5342B, 0, 0, 0, 0}, -#undef V389 -#define V389 (*(V + 389)) +#undef V389 +#define V389 (*(V + 389)) {0xB342B, 0, 0, 0, 0}, -#undef V390 -#define V390 (*(V + 390)) +#undef V390 +#define V390 (*(V + 390)) {0x7F02F, 0, 0, 0, 0}, -#undef V391 -#define V391 (*(V + 391)) +#undef V391 +#define V391 (*(V + 391)) {0x33493, 0, 0, 0, 0}, -#undef V392 -#define V392 (*(V + 392)) +#undef V392 +#define V392 (*(V + 392)) {0x1033493, 0, 0, 0, 0}, -#undef V393 -#define V393 (*(V + 393)) +#undef V393 +#define V393 (*(V + 393)) {0x1433493, 0, 0, 0, 0}, -#undef V394 -#define V394 (*(V + 394)) +#undef V394 +#define V394 (*(V + 394)) {0x1833493, 0, 0, 0, 0}, -#undef V395 -#define V395 (*(V + 395)) +#undef V395 +#define V395 (*(V + 395)) {0x1C33493, 0, 0, 0, 0}, -#undef V396 -#define V396 (*(V + 396)) +#undef V396 +#define V396 (*(V + 396)) {0x2033493, 0, 0, 0, 0}, -#undef V397 -#define V397 (*(V + 397)) +#undef V397 +#define V397 (*(V + 397)) {0x2433493, 0, 0, 0, 0}, -#undef V398 -#define V398 (*(V + 398)) +#undef V398 +#define V398 (*(V + 398)) {0x4342F, 0, 0, 0, 0}, -#undef V399 -#define V399 (*(V + 399)) +#undef V399 +#define V399 (*(V + 399)) {0x43430, 0, 0, 0, 0}, -#undef V400 -#define V400 (*(V + 400)) +#undef V400 +#define V400 (*(V + 400)) {0xB342F, 0, 0, 0, 0}, -#undef V401 -#define V401 (*(V + 401)) +#undef V401 +#define V401 (*(V + 401)) {0xB3423, 0, 0, 0, 0}, -#undef V402 -#define V402 (*(V + 402)) +#undef V402 +#define V402 (*(V + 402)) {0xB3425, 0, 0, 0, 0}, -#undef V403 -#define V403 (*(V + 403)) +#undef V403 +#define V403 (*(V + 403)) {0x53431, 0, 0, 0, 0}, -#undef V404 -#define V404 (*(V + 404)) +#undef V404 +#define V404 (*(V + 404)) {0xB3433, 0, 0, 0, 0}, -#undef V405 -#define V405 (*(V + 405)) +#undef V405 +#define V405 (*(V + 405)) {0x10801, -7517, 0, 0, 0}, -#undef V406 -#define V406 (*(V + 406)) +#undef V406 +#define V406 (*(V + 406)) {0x10801, -8383, 0, 0, 0}, -#undef V407 -#define V407 (*(V + 407)) +#undef V407 +#define V407 (*(V + 407)) {0x10801, -8262, 0, 0, 0}, -#undef V408 -#define V408 (*(V + 408)) +#undef V408 +#define V408 (*(V + 408)) {0x1F001, 28, 0, 0, 0}, -#undef V409 -#define V409 (*(V + 409)) +#undef V409 +#define V409 (*(V + 409)) {0x1F002, 0, -28, -28, 0}, -#undef V410 -#define V410 (*(V + 410)) +#undef V410 +#define V410 (*(V + 410)) {0x13411, 16, 0, 0, 0}, -#undef V411 -#define V411 (*(V + 411)) +#undef V411 +#define V411 (*(V + 411)) {0x13411, 0, -16, -16, 0}, -#undef V412 -#define V412 (*(V + 412)) +#undef V412 +#define V412 (*(V + 412)) {0xBA82F, 0, 0, 0, 0}, -#undef V413 -#define V413 (*(V + 413)) +#undef V413 +#define V413 (*(V + 413)) {0xBA833, 0, 0, 0, 0}, -#undef V414 -#define V414 (*(V + 414)) +#undef V414 +#define V414 (*(V + 414)) {0x4F030, 0, 0, 0, 0}, -#undef V415 -#define V415 (*(V + 415)) +#undef V415 +#define V415 (*(V + 415)) {0xB0823, 0, 0, 0, 0}, -#undef V416 -#define V416 (*(V + 416)) +#undef V416 +#define V416 (*(V + 416)) {0xB0825, 0, 0, 0, 0}, -#undef V417 -#define V417 (*(V + 417)) +#undef V417 +#define V417 (*(V + 417)) {0x4B3493, 0, 0, 0, 0}, -#undef V418 -#define V418 (*(V + 418)) +#undef V418 +#define V418 (*(V + 418)) {0x8B3493, 0, 0, 0, 0}, -#undef V419 -#define V419 (*(V + 419)) +#undef V419 +#define V419 (*(V + 419)) {0xCB3493, 0, 0, 0, 0}, -#undef V420 -#define V420 (*(V + 420)) +#undef V420 +#define V420 (*(V + 420)) {0x10B3493, 0, 0, 0, 0}, -#undef V421 -#define V421 (*(V + 421)) +#undef V421 +#define V421 (*(V + 421)) {0x14B3493, 0, 0, 0, 0}, -#undef V422 -#define V422 (*(V + 422)) +#undef V422 +#define V422 (*(V + 422)) {0x18B3493, 0, 0, 0, 0}, -#undef V423 -#define V423 (*(V + 423)) +#undef V423 +#define V423 (*(V + 423)) {0x1CB3493, 0, 0, 0, 0}, -#undef V424 -#define V424 (*(V + 424)) +#undef V424 +#define V424 (*(V + 424)) {0x20B3493, 0, 0, 0, 0}, -#undef V425 -#define V425 (*(V + 425)) +#undef V425 +#define V425 (*(V + 425)) {0x24B3493, 0, 0, 0, 0}, -#undef V426 -#define V426 (*(V + 426)) +#undef V426 +#define V426 (*(V + 426)) {0x33413, 0, 0, 0, 0}, -#undef V427 -#define V427 (*(V + 427)) +#undef V427 +#define V427 (*(V + 427)) {0x13433, 0, 0, 0, 0}, -#undef V428 -#define V428 (*(V + 428)) +#undef V428 +#define V428 (*(V + 428)) {0x13433, 26, 0, 0, 0}, -#undef V429 -#define V429 (*(V + 429)) +#undef V429 +#define V429 (*(V + 429)) {0x13433, 0, -26, -26, 0}, -#undef V430 -#define V430 (*(V + 430)) +#undef V430 +#define V430 (*(V + 430)) {0xB3493, 0, 0, 0, 0}, -#undef V431 -#define V431 (*(V + 431)) +#undef V431 +#define V431 (*(V + 431)) {0x4BF093, 0, 0, 0, 0}, -#undef V432 -#define V432 (*(V + 432)) +#undef V432 +#define V432 (*(V + 432)) {0x8BF093, 0, 0, 0, 0}, -#undef V433 -#define V433 (*(V + 433)) +#undef V433 +#define V433 (*(V + 433)) {0xCBF093, 0, 0, 0, 0}, -#undef V434 -#define V434 (*(V + 434)) +#undef V434 +#define V434 (*(V + 434)) {0x10BF093, 0, 0, 0, 0}, -#undef V435 -#define V435 (*(V + 435)) +#undef V435 +#define V435 (*(V + 435)) {0x14BF093, 0, 0, 0, 0}, -#undef V436 -#define V436 (*(V + 436)) +#undef V436 +#define V436 (*(V + 436)) {0x18BF093, 0, 0, 0, 0}, -#undef V437 -#define V437 (*(V + 437)) +#undef V437 +#define V437 (*(V + 437)) {0x1CBF093, 0, 0, 0, 0}, -#undef V438 -#define V438 (*(V + 438)) +#undef V438 +#define V438 (*(V + 438)) {0x20BF093, 0, 0, 0, 0}, -#undef V439 -#define V439 (*(V + 439)) +#undef V439 +#define V439 (*(V + 439)) {0x24BF093, 0, 0, 0, 0}, -#undef V440 -#define V440 (*(V + 440)) +#undef V440 +#define V440 (*(V + 440)) {0xBF093, 0, 0, 0, 0}, -#undef V441 -#define V441 (*(V + 441)) +#undef V441 +#define V441 (*(V + 441)) {0xBF026, 0, 0, 0, 0}, -#undef V442 -#define V442 (*(V + 442)) +#undef V442 +#define V442 (*(V + 442)) {0xB082F, 0, 0, 0, 0}, -#undef V443 -#define V443 (*(V + 443)) +#undef V443 +#define V443 (*(V + 443)) {0x1F001, -10743, 0, 0, 0}, -#undef V444 -#define V444 (*(V + 444)) +#undef V444 +#define V444 (*(V + 444)) {0x1F001, -3814, 0, 0, 0}, -#undef V445 -#define V445 (*(V + 445)) +#undef V445 +#define V445 (*(V + 445)) {0x1F001, -10727, 0, 0, 0}, -#undef V446 -#define V446 (*(V + 446)) +#undef V446 +#define V446 (*(V + 446)) {0x1F002, 0, -10795, -10795, 0}, -#undef V447 -#define V447 (*(V + 447)) +#undef V447 +#define V447 (*(V + 447)) {0x1F002, 0, -10792, -10792, 0}, -#undef V448 -#define V448 (*(V + 448)) +#undef V448 +#define V448 (*(V + 448)) {0x1F001, -10780, 0, 0, 0}, -#undef V449 -#define V449 (*(V + 449)) +#undef V449 +#define V449 (*(V + 449)) {0x1F001, -10749, 0, 0, 0}, -#undef V450 -#define V450 (*(V + 450)) +#undef V450 +#define V450 (*(V + 450)) {0x1F001, -10783, 0, 0, 0}, -#undef V451 -#define V451 (*(V + 451)) +#undef V451 +#define V451 (*(V + 451)) {0x1F001, -10782, 0, 0, 0}, -#undef V452 -#define V452 (*(V + 452)) +#undef V452 +#define V452 (*(V + 452)) {0x1F001, -10815, 0, 0, 0}, -#undef V453 -#define V453 (*(V + 453)) +#undef V453 +#define V453 (*(V + 453)) {0x1F002, 0, -7264, -7264, 0}, -#undef V454 -#define V454 (*(V + 454)) +#undef V454 +#define V454 (*(V + 454)) {0x1F007, 0, 0, 0, 0}, -#undef V455 -#define V455 (*(V + 455)) +#undef V455 +#define V455 (*(V + 455)) {0x1F012, 0, 0, 0, 0}, -#undef V456 -#define V456 (*(V + 456)) +#undef V456 +#define V456 (*(V + 456)) {0xF00D, 0, 0, 0, 218}, -#undef V457 -#define V457 (*(V + 457)) +#undef V457 +#define V457 (*(V + 457)) {0x1F00F, 0, 0, 0, 224}, -#undef V458 -#define V458 (*(V + 458)) +#undef V458 +#define V458 (*(V + 458)) {0x13412, 0, 0, 0, 0}, -#undef V459 -#define V459 (*(V + 459)) +#undef V459 +#define V459 (*(V + 459)) {0x1F009, 0, 0, 0, 0}, -#undef V460 -#define V460 (*(V + 460)) +#undef V460 +#define V460 (*(V + 460)) {0x1A809, 0, 0, 0, 0}, -#undef V461 -#define V461 (*(V + 461)) +#undef V461 +#define V461 (*(V + 461)) {0x500D, 0, 0, 0, 8}, -#undef V462 -#define V462 (*(V + 462)) +#undef V462 +#define V462 (*(V + 462)) {0x1A804, 0, 0, 0, 0}, -#undef V463 -#define V463 (*(V + 463)) +#undef V463 +#define V463 (*(V + 463)) {0x13409, 0, 0, 0, 0}, -#undef V464 -#define V464 (*(V + 464)) +#undef V464 +#define V464 (*(V + 464)) {0x1F008, 0, 0, 0, 0}, -#undef V465 -#define V465 (*(V + 465)) +#undef V465 +#define V465 (*(V + 465)) {0x1A808, 0, 0, 0, 0}, -#undef V466 -#define V466 (*(V + 466)) +#undef V466 +#define V466 (*(V + 466)) {0xBF02E, 0, 0, 0, 0}, -#undef V467 -#define V467 (*(V + 467)) +#undef V467 +#define V467 (*(V + 467)) {0x13408, 0, 0, 0, 0}, -#undef V468 -#define V468 (*(V + 468)) +#undef V468 +#define V468 (*(V + 468)) {0x13413, 0, 0, 0, 0}, -#undef V469 -#define V469 (*(V + 469)) +#undef V469 +#define V469 (*(V + 469)) {0x1F001, -35332, 0, 0, 0}, -#undef V470 -#define V470 (*(V + 470)) +#undef V470 +#define V470 (*(V + 470)) {0x1F032, 0, 0, 0, 0}, -#undef V471 -#define V471 (*(V + 471)) +#undef V471 +#define V471 (*(V + 471)) {0x1F001, -42280, 0, 0, 0}, -#undef V472 -#define V472 (*(V + 472)) +#undef V472 +#define V472 (*(V + 472)) {0x1F001, -42308, 0, 0, 0}, -#undef V473 -#define V473 (*(V + 473)) +#undef V473 +#define V473 (*(V + 473)) {0x1F001, -42319, 0, 0, 0}, -#undef V474 -#define V474 (*(V + 474)) +#undef V474 +#define V474 (*(V + 474)) {0x1F001, -42315, 0, 0, 0}, -#undef V475 -#define V475 (*(V + 475)) +#undef V475 +#define V475 (*(V + 475)) {0x1F001, -42305, 0, 0, 0}, -#undef V476 -#define V476 (*(V + 476)) +#undef V476 +#define V476 (*(V + 476)) {0x1F001, -42258, 0, 0, 0}, -#undef V477 -#define V477 (*(V + 477)) +#undef V477 +#define V477 (*(V + 477)) {0x1F001, -42282, 0, 0, 0}, -#undef V478 -#define V478 (*(V + 478)) +#undef V478 +#define V478 (*(V + 478)) {0x1F001, -42261, 0, 0, 0}, -#undef V479 -#define V479 (*(V + 479)) +#undef V479 +#define V479 (*(V + 479)) {0x1F001, 928, 0, 0, 0}, -#undef V480 -#define V480 (*(V + 480)) +#undef V480 +#define V480 (*(V + 480)) {0x1F002, 0, -928, -928, 0}, -#undef V481 -#define V481 (*(V + 481)) +#undef V481 +#define V481 (*(V + 481)) {0x1F002, 0, -38864, -38864, 0}, -#undef V482 -#define V482 (*(V + 482)) +#undef V482 +#define V482 (*(V + 482)) {0x1F020, 0, 0, 0, 0}, -#undef V483 -#define V483 (*(V + 483)) +#undef V483 +#define V483 (*(V + 483)) {0x1F220, 0, 0, 0, 0}, -#undef V484 -#define V484 (*(V + 484)) +#undef V484 +#define V484 (*(V + 484)) {0x1F01F, 0, 0, 0, 0}, -#undef V485 -#define V485 (*(V + 485)) +#undef V485 +#define V485 (*(V + 485)) {0x1F200, 0, 0, 0, 0}, -#undef V486 -#define V486 (*(V + 486)) +#undef V486 +#define V486 (*(V + 486)) {0x10807, 0, 0, 0, 0}, -#undef V487 -#define V487 (*(V + 487)) +#undef V487 +#define V487 (*(V + 487)) {0x20806, 0, 0, 0, 0}, -#undef V488 -#define V488 (*(V + 488)) +#undef V488 +#define V488 (*(V + 488)) {0xF00D, 0, 0, 0, 26}, -#undef V489 -#define V489 (*(V + 489)) +#undef V489 +#define V489 (*(V + 489)) {0x23406, 0, 0, 0, 0}, -#undef V490 -#define V490 (*(V + 490)) +#undef V490 +#define V490 (*(V + 490)) {0xF032, 0, 0, 0, 0}, -#undef V491 -#define V491 (*(V + 491)) +#undef V491 +#define V491 (*(V + 491)) {0x3431, 0, 0, 0, 0}, -#undef V492 -#define V492 (*(V + 492)) +#undef V492 +#define V492 (*(V + 492)) {0xB3421, 0, 0, 0, 0}, -#undef V493 -#define V493 (*(V + 493)) +#undef V493 +#define V493 (*(V + 493)) {0xB3429, 0, 0, 0, 0}, -#undef V494 -#define V494 (*(V + 494)) +#undef V494 +#define V494 (*(V + 494)) {0xB3424, 0, 0, 0, 0}, -#undef V495 -#define V495 (*(V + 495)) +#undef V495 +#define V495 (*(V + 495)) {0xB3426, 0, 0, 0, 0}, -#undef V496 -#define V496 (*(V + 496)) +#undef V496 +#define V496 (*(V + 496)) {0x7342C, 0, 0, 0, 0}, -#undef V497 -#define V497 (*(V + 497)) +#undef V497 +#define V497 (*(V + 497)) {0x5342A, 0, 0, 0, 0}, -#undef V498 -#define V498 (*(V + 498)) +#undef V498 +#define V498 (*(V + 498)) {0x43422, 0, 0, 0, 0}, -#undef V499 -#define V499 (*(V + 499)) +#undef V499 +#define V499 (*(V + 499)) {0xF11E, 0, 0, 0, 0}, -#undef V500 -#define V500 (*(V + 500)) +#undef V500 +#define V500 (*(V + 500)) {0xB3438, 0, 0, 0, 0}, -#undef V501 -#define V501 (*(V + 501)) +#undef V501 +#define V501 (*(V + 501)) {0x7342A, 0, 0, 0, 0}, -#undef V502 -#define V502 (*(V + 502)) +#undef V502 +#define V502 (*(V + 502)) {0x33490, 0, 0, 0, 0}, -#undef V503 -#define V503 (*(V + 503)) +#undef V503 +#define V503 (*(V + 503)) {0x433490, 0, 0, 0, 0}, -#undef V504 -#define V504 (*(V + 504)) +#undef V504 +#define V504 (*(V + 504)) {0x833490, 0, 0, 0, 0}, -#undef V505 -#define V505 (*(V + 505)) +#undef V505 +#define V505 (*(V + 505)) {0xC33490, 0, 0, 0, 0}, -#undef V506 -#define V506 (*(V + 506)) +#undef V506 +#define V506 (*(V + 506)) {0x1033490, 0, 0, 0, 0}, -#undef V507 -#define V507 (*(V + 507)) +#undef V507 +#define V507 (*(V + 507)) {0x1433490, 0, 0, 0, 0}, -#undef V508 -#define V508 (*(V + 508)) +#undef V508 +#define V508 (*(V + 508)) {0x1833490, 0, 0, 0, 0}, -#undef V509 -#define V509 (*(V + 509)) +#undef V509 +#define V509 (*(V + 509)) {0x1C33490, 0, 0, 0, 0}, -#undef V510 -#define V510 (*(V + 510)) +#undef V510 +#define V510 (*(V + 510)) {0x2033490, 0, 0, 0, 0}, -#undef V511 -#define V511 (*(V + 511)) +#undef V511 +#define V511 (*(V + 511)) {0x2433490, 0, 0, 0, 0}, -#undef V512 -#define V512 (*(V + 512)) +#undef V512 +#define V512 (*(V + 512)) {0x13401, 32, 0, 0, 0}, -#undef V513 -#define V513 (*(V + 513)) +#undef V513 +#define V513 (*(V + 513)) {0x13402, 0, -32, -32, 0}, -#undef V514 -#define V514 (*(V + 514)) +#undef V514 +#define V514 (*(V + 514)) {0xB342E, 0, 0, 0, 0}, -#undef V515 -#define V515 (*(V + 515)) +#undef V515 +#define V515 (*(V + 515)) {0xBF01B, 0, 0, 0, 0}, -#undef V516 -#define V516 (*(V + 516)) +#undef V516 +#define V516 (*(V + 516)) {0xBF011, 0, 0, 0, 0}, -#undef V517 -#define V517 (*(V + 517)) +#undef V517 +#define V517 (*(V + 517)) {0x3F013, 0, 0, 0, 0}, -#undef V518 -#define V518 (*(V + 518)) +#undef V518 +#define V518 (*(V + 518)) {0x1F001, 40, 0, 0, 0}, -#undef V519 -#define V519 (*(V + 519)) +#undef V519 +#define V519 (*(V + 519)) {0x1F002, 0, -40, -40, 0}, -#undef V520 -#define V520 (*(V + 520)) +#undef V520 +#define V520 (*(V + 520)) {0x2F013, 0, 0, 0, 0}, -#undef V521 -#define V521 (*(V + 521)) +#undef V521 +#define V521 (*(V + 521)) {0x2F033, 0, 0, 0, 0}, -#undef V522 -#define V522 (*(V + 522)) +#undef V522 +#define V522 (*(V + 522)) {0x42F093, 0, 0, 0, 0}, -#undef V523 -#define V523 (*(V + 523)) +#undef V523 +#define V523 (*(V + 523)) {0x82F093, 0, 0, 0, 0}, -#undef V524 -#define V524 (*(V + 524)) +#undef V524 +#define V524 (*(V + 524)) {0xC2F093, 0, 0, 0, 0}, -#undef V525 -#define V525 (*(V + 525)) +#undef V525 +#define V525 (*(V + 525)) {0x102F093, 0, 0, 0, 0}, -#undef V526 -#define V526 (*(V + 526)) +#undef V526 +#define V526 (*(V + 526)) {0x2F02C, 0, 0, 0, 0}, #undef V527 #define V527 (*(V + 527)) @@ -1645,7 +1645,7 @@ namespace { namespace NUnidataTableGenerated { #undef V546 #define V546 (*(V + 546)) {0x2F002, 0, -34, -34, 0}, - }; + }; static const NUnicode::NPrivate::TUnidataTable::TValuePtr P[][32] = { { @@ -7520,7 +7520,7 @@ namespace { namespace NUnidataTableGenerated { }; // static const NUnicode::NPrivate::TUnidataTable::TValuePtr* const Indexes[] static const size_t Size = 1114110; -}} // namespace NUnidataTableGenerated +}} // namespace NUnidataTableGenerated namespace NUnicode { namespace NPrivate { @@ -7528,8 +7528,8 @@ namespace NUnicode { static const NUnicode::NPrivate::TUnidataTable data(NUnidataTableGenerated::Indexes, NUnidataTableGenerated::Size); return data; } - } // namespace NPrivate -} // namespace NUnicode + } // namespace NPrivate +} // namespace NUnicode namespace NUnicode { namespace NPrivate { const size_t DEFAULT_KEY = 0xE001; diff --git a/util/charset/recode_result.cpp b/util/charset/recode_result.cpp index 23638027bb..1e1bbdc8f7 100644 --- a/util/charset/recode_result.cpp +++ b/util/charset/recode_result.cpp @@ -1 +1 @@ -#include "recode_result.h" +#include "recode_result.h" diff --git a/util/charset/recode_result.h b/util/charset/recode_result.h index 2c7366e7b2..ad6b901220 100644 --- a/util/charset/recode_result.h +++ b/util/charset/recode_result.h @@ -1,6 +1,6 @@ #pragma once -enum RECODE_RESULT { +enum RECODE_RESULT { RECODE_OK, RECODE_EOINPUT, RECODE_EOOUTPUT, diff --git a/util/charset/unicode_table.cpp b/util/charset/unicode_table.cpp index 574c50d9ec..e5568edcba 100644 --- a/util/charset/unicode_table.cpp +++ b/util/charset/unicode_table.cpp @@ -1 +1 @@ -#include "unicode_table.h" +#include "unicode_table.h" diff --git a/util/charset/unicode_table.h b/util/charset/unicode_table.h index 9e171b2583..3ded71933d 100644 --- a/util/charset/unicode_table.h +++ b/util/charset/unicode_table.h @@ -1,7 +1,7 @@ #pragma once -#include <util/system/yassert.h> -#include <util/system/defaults.h> +#include <util/system/yassert.h> +#include <util/system/defaults.h> #include <util/generic/typetraits.h> namespace NUnicodeTable { @@ -120,4 +120,4 @@ namespace NUnicodeTable { }; const size_t UNICODE_TABLE_SHIFT = 5; -} +} diff --git a/util/charset/unidata.cpp b/util/charset/unidata.cpp index db4dc126ab..4e0709c9fe 100644 --- a/util/charset/unidata.cpp +++ b/util/charset/unidata.cpp @@ -1 +1 @@ -#include "unidata.h" +#include "unidata.h" diff --git a/util/charset/unidata.h b/util/charset/unidata.h index 400d314186..422c83d8ce 100644 --- a/util/charset/unidata.h +++ b/util/charset/unidata.h @@ -1,71 +1,71 @@ #pragma once -#include "unicode_table.h" - -#include <util/system/defaults.h> // wchar32, ui64, ULL() - -enum WC_TYPE { // TODO move no NUnicode - Lu_UPPER = 1, // 'Ъ' - Ll_LOWER = 2, // 'ъ' - Lt_TITLE = 3, // 'Ъ' - Lm_EXTENDER = 4, // '-' - Lm_LETTER = 5, // 'ъ' - Lo_OTHER = 6, // '?' - Lo_IDEOGRAPH = 7, // '?' - Lo_KATAKANA = 8, // '?' - Lo_HIRAGANA = 9, // '?' - Lo_LEADING = 10, // '?' - Lo_VOWEL = 11, // '?' - Lo_TRAILING = 12, // '?' - - Mn_NONSPACING = 13, // '`' - Me_ENCLOSING = 14, // '`' - Mc_SPACING = 15, // '`' - - Nd_DIGIT = 16, // '9' // convert to digit - Nl_LETTER = 17, // 'X' // X,V,C,L,I ... +#include "unicode_table.h" + +#include <util/system/defaults.h> // wchar32, ui64, ULL() + +enum WC_TYPE { // TODO move no NUnicode + Lu_UPPER = 1, // 'Ъ' + Ll_LOWER = 2, // 'ъ' + Lt_TITLE = 3, // 'Ъ' + Lm_EXTENDER = 4, // '-' + Lm_LETTER = 5, // 'ъ' + Lo_OTHER = 6, // '?' + Lo_IDEOGRAPH = 7, // '?' + Lo_KATAKANA = 8, // '?' + Lo_HIRAGANA = 9, // '?' + Lo_LEADING = 10, // '?' + Lo_VOWEL = 11, // '?' + Lo_TRAILING = 12, // '?' + + Mn_NONSPACING = 13, // '`' + Me_ENCLOSING = 14, // '`' + Mc_SPACING = 15, // '`' + + Nd_DIGIT = 16, // '9' // convert to digit + Nl_LETTER = 17, // 'X' // X,V,C,L,I ... Nl_IDEOGRAPH = 18, // '?' - No_OTHER = 19, // '9' + No_OTHER = 19, // '9' - Zs_SPACE = 20, // ' ' [\40\240] SPACE ... NO-BREAK SPACE (00A0) - Zs_ZWSPACE = 21, // ' ' // nothing ? - Zl_LINE = 22, // '\n' + Zs_SPACE = 20, // ' ' [\40\240] SPACE ... NO-BREAK SPACE (00A0) + Zs_ZWSPACE = 21, // ' ' // nothing ? + Zl_LINE = 22, // '\n' Zp_PARAGRAPH = 23, // '\n' - Cc_ASCII = 24, // '\x1A' // can not happen - Cc_SPACE = 25, // '\x1A' // can not happen + Cc_ASCII = 24, // '\x1A' // can not happen + Cc_SPACE = 25, // '\x1A' // can not happen Cc_SEPARATOR = 26, // '\x1A' // can not happen - Cf_FORMAT = 27, // '\x1A' // nothing ? - Cf_JOIN = 28, // '\x1A' // nothing ? - Cf_BIDI = 29, // '\x1A' // nothing ? - Cf_ZWNBSP = 30, // '\x1A' // nothing ? - - Cn_UNASSIGNED = 0, // '?' - Co_PRIVATE = 0, // '?' - Cs_LOW = 31, // '?' - Cs_HIGH = 32, // '?' - - Pd_DASH = 33, // '-' - Pd_HYPHEN = 34, // '-' [-] HYPHEN-MINUS - Ps_START = 35, // '(' [([{] LEFT PARENTHESIS ... LEFT CURLY BRACKET - Ps_QUOTE = 36, // '"' - Pe_END = 37, // ')' [)]}] RIGHT PARENTHESIS ... RIGHT CURLY BRACKET - Pe_QUOTE = 38, // '"' - Pi_QUOTE = 39, // '"' - Pf_QUOTE = 40, // '"' + Cf_FORMAT = 27, // '\x1A' // nothing ? + Cf_JOIN = 28, // '\x1A' // nothing ? + Cf_BIDI = 29, // '\x1A' // nothing ? + Cf_ZWNBSP = 30, // '\x1A' // nothing ? + + Cn_UNASSIGNED = 0, // '?' + Co_PRIVATE = 0, // '?' + Cs_LOW = 31, // '?' + Cs_HIGH = 32, // '?' + + Pd_DASH = 33, // '-' + Pd_HYPHEN = 34, // '-' [-] HYPHEN-MINUS + Ps_START = 35, // '(' [([{] LEFT PARENTHESIS ... LEFT CURLY BRACKET + Ps_QUOTE = 36, // '"' + Pe_END = 37, // ')' [)]}] RIGHT PARENTHESIS ... RIGHT CURLY BRACKET + Pe_QUOTE = 38, // '"' + Pi_QUOTE = 39, // '"' + Pf_QUOTE = 40, // '"' Pc_CONNECTOR = 41, // '_' [_] LOW LINE - Po_OTHER = 42, // '*' [#%&*/@\] NUMBER SIGN ... REVERSE SOLIDUS - Po_QUOTE = 43, // '"' ["] QUOTATION MARK - Po_TERMINAL = 44, // '.' [!,.:;?] EXCLAMATION MARK ... QUESTION MARK - Po_EXTENDER = 45, // '-' [№] MIDDLE DOT (00B7) - Po_HYPHEN = 46, // '-' - - Sm_MATH = 47, // '=' [+<=>|~] PLUS SIGN ... TILDE - Sm_MINUS = 48, // '-' - Sc_CURRENCY = 49, // '$' [$] DOLLAR SIGN - Sk_MODIFIER = 50, // '`' [^`] CIRCUMFLEX ACCENT ... GRAVE ACCENT - So_OTHER = 51, // '°' [°] DEGREE SIGN (00B0) + Po_OTHER = 42, // '*' [#%&*/@\] NUMBER SIGN ... REVERSE SOLIDUS + Po_QUOTE = 43, // '"' ["] QUOTATION MARK + Po_TERMINAL = 44, // '.' [!,.:;?] EXCLAMATION MARK ... QUESTION MARK + Po_EXTENDER = 45, // '-' [№] MIDDLE DOT (00B7) + Po_HYPHEN = 46, // '-' + + Sm_MATH = 47, // '=' [+<=>|~] PLUS SIGN ... TILDE + Sm_MINUS = 48, // '-' + Sc_CURRENCY = 49, // '$' [$] DOLLAR SIGN + Sk_MODIFIER = 50, // '`' [^`] CIRCUMFLEX ACCENT ... GRAVE ACCENT + So_OTHER = 51, // '°' [°] DEGREE SIGN (00B0) Ps_SINGLE_QUOTE = 52, // '\'' ['] OPENING SINGLE QUOTE Pe_SINGLE_QUOTE = 53, // '\'' ['] CLOSING SINGLE QUOTE @@ -73,8 +73,8 @@ enum WC_TYPE { // TODO move no NUnicode Pf_SINGLE_QUOTE = 55, // '\'' ['] FINAL SINGLE QUOTE Po_SINGLE_QUOTE = 56, // '\'' ['] APOSTROPHE and PRIME - CCL_NUM = 57, - CCL_MASK = 0x3F, + CCL_NUM = 57, + CCL_MASK = 0x3F, IS_ASCII_XDIGIT = 1 << 6, IS_DIGIT = 1 << 7, @@ -90,13 +90,13 @@ enum WC_TYPE { // TODO move no NUnicode NFKD_QC = 1 << 14, NFKC_QC = 1 << 15, - BIDI_OFFSET = 16, - SVAL_OFFSET = 22, + BIDI_OFFSET = 16, + SVAL_OFFSET = 22, }; const size_t DEFCHAR_BUF = 58; // CCL_NUM + 1 -#define SHIFT(i) (ULL(1) << (i)) +#define SHIFT(i) (ULL(1) << (i)) namespace NUnicode { using TCombining = ui8; @@ -114,7 +114,7 @@ namespace NUnicode { using TUnidataTable = NUnicodeTable::TTable<NUnicodeTable::TSubtable<NUnicodeTable::UNICODE_TABLE_SHIFT, NUnicodeTable::TValues<TProperty>>>; const TUnidataTable& UnidataTable(); - + inline const TProperty& CharProperty(wchar32 ch) { return UnidataTable().Get(ch, DEFAULT_KEY); } @@ -126,7 +126,7 @@ namespace NUnicode { inline bool IsBidi(wchar32 ch, ui32 type) { return ((NUnicode::NPrivate::CharInfo(ch) >> BIDI_OFFSET) & 15) == type; } - } + } inline size_t UnicodeInstancesLimit() { return NPrivate::UnidataTable().Size(); @@ -142,10 +142,10 @@ namespace NUnicode { inline bool CharHasType(wchar32 ch, ui64 type_bits) { return (SHIFT(NUnicode::CharType(ch)) & type_bits) != 0; } -} +} // all usefull properties - + inline bool IsComposed(wchar32 ch) { return NUnicode::NPrivate::CharInfo(ch) & (IS_COMPAT | IS_CANON); } @@ -176,8 +176,8 @@ inline bool IsIgnorableCntrl(wchar32 ch) { } inline bool IsCntrl(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Cf_FORMAT) | SHIFT(Cf_JOIN) | SHIFT(Cf_BIDI) | SHIFT(Cf_ZWNBSP) | - SHIFT(Cc_ASCII) | SHIFT(Cc_SPACE) | SHIFT(Cc_SEPARATOR)); + SHIFT(Cf_FORMAT) | SHIFT(Cf_JOIN) | SHIFT(Cf_BIDI) | SHIFT(Cf_ZWNBSP) | + SHIFT(Cc_ASCII) | SHIFT(Cc_SPACE) | SHIFT(Cc_SEPARATOR)); } inline bool IsZerowidth(wchar32 ch) { return NUnicode::CharHasType(ch, SHIFT(Cf_FORMAT) | SHIFT(Cf_JOIN) | SHIFT(Cf_BIDI) | SHIFT(Cf_ZWNBSP) | SHIFT(Zs_ZWSPACE)); @@ -196,15 +196,15 @@ inline bool IsHyphen(wchar32 ch) { } inline bool IsQuotation(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Po_QUOTE) | SHIFT(Ps_QUOTE) | SHIFT(Pe_QUOTE) | SHIFT(Pi_QUOTE) | - SHIFT(Pf_QUOTE) | SHIFT(Po_SINGLE_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | - SHIFT(Pe_SINGLE_QUOTE) | SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); + SHIFT(Po_QUOTE) | SHIFT(Ps_QUOTE) | SHIFT(Pe_QUOTE) | SHIFT(Pi_QUOTE) | + SHIFT(Pf_QUOTE) | SHIFT(Po_SINGLE_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | + SHIFT(Pe_SINGLE_QUOTE) | SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); } inline bool IsSingleQuotation(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Po_SINGLE_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | SHIFT(Pe_SINGLE_QUOTE) | - SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); + SHIFT(Po_SINGLE_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | SHIFT(Pe_SINGLE_QUOTE) | + SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); } inline bool IsTerminal(wchar32 ch) { @@ -212,9 +212,9 @@ inline bool IsTerminal(wchar32 ch) { } inline bool IsPairedPunct(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Ps_START) | SHIFT(Pe_END) | SHIFT(Ps_QUOTE) | SHIFT(Pe_QUOTE) | - SHIFT(Pi_QUOTE) | SHIFT(Pf_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | - SHIFT(Pe_SINGLE_QUOTE) | SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); + SHIFT(Ps_START) | SHIFT(Pe_END) | SHIFT(Ps_QUOTE) | SHIFT(Pe_QUOTE) | + SHIFT(Pi_QUOTE) | SHIFT(Pf_QUOTE) | SHIFT(Ps_SINGLE_QUOTE) | + SHIFT(Pe_SINGLE_QUOTE) | SHIFT(Pi_SINGLE_QUOTE) | SHIFT(Pf_SINGLE_QUOTE)); } inline bool IsLeftPunct(wchar32 ch) { return NUnicode::CharHasType(ch, SHIFT(Ps_START) | SHIFT(Ps_QUOTE) | SHIFT(Ps_SINGLE_QUOTE)); @@ -230,7 +230,7 @@ inline bool IsNonspacing(wchar32 ch) { } inline bool IsAlphabetic(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_EXTENDER) | SHIFT(Lm_LETTER) | SHIFT(Lo_OTHER) | SHIFT(Nl_LETTER)); + SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_EXTENDER) | SHIFT(Lm_LETTER) | SHIFT(Lo_OTHER) | SHIFT(Nl_LETTER)); } inline bool IsIdeographic(wchar32 ch) { return NUnicode::CharHasType(ch, SHIFT(Lo_IDEOGRAPH) | SHIFT(Nl_IDEOGRAPH)); @@ -286,9 +286,9 @@ inline bool IsUnassigned(wchar32 ch) { inline bool IsPrivateHighSurrogate(wchar32 ch) { return NUnicode::CharHasType(ch, SHIFT(Cs_HIGH)) && (NUnicode::NPrivate::CharInfo(ch) & IS_PRIVATE); } - + // transformations - + inline wchar32 ToLower(wchar32 ch) { return static_cast<wchar32>(ch + NUnicode::NPrivate::CharProperty(ch).Lower); } @@ -303,9 +303,9 @@ inline int ToDigit(wchar32 ch) { ui32 i = NUnicode::NPrivate::CharInfo(ch); return (i & IS_DIGIT) ? static_cast<int>(i >> SVAL_OFFSET) : -1; } - + // BIDI properties - + inline bool IsBidiLeft(wchar32 ch) { return NUnicode::NPrivate::IsBidi(ch, 1); } @@ -342,7 +342,7 @@ inline bool IsBidiNeutral(wchar32 ch) { inline bool IsBidiNotappl(wchar32 ch) { return NUnicode::NPrivate::IsBidi(ch, 0); } - + inline bool IsSpace(wchar32 ch) { return IsWhitespace(ch); } @@ -357,23 +357,23 @@ inline bool IsTitle(wchar32 ch) { } inline bool IsAlpha(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_LETTER) | SHIFT(Lm_EXTENDER) | - SHIFT(Lo_OTHER) | SHIFT(Lo_IDEOGRAPH) | SHIFT(Lo_KATAKANA) | SHIFT(Lo_HIRAGANA) | - SHIFT(Lo_LEADING) | SHIFT(Lo_VOWEL) | SHIFT(Lo_TRAILING)); + SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_LETTER) | SHIFT(Lm_EXTENDER) | + SHIFT(Lo_OTHER) | SHIFT(Lo_IDEOGRAPH) | SHIFT(Lo_KATAKANA) | SHIFT(Lo_HIRAGANA) | + SHIFT(Lo_LEADING) | SHIFT(Lo_VOWEL) | SHIFT(Lo_TRAILING)); } inline bool IsAlnum(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_LETTER) | SHIFT(Lm_EXTENDER) | - SHIFT(Lo_OTHER) | SHIFT(Lo_IDEOGRAPH) | SHIFT(Lo_KATAKANA) | SHIFT(Lo_HIRAGANA) | - SHIFT(Lo_LEADING) | SHIFT(Lo_VOWEL) | SHIFT(Lo_TRAILING) | - SHIFT(Nd_DIGIT) | SHIFT(Nl_LETTER) | SHIFT(Nl_IDEOGRAPH) | SHIFT(No_OTHER)); + SHIFT(Lu_UPPER) | SHIFT(Ll_LOWER) | SHIFT(Lt_TITLE) | SHIFT(Lm_LETTER) | SHIFT(Lm_EXTENDER) | + SHIFT(Lo_OTHER) | SHIFT(Lo_IDEOGRAPH) | SHIFT(Lo_KATAKANA) | SHIFT(Lo_HIRAGANA) | + SHIFT(Lo_LEADING) | SHIFT(Lo_VOWEL) | SHIFT(Lo_TRAILING) | + SHIFT(Nd_DIGIT) | SHIFT(Nl_LETTER) | SHIFT(Nl_IDEOGRAPH) | SHIFT(No_OTHER)); } inline bool IsPunct(wchar32 ch) { return NUnicode::CharHasType(ch, - SHIFT(Pd_DASH) | - SHIFT(Pd_HYPHEN) | SHIFT(Ps_START) | SHIFT(Ps_QUOTE) | SHIFT(Pe_END) | SHIFT(Pe_QUOTE) | SHIFT(Pc_CONNECTOR) | - SHIFT(Po_OTHER) | SHIFT(Po_QUOTE) | SHIFT(Po_TERMINAL) | SHIFT(Po_EXTENDER) | SHIFT(Po_HYPHEN) | - SHIFT(Pi_QUOTE) | SHIFT(Pf_QUOTE)); + SHIFT(Pd_DASH) | + SHIFT(Pd_HYPHEN) | SHIFT(Ps_START) | SHIFT(Ps_QUOTE) | SHIFT(Pe_END) | SHIFT(Pe_QUOTE) | SHIFT(Pc_CONNECTOR) | + SHIFT(Po_OTHER) | SHIFT(Po_QUOTE) | SHIFT(Po_TERMINAL) | SHIFT(Po_EXTENDER) | SHIFT(Po_HYPHEN) | + SHIFT(Pi_QUOTE) | SHIFT(Pf_QUOTE)); } inline bool IsXdigit(wchar32 ch) { return IsHexdigit(ch); diff --git a/util/charset/ut/ya.make b/util/charset/ut/ya.make index 6526815e92..5df9abc927 100644 --- a/util/charset/ut/ya.make +++ b/util/charset/ut/ya.make @@ -1,4 +1,4 @@ -UNITTEST_FOR(util/charset) +UNITTEST_FOR(util/charset) OWNER(g:util) SUBSCRIBER(g:util-subscribers) @@ -6,7 +6,7 @@ SUBSCRIBER(g:util-subscribers) DATA(arcadia/util/charset/ut/utf8) SRCS( - utf8_ut.cpp + utf8_ut.cpp wide_ut.cpp ) diff --git a/util/charset/utf8.cpp b/util/charset/utf8.cpp index efe3a52f61..f6aebdea26 100644 --- a/util/charset/utf8.cpp +++ b/util/charset/utf8.cpp @@ -1,5 +1,5 @@ #include "unidata.h" -#include "utf8.h" +#include "utf8.h" namespace { enum class ECaseConversion { diff --git a/util/charset/utf8.h b/util/charset/utf8.h index 5039b46ae9..96f3f16400 100644 --- a/util/charset/utf8.h +++ b/util/charset/utf8.h @@ -91,7 +91,7 @@ inline RECODE_RESULT GetUTF8CharLen(size_t& n, const unsigned char* p, const uns case 3: if (p + 3 > e) { return RECODE_EOINPUT; - } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2])) { + } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2])) { return RECODE_BROKENSYMBOL; } else { n = 3; @@ -100,7 +100,7 @@ inline RECODE_RESULT GetUTF8CharLen(size_t& n, const unsigned char* p, const uns default: // actually 4 if (p + 4 > e) { return RECODE_EOINPUT; - } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2]) || !IsUTF8ContinuationByte(p[3])) { + } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2]) || !IsUTF8ContinuationByte(p[3])) { return RECODE_BROKENSYMBOL; } else { n = 4; @@ -161,18 +161,18 @@ inline RECODE_RESULT SafeReadUTF8Char(wchar32& rune, size_t& rune_len, const uns unsigned char ch = *s++; if (!IsUTF8ContinuationByte(ch)) return RECODE_BROKENSYMBOL; //[BROKENSYMBOL] in second byte - PutUTF8SixBits(_rune, ch); //[00000XXX XXYYYYYY] + PutUTF8SixBits(_rune, ch); //[00000XXX XXYYYYYY] if (_len > 2) { ch = *s++; if (!IsUTF8ContinuationByte(ch)) return RECODE_BROKENSYMBOL; //[BROKENSYMBOL] in third byte - PutUTF8SixBits(_rune, ch); //[XXXXYYYY YYZZZZZZ] + PutUTF8SixBits(_rune, ch); //[XXXXYYYY YYZZZZZZ] if (_len > 3) { ch = *s; if (!IsUTF8ContinuationByte(ch)) return RECODE_BROKENSYMBOL; //[BROKENSYMBOL] in fourth byte - PutUTF8SixBits(_rune, ch); //[XXXYY YYYYZZZZ ZZQQQQQQ] - if (_rune > 0x10FFFF) // it is not a valid Unicode code point + PutUTF8SixBits(_rune, ch); //[XXXYY YYYYZZZZ ZZQQQQQQ] + if (_rune > 0x10FFFF) // it is not a valid Unicode code point return RECODE_BROKENSYMBOL; if (_rune < 0x10000) // check for overlong encoding return RECODE_BROKENSYMBOL; @@ -215,7 +215,7 @@ Y_FORCE_INLINE RECODE_RESULT ReadUTF8CharAndAdvance(wchar32& rune, const unsigne } else { PutUTF8LeadBits(rune, *p++, 2); //[00000000 000XXXXX] PutUTF8SixBits(rune, *p++); //[00000XXX XXYYYYYY] - if (Y_UNLIKELY(rune < 0x80)) { // overlong encoding + if (Y_UNLIKELY(rune < 0x80)) { // overlong encoding p -= 2; rune = BROKEN_RUNE; return RECODE_BROKENSYMBOL; @@ -225,7 +225,7 @@ Y_FORCE_INLINE RECODE_RESULT ReadUTF8CharAndAdvance(wchar32& rune, const unsigne case 3: if (p + 3 > e) { return RECODE_EOINPUT; - } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2])) { + } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2])) { rune = BROKEN_RUNE; return RECODE_BROKENSYMBOL; } else { @@ -242,14 +242,14 @@ Y_FORCE_INLINE RECODE_RESULT ReadUTF8CharAndAdvance(wchar32& rune, const unsigne case 4: if (p + 4 > e) { return RECODE_EOINPUT; - } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2]) || !IsUTF8ContinuationByte(p[3])) { + } else if (!IsUTF8ContinuationByte(p[1]) || !IsUTF8ContinuationByte(p[2]) || !IsUTF8ContinuationByte(p[3])) { rune = BROKEN_RUNE; return RECODE_BROKENSYMBOL; } else { - PutUTF8LeadBits(rune, *p++, 4); //[00000000 00000000 00000XXX] - PutUTF8SixBits(rune, *p++); //[00000000 0000000X XXYYYYYY] - PutUTF8SixBits(rune, *p++); //[00000000 0XXXYYYY YYZZZZZZ] - PutUTF8SixBits(rune, *p++); //[000XXXYY YYYYZZZZ ZZQQQQQQ] + PutUTF8LeadBits(rune, *p++, 4); //[00000000 00000000 00000XXX] + PutUTF8SixBits(rune, *p++); //[00000000 0000000X XXYYYYYY] + PutUTF8SixBits(rune, *p++); //[00000000 0XXXYYYY YYZZZZZZ] + PutUTF8SixBits(rune, *p++); //[000XXXYY YYYYZZZZ ZZQQQQQQ] if (Y_UNLIKELY(rune < 0x10000 || rune > 0x10FFFF)) { // overlong encoding or non-valid code point p -= 4; rune = BROKEN_RUNE; @@ -375,10 +375,10 @@ TString ToLowerUTF8(const TString& s); TString ToLowerUTF8(TStringBuf s); TString ToLowerUTF8(const char* s); -inline TString ToLowerUTF8(const std::string& s) { - return ToLowerUTF8(TStringBuf(s)); -} - +inline TString ToLowerUTF8(const std::string& s) { + return ToLowerUTF8(TStringBuf(s)); +} + //! returns true, if result is not the same as input, and put it in newString //! returns false, if result is unmodified bool ToUpperUTF8Impl(const char* beg, size_t n, TString& newString); diff --git a/util/charset/wide.cpp b/util/charset/wide.cpp index a287438ddd..6f31c7b787 100644 --- a/util/charset/wide.cpp +++ b/util/charset/wide.cpp @@ -5,28 +5,28 @@ namespace { //! the constants are not zero-terminated - const wchar16 LT[] = {'&', 'l', 't', ';'}; - const wchar16 GT[] = {'&', 'g', 't', ';'}; - const wchar16 AMP[] = {'&', 'a', 'm', 'p', ';'}; - const wchar16 BR[] = {'<', 'B', 'R', '>'}; - const wchar16 QUOT[] = {'&', 'q', 'u', 'o', 't', ';'}; + const wchar16 LT[] = {'&', 'l', 't', ';'}; + const wchar16 GT[] = {'&', 'g', 't', ';'}; + const wchar16 AMP[] = {'&', 'a', 'm', 'p', ';'}; + const wchar16 BR[] = {'<', 'B', 'R', '>'}; + const wchar16 QUOT[] = {'&', 'q', 'u', 'o', 't', ';'}; - template <bool insertBr> + template <bool insertBr> inline size_t EscapedLen(wchar16 c) { switch (c) { - case '<': + case '<': return Y_ARRAY_SIZE(LT); - case '>': + case '>': return Y_ARRAY_SIZE(GT); - case '&': + case '&': return Y_ARRAY_SIZE(AMP); - case '\"': + case '\"': return Y_ARRAY_SIZE(QUOT); - default: - if (insertBr && (c == '\r' || c == '\n')) + default: + if (insertBr && (c == '\r' || c == '\n')) return Y_ARRAY_SIZE(BR); - else - return 1; + else + return 1; } } } @@ -156,7 +156,7 @@ static bool ModifySequence(TCharType*& p, const TCharType* const pe, F&& f) { return true; } - WriteSymbol(modified, p); // also moves `p` forward + WriteSymbol(modified, p); // also moves `p` forward } else { p = SkipSymbol(p, pe); } @@ -185,7 +185,7 @@ static bool ModifySequence(const TCharType*& p, const TCharType* const pe, TChar return false; } -template <class TStringType> +template <class TStringType> static void DetachAndFixPointers(TStringType& text, typename TStringType::value_type*& p, const typename TStringType::value_type*& pe) { const auto pos = p - text.data(); const auto count = pe - p; @@ -226,12 +226,12 @@ bool ToUpper(TUtf16String& text, size_t pos, size_t count) { } bool ToLower(TUtf32String& text, size_t pos, size_t count) { - const auto f = [](const wchar32 s) { return ToLower(s); }; + const auto f = [](const wchar32 s) { return ToLower(s); }; return ModifyStringSymbolwise(text, pos, count, f); } bool ToUpper(TUtf32String& text, size_t pos, size_t count) { - const auto f = [](const wchar32 s) { return ToUpper(s); }; + const auto f = [](const wchar32 s) { return ToUpper(s); }; return ModifyStringSymbolwise(text, pos, count, f); } @@ -258,7 +258,7 @@ bool ToTitle(TUtf16String& text, size_t pos, size_t count) { } } else { DetachAndFixPointers(text, p, pe); - WriteSymbol(ToTitle(ReadSymbol(p, pe)), p); // also moves `p` forward + WriteSymbol(ToTitle(ReadSymbol(p, pe)), p); // also moves `p` forward ModifySequence<false>(p, pe, toLower); return true; } @@ -274,7 +274,7 @@ bool ToTitle(TUtf32String& text, size_t pos, size_t count) { pos = pos < text.size() ? pos : text.size(); count = count < text.size() - pos ? count : text.size() - pos; - const auto toLower = [](const wchar32 s) { return ToLower(s); }; + const auto toLower = [](const wchar32 s) { return ToLower(s); }; auto* p = const_cast<wchar32*>(text.data() + pos); const auto* pe = text.data() + pos + count; @@ -412,7 +412,7 @@ bool ToLower(const wchar32* text, size_t length, wchar32* out) noexcept { // TODO(yazevnul): get rid of `text == out` case (it is probably used only in lemmer) and then // we can declare text and out as `__restrict__` Y_ASSERT(text == out || !(out >= text && out < text + length)); - const auto f = [](const wchar32 s) { return ToLower(s); }; + const auto f = [](const wchar32 s) { return ToLower(s); }; const auto* p = text; const auto* const pe = text + length; if (ModifySequence<true>(p, pe, out, f)) { @@ -424,7 +424,7 @@ bool ToLower(const wchar32* text, size_t length, wchar32* out) noexcept { bool ToUpper(const wchar32* text, size_t length, wchar32* out) noexcept { Y_ASSERT(text == out || !(out >= text && out < text + length)); - const auto f = [](const wchar32 s) { return ToUpper(s); }; + const auto f = [](const wchar32 s) { return ToUpper(s); }; const auto* p = text; const auto* const pe = text + length; if (ModifySequence<true>(p, pe, out, f)) { @@ -451,7 +451,7 @@ bool ToTitle(const wchar32* text, size_t length, wchar32* out) noexcept { } bool ToLower(wchar32* text, size_t length) noexcept { - const auto f = [](const wchar32 s) { return ToLower(s); }; + const auto f = [](const wchar32 s) { return ToLower(s); }; const auto* const textEnd = text + length; if (ModifySequence<true>(text, textEnd, f)) { ModifySequence<false>(text, textEnd, f); @@ -461,7 +461,7 @@ bool ToLower(wchar32* text, size_t length) noexcept { } bool ToUpper(wchar32* text, size_t length) noexcept { - const auto f = [](const wchar32 s) { return ToUpper(s); }; + const auto f = [](const wchar32 s) { return ToUpper(s); }; const auto* const textEnd = text + length; if (ModifySequence<true>(text, textEnd, f)) { ModifySequence<false>(text, textEnd, f); @@ -550,24 +550,24 @@ TUtf16String ToTitleRet(const TWtringBuf text, size_t pos, size_t count) { } TUtf32String ToLowerRet(const TUtf32StringBuf text, size_t pos, size_t count) { - return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { + return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { ToLower(theText, length, out); }); } TUtf32String ToUpperRet(const TUtf32StringBuf text, size_t pos, size_t count) { - return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { + return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { ToUpper(theText, length, out); }); } TUtf32String ToTitleRet(const TUtf32StringBuf text, size_t pos, size_t count) { - return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { + return ToSmthRet(text, pos, count, [](const wchar32* theText, size_t length, wchar32* out) { ToTitle(theText, length, out); }); } -template <bool insertBr> +template <bool insertBr> void EscapeHtmlChars(TUtf16String& str) { static const TUtf16String lt(LT, Y_ARRAY_SIZE(LT)); static const TUtf16String gt(GT, Y_ARRAY_SIZE(GT)); @@ -590,9 +590,9 @@ void EscapeHtmlChars(TUtf16String& str) { size_t start = 0; - for (size_t i = 0; i < cs.size(); ++i) { + for (size_t i = 0; i < cs.size(); ++i) { const TUtf16String* ent = nullptr; - switch (cs[i]) { + switch (cs[i]) { case '<': ent = < break; diff --git a/util/charset/wide.h b/util/charset/wide.h index 04e6928aab..e22d3bc05d 100644 --- a/util/charset/wide.h +++ b/util/charset/wide.h @@ -1,13 +1,13 @@ #pragma once #include "recode_result.h" -#include "unidata.h" +#include "unidata.h" #include "utf8.h" #include "wide_specific.h" - + #include <util/generic/algorithm.h> #include <util/generic/string.h> -#include <util/generic/yexception.h> +#include <util/generic/yexception.h> #include <util/memory/tempbuf.h> #include <util/system/compiler.h> #include <util/system/cpu_id.h> @@ -16,22 +16,22 @@ #include <cstring> #ifdef _sse2_ - #include <emmintrin.h> + #include <emmintrin.h> #endif -template <class T> -class TTempArray; +template <class T> +class TTempArray; using TCharTemp = TTempArray<wchar16>; - + namespace NDetail { inline TString InStringMsg(const char* s, size_t len) { return (len <= 50) ? " in string " + TString(s, len).Quote() : TString(); } - template <bool isPointer> + template <bool isPointer> struct TSelector; - template <> + template <> struct TSelector<false> { template <class T> static inline void WriteSymbol(wchar16 s, T& dest) noexcept { @@ -39,7 +39,7 @@ namespace NDetail { } }; - template <> + template <> struct TSelector<true> { template <class T> static inline void WriteSymbol(wchar16 s, T& dest) noexcept { @@ -61,7 +61,7 @@ namespace NDetail { template <class T> inline void WriteSurrogatePair(wchar32 s, T& dest) noexcept; -} +} inline wchar16* SkipSymbol(wchar16* begin, const wchar16* end) noexcept { return begin + W16SymbolSize(begin, end); @@ -197,20 +197,20 @@ inline bool WriteSymbol(wchar32 s, wchar32*& dest, const wchar32* destEnd) noexc return true; } -template <class T> +template <class T> inline void ::NDetail::WriteSurrogatePair(wchar32 s, T& dest) noexcept { - const wchar32 LEAD_OFFSET = 0xD800 - (0x10000 >> 10); + const wchar32 LEAD_OFFSET = 0xD800 - (0x10000 >> 10); Y_ASSERT(s > 0xFFFF && s < ::NUnicode::UnicodeInstancesLimit()); - - wchar16 lead = LEAD_OFFSET + (static_cast<wchar16>(s >> 10)); - wchar16 tail = 0xDC00 + static_cast<wchar16>(s & 0x3FF); + + wchar16 lead = LEAD_OFFSET + (static_cast<wchar16>(s >> 10)); + wchar16 tail = 0xDC00 + static_cast<wchar16>(s & 0x3FF); Y_ASSERT(IsW16SurrogateLead(lead)); Y_ASSERT(IsW16SurrogateTail(tail)); - - WriteSymbol(lead, dest); - WriteSymbol(tail, dest); -} - + + WriteSymbol(lead, dest); + WriteSymbol(tail, dest); +} + class TCharIterator { private: const wchar16* Begin; @@ -220,36 +220,36 @@ public: inline explicit TCharIterator(const wchar16* end) : Begin(end) , End(end) - { - } + { + } inline TCharIterator(const wchar16* begin, const wchar16* end) : Begin(begin) , End(end) - { - } - - inline TCharIterator& operator++() { + { + } + + inline TCharIterator& operator++() { Begin = SkipSymbol(Begin, End); return *this; } - inline bool operator==(const wchar16* other) const { + inline bool operator==(const wchar16* other) const { return Begin == other; } - inline bool operator!=(const wchar16* other) const { + inline bool operator!=(const wchar16* other) const { return !(*this == other); } - inline bool operator==(const TCharIterator& other) const { + inline bool operator==(const TCharIterator& other) const { return *this == other.Begin; } - inline bool operator!=(const TCharIterator& other) const { + inline bool operator!=(const TCharIterator& other) const { return *this != other.Begin; } - inline wchar32 operator*() const { + inline wchar32 operator*() const { return ReadSymbol(Begin, End); } @@ -296,7 +296,7 @@ namespace NDetail { void UTF8ToWideImplSSE41(const unsigned char*& cur, const unsigned char* last, wchar16*& dest) noexcept; void UTF8ToWideImplSSE41(const unsigned char*& cur, const unsigned char* last, wchar32*& dest) noexcept; -} +} //! @return len if robust and position where encoding stopped if not template <bool robust, typename TCharType> @@ -592,14 +592,14 @@ namespace NDetail { } #endif //_sse2_ -} +} //! returns @c true if character sequence has no symbols with value greater than 0x7F template <typename TChar> inline bool IsStringASCII(const TChar* first, const TChar* last) { return ::NDetail::DoIsStringASCII(first, last); } - + #ifdef _sse2_ template <> inline bool IsStringASCII<unsigned char>(const unsigned char* first, const unsigned char* last) { @@ -809,7 +809,7 @@ TUtf32String ToTitleRet(const TUtf32StringBuf text, size_t pos = 0, size_t count //! replaces the '<', '>' and '&' characters in string with '<', '>' and '&' respectively // insertBr=true - replace '\r' and '\n' with "<BR>" -template <bool insertBr> +template <bool insertBr> void EscapeHtmlChars(TUtf16String& str); //! returns number of characters in range. Handle surrogate pairs as one character. diff --git a/util/charset/wide_sse41.cpp b/util/charset/wide_sse41.cpp index d1f2a74851..2326424468 100644 --- a/util/charset/wide_sse41.cpp +++ b/util/charset/wide_sse41.cpp @@ -6,17 +6,17 @@ namespace NDetail { void UTF8ToWideImplSSE41(const unsigned char*&, const unsigned char*, wchar16*&) noexcept { } - void UTF8ToWideImplSSE41(const unsigned char*&, const unsigned char*, wchar32*&) noexcept { - } + void UTF8ToWideImplSSE41(const unsigned char*&, const unsigned char*, wchar32*&) noexcept { + } } #else - #include <util/system/compiler.h> + #include <util/system/compiler.h> - #include <cstring> - #include <emmintrin.h> - #include <smmintrin.h> + #include <cstring> + #include <emmintrin.h> + #include <smmintrin.h> //processes to the first error, or until less then 16 bytes left //most code taken from https://woboq.com/blog/utf-8-processing-using-simd.html @@ -40,10 +40,10 @@ static Y_FORCE_INLINE ui32 Unpack16BytesIntoUtf16IfNoSurrogats(const unsigned ch __m128i isAsciiMask = _mm_cmpgt_epi8(chunk, _mm_set1_epi8(0)); __m128i cond2 = _mm_cmplt_epi8(_mm_set1_epi8(0xc2 - 1 - 0x80), chunkSigned); - __m128i state = _mm_set1_epi8(0x0 | (char)0x80); + __m128i state = _mm_set1_epi8(0x0 | (char)0x80); __m128i cond3 = _mm_cmplt_epi8(_mm_set1_epi8(0xe0 - 1 - 0x80), chunkSigned); - state = _mm_blendv_epi8(state, _mm_set1_epi8(0x2 | (char)0xc0), cond2); + state = _mm_blendv_epi8(state, _mm_set1_epi8(0x2 | (char)0xc0), cond2); int sourceAdvance; __m128i shifts; @@ -85,20 +85,20 @@ static Y_FORCE_INLINE ui32 Unpack16BytesIntoUtf16IfNoSurrogats(const unsigned ch __m128i chunk_right = _mm_slli_si128(chunk, 1); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 1), - _mm_srli_si128(_mm_slli_epi16(shifts, 7), 1)); + _mm_srli_si128(_mm_slli_epi16(shifts, 7), 1)); chunkLow = _mm_blendv_epi8(chunk, - _mm_or_si128(chunk, _mm_and_si128(_mm_slli_epi16(chunk_right, 6), _mm_set1_epi8(0xc0))), - _mm_cmpeq_epi8(counts, _mm_set1_epi8(1))); + _mm_or_si128(chunk, _mm_and_si128(_mm_slli_epi16(chunk_right, 6), _mm_set1_epi8(0xc0))), + _mm_cmpeq_epi8(counts, _mm_set1_epi8(1))); chunkHigh = _mm_and_si128(chunk, _mm_cmpeq_epi8(counts, _mm_set1_epi8(2))); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 2), - _mm_srli_si128(_mm_slli_epi16(shifts, 6), 2)); + _mm_srli_si128(_mm_slli_epi16(shifts, 6), 2)); chunkHigh = _mm_srli_epi32(chunkHigh, 2); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 4), - _mm_srli_si128(_mm_slli_epi16(shifts, 5), 4)); + _mm_srli_si128(_mm_slli_epi16(shifts, 5), 4)); int c = _mm_extract_epi16(counts, 7); sourceAdvance = !(c & 0x0200) ? 16 : 15; @@ -107,7 +107,7 @@ static Y_FORCE_INLINE ui32 Unpack16BytesIntoUtf16IfNoSurrogats(const unsigned ch __m128i mask3 = _mm_slli_si128(cond3, 1); __m128i cond4 = _mm_cmplt_epi8(_mm_set1_epi8(0xf0 - 1 - 0x80), chunkSigned); - state = _mm_blendv_epi8(state, _mm_set1_epi8(0x3 | (char)0xe0), cond3); + state = _mm_blendv_epi8(state, _mm_set1_epi8(0x3 | (char)0xe0), cond3); // 4 bytes sequences are not vectorize. Fall back to the scalar processing if (Y_UNLIKELY(_mm_movemask_epi8(cond4))) { @@ -149,31 +149,31 @@ static Y_FORCE_INLINE ui32 Unpack16BytesIntoUtf16IfNoSurrogats(const unsigned ch __m128i chunk_right = _mm_slli_si128(chunk, 1); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 1), - _mm_srli_si128(_mm_slli_epi16(shifts, 7), 1)); + _mm_srli_si128(_mm_slli_epi16(shifts, 7), 1)); chunkLow = _mm_blendv_epi8(chunk, - _mm_or_si128(chunk, _mm_and_si128(_mm_slli_epi16(chunk_right, 6), _mm_set1_epi8(0xc0))), - _mm_cmpeq_epi8(counts, _mm_set1_epi8(1))); + _mm_or_si128(chunk, _mm_and_si128(_mm_slli_epi16(chunk_right, 6), _mm_set1_epi8(0xc0))), + _mm_cmpeq_epi8(counts, _mm_set1_epi8(1))); chunkHigh = _mm_and_si128(chunk, _mm_cmpeq_epi8(counts, _mm_set1_epi8(2))); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 2), - _mm_srli_si128(_mm_slli_epi16(shifts, 6), 2)); + _mm_srli_si128(_mm_slli_epi16(shifts, 6), 2)); chunkHigh = _mm_srli_epi32(chunkHigh, 2); shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 4), - _mm_srli_si128(_mm_slli_epi16(shifts, 5), 4)); + _mm_srli_si128(_mm_slli_epi16(shifts, 5), 4)); chunkHigh = _mm_or_si128(chunkHigh, - _mm_and_si128(_mm_and_si128(_mm_slli_epi32(chunk_right, 4), _mm_set1_epi8(0xf0)), - mask3)); + _mm_and_si128(_mm_and_si128(_mm_slli_epi32(chunk_right, 4), _mm_set1_epi8(0xf0)), + mask3)); int c = _mm_extract_epi16(counts, 7); - sourceAdvance = !(c & 0x0200) ? 16 : !(c & 0x02) ? 15 - : 14; + sourceAdvance = !(c & 0x0200) ? 16 : !(c & 0x02) ? 15 + : 14; } shifts = _mm_blendv_epi8(shifts, _mm_srli_si128(shifts, 8), - _mm_srli_si128(_mm_slli_epi16(shifts, 4), 8)); + _mm_srli_si128(_mm_slli_epi16(shifts, 4), 8)); chunkHigh = _mm_slli_si128(chunkHigh, 1); diff --git a/util/charset/wide_ut.cpp b/util/charset/wide_ut.cpp index d8f3233e73..929a72e38f 100644 --- a/util/charset/wide_ut.cpp +++ b/util/charset/wide_ut.cpp @@ -1,11 +1,11 @@ #include "utf8.h" -#include "wide.h" - +#include "wide.h" + #include <library/cpp/testing/unittest/registar.h> - + #include <util/string/reverse.h> -#include <algorithm> +#include <algorithm> namespace { //! three UTF8 encoded russian letters (A, B, V) @@ -14,12 +14,12 @@ namespace { const char asciiLatinAlphabet[] = "ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz"; const wchar16 wideLatinAlphabet[] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'G', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0}; + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'g', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 0}; const wchar16 wideCyrillicAlphabet[] = { 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, - 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x00}; + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, 0x00}; const char utf8CyrillicAlphabet[] = "\xd0\x90\xd0\x91\xd0\x92\xd0\x93\xd0\x94\xd0\x95\xd0\x96\xd0\x97" "\xd0\x98\xd0\x99\xd0\x9a\xd0\x9b\xd0\x9c\xd0\x9d\xd0\x9e\xd0\x9f" @@ -35,22 +35,22 @@ namespace { const wchar32 LEAD_BITS_MASK_4_BYTES = 0x07; wchar16 ws[] = { - 0x0009, - 0x000A, 0x2028, 0x2029, - 0x000B, - 0x000C, - 0x000D, - 0x0020, 0x1680, + 0x0009, + 0x000A, 0x2028, 0x2029, + 0x000B, + 0x000C, + 0x000D, + 0x0020, 0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x200B, 0x202F, 0x205F, 0x3000, - 0x00A0}; + 0x00A0}; const size_t CaseTestDataSize = 10; wchar32 WideStringTestData[][CaseTestDataSize] = { - {0x01C4, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10400, 0x10415, 0x10437}, // original - {0x01C6, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10428, 0x1043D, 0x10437}, // lower - {0x01C4, 0x10400, 0x10401, 0x1041F, 0x10419, 0x1C03, 0x00A0, 0x10400, 0x10415, 0x1040F}, // upper - {0x01C5, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10428, 0x1043D, 0x10437}, // title + {0x01C4, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10400, 0x10415, 0x10437}, // original + {0x01C6, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10428, 0x1043D, 0x10437}, // lower + {0x01C4, 0x10400, 0x10401, 0x1041F, 0x10419, 0x1C03, 0x00A0, 0x10400, 0x10415, 0x1040F}, // upper + {0x01C5, 0x10428, 0x10429, 0x10447, 0x10441, 0x1C03, 0x00A0, 0x10428, 0x1043D, 0x10437}, // title }; TUtf16String CreateUnicodeText() { @@ -73,7 +73,7 @@ namespace { for (int i = 0; i < len; ++i) { if (i <= 0x7F) { // ASCII characters without 0x7 and 0x1B text[i] = static_cast<wchar16>(i); - } else if (i >= 0xC0 && i <= 0xFF) { // russian characters (without YO and yo) + } else if (i >= 0xC0 && i <= 0xFF) { // russian characters (without YO and yo) text[i] = static_cast<wchar16>(i + 0x0350); // 0x0410 - 0x044F } } @@ -106,21 +106,21 @@ namespace { '\xd0', '\xb7', '\xd0', '\xb8', '\xd0', '\xb9', '\xd0', '\xba', '\xd0', '\xbb', '\xd0', '\xbc', '\xd0', '\xbd', '\xd0', '\xbe', '\xd0', '\xbf', '\xd1', '\x80', '\xd1', '\x81', '\xd1', '\x82', '\xd1', '\x83', '\xd1', '\x84', '\xd1', '\x85', '\xd1', '\x86', '\xd1', '\x87', '\xd1', '\x88', '\xd1', '\x89', '\xd1', '\x8a', '\xd1', '\x8b', '\xd1', '\x8c', '\xd1', '\x8d', '\xd1', '\x8e', - '\xd1', '\x8f'}; + '\xd1', '\x8f'}; return TString(text, Y_ARRAY_SIZE(text)); } //! use this function to dump UTF8 text into a file in case of any changes - // void DumpUTF8Text() { + // void DumpUTF8Text() { // TString s = WideToUTF8(UnicodeText); - // std::ofstream f("utf8.txt"); - // f << std::hex; - // for (int i = 0; i < (int)s.size(); ++i) { - // f << "0x" << std::setw(2) << std::setfill('0') << (int)(ui8)s[i] << ", "; - // if ((i + 1) % 16 == 0) - // f << std::endl; - // } - // } + // std::ofstream f("utf8.txt"); + // f << std::hex; + // for (int i = 0; i < (int)s.size(); ++i) { + // f << "0x" << std::setw(2) << std::setfill('0') << (int)(ui8)s[i] << ", "; + // if ((i + 1) % 16 == 0) + // f << std::endl; + // } + // } void CheckRecodeOK(wchar32 expected, unsigned char* first, size_t n) { wchar32 w = 0; @@ -160,7 +160,7 @@ namespace { } } -class TConversionTest: public TTestBase { +class TConversionTest: public TTestBase { private: //! @note every of the text can have zeros in the middle const TUtf16String UnicodeText_; @@ -168,15 +168,15 @@ private: private: UNIT_TEST_SUITE(TConversionTest); - UNIT_TEST(TestReadUTF8Char); - UNIT_TEST(TestGetUTF8CharLen); - UNIT_TEST(TestWriteUTF8Char); - UNIT_TEST(TestUTF8ToWide); - UNIT_TEST(TestWideToUTF8); - UNIT_TEST(TestGetNumOfUTF8Chars); - UNIT_TEST(TestSubstrUTF8); - UNIT_TEST(TestUnicodeCase); - UNIT_TEST(TestUnicodeDetails); + UNIT_TEST(TestReadUTF8Char); + UNIT_TEST(TestGetUTF8CharLen); + UNIT_TEST(TestWriteUTF8Char); + UNIT_TEST(TestUTF8ToWide); + UNIT_TEST(TestWideToUTF8); + UNIT_TEST(TestGetNumOfUTF8Chars); + UNIT_TEST(TestSubstrUTF8); + UNIT_TEST(TestUnicodeCase); + UNIT_TEST(TestUnicodeDetails); UNIT_TEST(TestHexConversion); UNIT_TEST_SUITE_END(); @@ -475,7 +475,7 @@ void TConversionTest::TestUTF8ToWide() { UNIT_ASSERT_VALUES_EQUAL(w[i], UnicodeText_[i]); } - wchar16 buffer[4] = {0}; + wchar16 buffer[4] = {0}; size_t written = 0; // the function must extract 2 symbols only bool result = UTF8ToWide(utext, 5, buffer, written); @@ -495,24 +495,24 @@ void TConversionTest::TestUTF8ToWide() { UNIT_ASSERT(buffer[2] == 0x0000); UNIT_ASSERT(buffer[3] == 0x0000); UNIT_ASSERT(written == 0); - + w = UTF8ToWide(asciiLatinAlphabet, strlen(asciiLatinAlphabet)); UNIT_ASSERT(w == wideLatinAlphabet); w = UTF8ToWide(utf8CyrillicAlphabet, strlen(utf8CyrillicAlphabet)); UNIT_ASSERT(w == wideCyrillicAlphabet); const char* utf8NonBMP = "\xf4\x80\x89\x84\xf4\x80\x89\x87\xf4\x80\x88\xba"; - wchar16 wNonBMPDummy[] = {0xDBC0, 0xDE44, 0xDBC0, 0xDE47, 0xDBC0, 0xDE3A}; + wchar16 wNonBMPDummy[] = {0xDBC0, 0xDE44, 0xDBC0, 0xDE47, 0xDBC0, 0xDE3A}; TestSurrogates(utf8NonBMP, wNonBMPDummy, Y_ARRAY_SIZE(wNonBMPDummy)); const char* utf8NonBMP2 = "ab\xf4\x80\x89\x87n"; - wchar16 wNonBMPDummy2[] = {'a', 'b', 0xDBC0, 0xDE47, 'n'}; + wchar16 wNonBMPDummy2[] = {'a', 'b', 0xDBC0, 0xDE47, 'n'}; TestSurrogates(utf8NonBMP2, wNonBMPDummy2, Y_ARRAY_SIZE(wNonBMPDummy2)); UNIT_ASSERT_VALUES_EQUAL(WideToUTF8(UTF8ToWide(WideToUTF8(UTF8ToWide<true>( - "m\xFB\xB2\xA5\xAA\xAFyeuse.sexwebcamz.com")))), + "m\xFB\xB2\xA5\xAA\xAFyeuse.sexwebcamz.com")))), TString( - "m\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBDyeuse.sexwebcamz.com")); + "m\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBD\xEF\xBF\xBDyeuse.sexwebcamz.com")); } void TConversionTest::TestWideToUTF8() { @@ -520,7 +520,7 @@ void TConversionTest::TestWideToUTF8() { size_t len = 0; for (TUtf16String::const_iterator i = UnicodeText_.begin(), ie = UnicodeText_.end(); i != ie; ++i) { len += UTF8RuneLenByUCS(*i); - } + } UNIT_ASSERT(s.size() == Utf8Text_.size()); UNIT_ASSERT(s.size() == len); @@ -579,16 +579,16 @@ void TConversionTest::TestUnicodeDetails() { } } -class TWideUtilTest: public TTestBase { +class TWideUtilTest: public TTestBase { UNIT_TEST_SUITE(TWideUtilTest); - UNIT_TEST(TestCollapse); - UNIT_TEST(TestCollapseBuffer); - UNIT_TEST(TestStrip); - UNIT_TEST(TestIsSpace); - UNIT_TEST(TestEscapeHtmlChars); - UNIT_TEST(TestToLower); - UNIT_TEST(TestToUpper); - UNIT_TEST(TestWideString); + UNIT_TEST(TestCollapse); + UNIT_TEST(TestCollapseBuffer); + UNIT_TEST(TestStrip); + UNIT_TEST(TestIsSpace); + UNIT_TEST(TestEscapeHtmlChars); + UNIT_TEST(TestToLower); + UNIT_TEST(TestToUpper); + UNIT_TEST(TestWideString); UNIT_TEST(TestCountWideChars); UNIT_TEST(TestIsValidUTF16); UNIT_TEST(TestIsStringASCII); @@ -814,21 +814,21 @@ public: EscapeHtmlChars<false>(w); switch (c) { - case '<': + case '<': UNIT_ASSERT(w == ASCIIToWide("<")); - break; - case '>': + break; + case '>': UNIT_ASSERT(w == ASCIIToWide(">")); - break; - case '&': + break; + case '&': UNIT_ASSERT(w == ASCIIToWide("&")); - break; - case '"': + break; + case '"': UNIT_ASSERT(w == ASCIIToWide(""")); - break; - default: + break; + default: UNIT_ASSERT(w == TUtf16String(1, c)); - break; + break; } } @@ -837,25 +837,25 @@ public: EscapeHtmlChars<true>(w); switch (c) { - case '<': + case '<': UNIT_ASSERT(w == ASCIIToWide("<")); - break; - case '>': + break; + case '>': UNIT_ASSERT(w == ASCIIToWide(">")); - break; - case '&': + break; + case '&': UNIT_ASSERT(w == ASCIIToWide("&")); - break; - case '"': + break; + case '"': UNIT_ASSERT(w == ASCIIToWide(""")); - break; - case '\r': - case '\n': + break; + case '\r': + case '\n': UNIT_ASSERT(w == ASCIIToWide("<BR>")); - break; - default: + break; + default: UNIT_ASSERT(w == TUtf16String(1, c)); - break; + break; } } } @@ -863,7 +863,7 @@ public: void TestToLower() { const size_t n = 32; wchar16 upperCase[n]; - std::copy(wideCyrillicAlphabet, wideCyrillicAlphabet + n, upperCase); + std::copy(wideCyrillicAlphabet, wideCyrillicAlphabet + n, upperCase); ToLower(upperCase, n); UNIT_ASSERT(TWtringBuf(upperCase, n) == TWtringBuf(wideCyrillicAlphabet + n, n)); } @@ -871,7 +871,7 @@ public: void TestToUpper() { const size_t n = 32; wchar16 lowerCase[n]; - std::copy(wideCyrillicAlphabet + n, wideCyrillicAlphabet + n * 2, lowerCase); + std::copy(wideCyrillicAlphabet + n, wideCyrillicAlphabet + n * 2, lowerCase); ToUpper(lowerCase, n); UNIT_ASSERT(TWtringBuf(lowerCase, n) == TWtringBuf(wideCyrillicAlphabet, n)); } @@ -908,7 +908,7 @@ public: UNIT_ASSERT(temp == title); TVector<wchar32> buffer(WideStringTestData[0], WideStringTestData[0] + CaseTestDataSize); - std::reverse(buffer.begin(), buffer.end()); + std::reverse(buffer.begin(), buffer.end()); const TUtf16String reversed = UTF32ToWide(buffer.data(), buffer.size()); temp = original; @@ -988,7 +988,7 @@ public: UNIT_ASSERT(IsLowerWord(TWtringBuf())); UNIT_ASSERT(IsLowerWord(UTF8ToWide(""))); UNIT_ASSERT(IsLowerWord(UTF8ToWide("test"))); - UNIT_ASSERT(IsLowerWord(UTF8ToWide("тест"))); // "тест" is "test" in russian (cyrrilic) + UNIT_ASSERT(IsLowerWord(UTF8ToWide("тест"))); // "тест" is "test" in russian (cyrrilic) UNIT_ASSERT(!IsLowerWord(UTF8ToWide("тест тест"))); UNIT_ASSERT(!IsLowerWord(UTF8ToWide("тест100500"))); @@ -1043,7 +1043,7 @@ public: UNIT_ASSERT(IsLower(TWtringBuf())); UNIT_ASSERT(IsLower(UTF8ToWide(""))); UNIT_ASSERT(IsLower(UTF8ToWide("test"))); - UNIT_ASSERT(IsLower(UTF8ToWide("тест"))); // "тест" is "test" in russian (cyrrilic) + UNIT_ASSERT(IsLower(UTF8ToWide("тест"))); // "тест" is "test" in russian (cyrrilic) UNIT_ASSERT(IsLower(UTF8ToWide("тест тест"))); UNIT_ASSERT(IsLower(UTF8ToWide("тест100500"))); @@ -1728,7 +1728,7 @@ public: { auto s = UTF8ToWide("теСт"); const auto copy = s; - const auto title = UTF8ToWide("теСТ"); + const auto title = UTF8ToWide("теСТ"); UNIT_ASSERT(ToTitle(s, 3, 100500)); UNIT_ASSERT(s == title); diff --git a/util/charset/ya.make b/util/charset/ya.make index 26d38cb10b..bee8891f7c 100644 --- a/util/charset/ya.make +++ b/util/charset/ya.make @@ -1,4 +1,4 @@ -LIBRARY() +LIBRARY() OWNER(g:util) SUBSCRIBER(g:util-subscribers) @@ -9,13 +9,13 @@ IF (TSTRING_IS_STD_STRING) CFLAGS(GLOBAL -DTSTRING_IS_STD_STRING) ENDIF() -JOIN_SRCS( - all_charset.cpp - generated/unidata.cpp - recode_result.cpp - unicode_table.cpp - unidata.cpp - utf8.cpp +JOIN_SRCS( + all_charset.cpp + generated/unidata.cpp + recode_result.cpp + unicode_table.cpp + unidata.cpp + utf8.cpp wide.cpp ) |