From 0b2780755ebd2273a3089403e892d5d3e404793f Mon Sep 17 00:00:00 2001 From: Patrik Svensson Date: Wed, 15 Nov 2023 00:00:32 +0100 Subject: [PATCH] Add Unicode 15.1 support --- src/Wcwidth/Tables/WideTable.Generated.cs | 128 ++++++++ src/Wcwidth/Tables/ZeroTable.Generated.cs | 359 ++++++++++++++++++++++ src/Wcwidth/Unicode.cs | 6 + src/Wcwidth/UnicodeCalculator.cs | 2 +- 4 files changed, 494 insertions(+), 1 deletion(-) diff --git a/src/Wcwidth/Tables/WideTable.Generated.cs b/src/Wcwidth/Tables/WideTable.Generated.cs index 752673a..fd54091 100644 --- a/src/Wcwidth/Tables/WideTable.Generated.cs +++ b/src/Wcwidth/Tables/WideTable.Generated.cs @@ -35,6 +35,7 @@ internal static partial class WideTable Unicode.Version_13_0_0 => Unicode_13_0_0(), Unicode.Version_14_0_0 => Unicode_14_0_0(), Unicode.Version_15_0_0 => Unicode_15_0_0(), + Unicode.Version_15_1_0 => Unicode_15_1_0(), _ => throw new InvalidOperationException("Unknown Unicode version"), }; } @@ -1424,5 +1425,132 @@ internal static partial class WideTable { 0x030000, 0x03FFFD }, }; } + + private static uint[,] Unicode_15_1_0() + { + return new uint[,] + { + { 0x001100, 0x00115F }, + { 0x00231A, 0x00231B }, + { 0x002329, 0x00232A }, + { 0x0023E9, 0x0023EC }, + { 0x0023F0, 0x0023F0 }, + { 0x0023F3, 0x0023F3 }, + { 0x0025FD, 0x0025FE }, + { 0x002614, 0x002615 }, + { 0x002648, 0x002653 }, + { 0x00267F, 0x00267F }, + { 0x002693, 0x002693 }, + { 0x0026A1, 0x0026A1 }, + { 0x0026AA, 0x0026AB }, + { 0x0026BD, 0x0026BE }, + { 0x0026C4, 0x0026C5 }, + { 0x0026CE, 0x0026CE }, + { 0x0026D4, 0x0026D4 }, + { 0x0026EA, 0x0026EA }, + { 0x0026F2, 0x0026F3 }, + { 0x0026F5, 0x0026F5 }, + { 0x0026FA, 0x0026FA }, + { 0x0026FD, 0x0026FD }, + { 0x002705, 0x002705 }, + { 0x00270A, 0x00270B }, + { 0x002728, 0x002728 }, + { 0x00274C, 0x00274C }, + { 0x00274E, 0x00274E }, + { 0x002753, 0x002755 }, + { 0x002757, 0x002757 }, + { 0x002795, 0x002797 }, + { 0x0027B0, 0x0027B0 }, + { 0x0027BF, 0x0027BF }, + { 0x002B1B, 0x002B1C }, + { 0x002B50, 0x002B50 }, + { 0x002B55, 0x002B55 }, + { 0x002E80, 0x002E99 }, + { 0x002E9B, 0x002EF3 }, + { 0x002F00, 0x002FD5 }, + { 0x002FF0, 0x00303E }, + { 0x003041, 0x003096 }, + { 0x003099, 0x0030FF }, + { 0x003105, 0x00312F }, + { 0x003131, 0x00318E }, + { 0x003190, 0x0031E3 }, + { 0x0031EF, 0x00321E }, + { 0x003220, 0x003247 }, + { 0x003250, 0x004DBF }, + { 0x004E00, 0x00A48C }, + { 0x00A490, 0x00A4C6 }, + { 0x00A960, 0x00A97C }, + { 0x00AC00, 0x00D7A3 }, + { 0x00F900, 0x00FAFF }, + { 0x00FE10, 0x00FE19 }, + { 0x00FE30, 0x00FE52 }, + { 0x00FE54, 0x00FE66 }, + { 0x00FE68, 0x00FE6B }, + { 0x00FF01, 0x00FF60 }, + { 0x00FFE0, 0x00FFE6 }, + { 0x016FE0, 0x016FE4 }, + { 0x016FF0, 0x016FF1 }, + { 0x017000, 0x0187F7 }, + { 0x018800, 0x018CD5 }, + { 0x018D00, 0x018D08 }, + { 0x01AFF0, 0x01AFF3 }, + { 0x01AFF5, 0x01AFFB }, + { 0x01AFFD, 0x01AFFE }, + { 0x01B000, 0x01B122 }, + { 0x01B132, 0x01B132 }, + { 0x01B150, 0x01B152 }, + { 0x01B155, 0x01B155 }, + { 0x01B164, 0x01B167 }, + { 0x01B170, 0x01B2FB }, + { 0x01F004, 0x01F004 }, + { 0x01F0CF, 0x01F0CF }, + { 0x01F18E, 0x01F18E }, + { 0x01F191, 0x01F19A }, + { 0x01F200, 0x01F202 }, + { 0x01F210, 0x01F23B }, + { 0x01F240, 0x01F248 }, + { 0x01F250, 0x01F251 }, + { 0x01F260, 0x01F265 }, + { 0x01F300, 0x01F320 }, + { 0x01F32D, 0x01F335 }, + { 0x01F337, 0x01F37C }, + { 0x01F37E, 0x01F393 }, + { 0x01F3A0, 0x01F3CA }, + { 0x01F3CF, 0x01F3D3 }, + { 0x01F3E0, 0x01F3F0 }, + { 0x01F3F4, 0x01F3F4 }, + { 0x01F3F8, 0x01F43E }, + { 0x01F440, 0x01F440 }, + { 0x01F442, 0x01F4FC }, + { 0x01F4FF, 0x01F53D }, + { 0x01F54B, 0x01F54E }, + { 0x01F550, 0x01F567 }, + { 0x01F57A, 0x01F57A }, + { 0x01F595, 0x01F596 }, + { 0x01F5A4, 0x01F5A4 }, + { 0x01F5FB, 0x01F64F }, + { 0x01F680, 0x01F6C5 }, + { 0x01F6CC, 0x01F6CC }, + { 0x01F6D0, 0x01F6D2 }, + { 0x01F6D5, 0x01F6D7 }, + { 0x01F6DC, 0x01F6DF }, + { 0x01F6EB, 0x01F6EC }, + { 0x01F6F4, 0x01F6FC }, + { 0x01F7E0, 0x01F7EB }, + { 0x01F7F0, 0x01F7F0 }, + { 0x01F90C, 0x01F93A }, + { 0x01F93C, 0x01F945 }, + { 0x01F947, 0x01F9FF }, + { 0x01FA70, 0x01FA7C }, + { 0x01FA80, 0x01FA88 }, + { 0x01FA90, 0x01FABD }, + { 0x01FABF, 0x01FAC5 }, + { 0x01FACE, 0x01FADB }, + { 0x01FAE0, 0x01FAE8 }, + { 0x01FAF0, 0x01FAF8 }, + { 0x020000, 0x02FFFD }, + { 0x030000, 0x03FFFD }, + }; + } } } diff --git a/src/Wcwidth/Tables/ZeroTable.Generated.cs b/src/Wcwidth/Tables/ZeroTable.Generated.cs index 8ff0237..a1c9ff4 100644 --- a/src/Wcwidth/Tables/ZeroTable.Generated.cs +++ b/src/Wcwidth/Tables/ZeroTable.Generated.cs @@ -35,6 +35,7 @@ internal static partial class ZeroTable Unicode.Version_13_0_0 => Unicode_13_0_0(), Unicode.Version_14_0_0 => Unicode_14_0_0(), Unicode.Version_15_0_0 => Unicode_15_0_0(), + Unicode.Version_15_1_0 => Unicode_15_1_0(), _ => throw new InvalidOperationException("Unknown Unicode version"), }; } @@ -4787,5 +4788,363 @@ internal static partial class ZeroTable { 0x0E0100, 0x0E01EF }, }; } + + private static uint[,] Unicode_15_1_0() + { + return new uint[,] + { + { 0x000300, 0x00036F }, + { 0x000483, 0x000487 }, + { 0x000488, 0x000489 }, + { 0x000591, 0x0005BD }, + { 0x0005BF, 0x0005BF }, + { 0x0005C1, 0x0005C2 }, + { 0x0005C4, 0x0005C5 }, + { 0x0005C7, 0x0005C7 }, + { 0x000610, 0x00061A }, + { 0x00064B, 0x00065F }, + { 0x000670, 0x000670 }, + { 0x0006D6, 0x0006DC }, + { 0x0006DF, 0x0006E4 }, + { 0x0006E7, 0x0006E8 }, + { 0x0006EA, 0x0006ED }, + { 0x000711, 0x000711 }, + { 0x000730, 0x00074A }, + { 0x0007A6, 0x0007B0 }, + { 0x0007EB, 0x0007F3 }, + { 0x0007FD, 0x0007FD }, + { 0x000816, 0x000819 }, + { 0x00081B, 0x000823 }, + { 0x000825, 0x000827 }, + { 0x000829, 0x00082D }, + { 0x000859, 0x00085B }, + { 0x000898, 0x00089F }, + { 0x0008CA, 0x0008E1 }, + { 0x0008E3, 0x000902 }, + { 0x00093A, 0x00093A }, + { 0x00093C, 0x00093C }, + { 0x000941, 0x000948 }, + { 0x00094D, 0x00094D }, + { 0x000951, 0x000957 }, + { 0x000962, 0x000963 }, + { 0x000981, 0x000981 }, + { 0x0009BC, 0x0009BC }, + { 0x0009C1, 0x0009C4 }, + { 0x0009CD, 0x0009CD }, + { 0x0009E2, 0x0009E3 }, + { 0x0009FE, 0x0009FE }, + { 0x000A01, 0x000A02 }, + { 0x000A3C, 0x000A3C }, + { 0x000A41, 0x000A42 }, + { 0x000A47, 0x000A48 }, + { 0x000A4B, 0x000A4D }, + { 0x000A51, 0x000A51 }, + { 0x000A70, 0x000A71 }, + { 0x000A75, 0x000A75 }, + { 0x000A81, 0x000A82 }, + { 0x000ABC, 0x000ABC }, + { 0x000AC1, 0x000AC5 }, + { 0x000AC7, 0x000AC8 }, + { 0x000ACD, 0x000ACD }, + { 0x000AE2, 0x000AE3 }, + { 0x000AFA, 0x000AFF }, + { 0x000B01, 0x000B01 }, + { 0x000B3C, 0x000B3C }, + { 0x000B3F, 0x000B3F }, + { 0x000B41, 0x000B44 }, + { 0x000B4D, 0x000B4D }, + { 0x000B55, 0x000B56 }, + { 0x000B62, 0x000B63 }, + { 0x000B82, 0x000B82 }, + { 0x000BC0, 0x000BC0 }, + { 0x000BCD, 0x000BCD }, + { 0x000C00, 0x000C00 }, + { 0x000C04, 0x000C04 }, + { 0x000C3C, 0x000C3C }, + { 0x000C3E, 0x000C40 }, + { 0x000C46, 0x000C48 }, + { 0x000C4A, 0x000C4D }, + { 0x000C55, 0x000C56 }, + { 0x000C62, 0x000C63 }, + { 0x000C81, 0x000C81 }, + { 0x000CBC, 0x000CBC }, + { 0x000CBF, 0x000CBF }, + { 0x000CC6, 0x000CC6 }, + { 0x000CCC, 0x000CCD }, + { 0x000CE2, 0x000CE3 }, + { 0x000D00, 0x000D01 }, + { 0x000D3B, 0x000D3C }, + { 0x000D41, 0x000D44 }, + { 0x000D4D, 0x000D4D }, + { 0x000D62, 0x000D63 }, + { 0x000D81, 0x000D81 }, + { 0x000DCA, 0x000DCA }, + { 0x000DD2, 0x000DD4 }, + { 0x000DD6, 0x000DD6 }, + { 0x000E31, 0x000E31 }, + { 0x000E34, 0x000E3A }, + { 0x000E47, 0x000E4E }, + { 0x000EB1, 0x000EB1 }, + { 0x000EB4, 0x000EBC }, + { 0x000EC8, 0x000ECE }, + { 0x000F18, 0x000F19 }, + { 0x000F35, 0x000F35 }, + { 0x000F37, 0x000F37 }, + { 0x000F39, 0x000F39 }, + { 0x000F71, 0x000F7E }, + { 0x000F80, 0x000F84 }, + { 0x000F86, 0x000F87 }, + { 0x000F8D, 0x000F97 }, + { 0x000F99, 0x000FBC }, + { 0x000FC6, 0x000FC6 }, + { 0x00102D, 0x001030 }, + { 0x001032, 0x001037 }, + { 0x001039, 0x00103A }, + { 0x00103D, 0x00103E }, + { 0x001058, 0x001059 }, + { 0x00105E, 0x001060 }, + { 0x001071, 0x001074 }, + { 0x001082, 0x001082 }, + { 0x001085, 0x001086 }, + { 0x00108D, 0x00108D }, + { 0x00109D, 0x00109D }, + { 0x00135D, 0x00135F }, + { 0x001712, 0x001714 }, + { 0x001732, 0x001733 }, + { 0x001752, 0x001753 }, + { 0x001772, 0x001773 }, + { 0x0017B4, 0x0017B5 }, + { 0x0017B7, 0x0017BD }, + { 0x0017C6, 0x0017C6 }, + { 0x0017C9, 0x0017D3 }, + { 0x0017DD, 0x0017DD }, + { 0x00180B, 0x00180D }, + { 0x00180F, 0x00180F }, + { 0x001885, 0x001886 }, + { 0x0018A9, 0x0018A9 }, + { 0x001920, 0x001922 }, + { 0x001927, 0x001928 }, + { 0x001932, 0x001932 }, + { 0x001939, 0x00193B }, + { 0x001A17, 0x001A18 }, + { 0x001A1B, 0x001A1B }, + { 0x001A56, 0x001A56 }, + { 0x001A58, 0x001A5E }, + { 0x001A60, 0x001A60 }, + { 0x001A62, 0x001A62 }, + { 0x001A65, 0x001A6C }, + { 0x001A73, 0x001A7C }, + { 0x001A7F, 0x001A7F }, + { 0x001AB0, 0x001ABD }, + { 0x001ABE, 0x001ABE }, + { 0x001ABF, 0x001ACE }, + { 0x001B00, 0x001B03 }, + { 0x001B34, 0x001B34 }, + { 0x001B36, 0x001B3A }, + { 0x001B3C, 0x001B3C }, + { 0x001B42, 0x001B42 }, + { 0x001B6B, 0x001B73 }, + { 0x001B80, 0x001B81 }, + { 0x001BA2, 0x001BA5 }, + { 0x001BA8, 0x001BA9 }, + { 0x001BAB, 0x001BAD }, + { 0x001BE6, 0x001BE6 }, + { 0x001BE8, 0x001BE9 }, + { 0x001BED, 0x001BED }, + { 0x001BEF, 0x001BF1 }, + { 0x001C2C, 0x001C33 }, + { 0x001C36, 0x001C37 }, + { 0x001CD0, 0x001CD2 }, + { 0x001CD4, 0x001CE0 }, + { 0x001CE2, 0x001CE8 }, + { 0x001CED, 0x001CED }, + { 0x001CF4, 0x001CF4 }, + { 0x001CF8, 0x001CF9 }, + { 0x001DC0, 0x001DFF }, + { 0x0020D0, 0x0020DC }, + { 0x0020DD, 0x0020E0 }, + { 0x0020E1, 0x0020E1 }, + { 0x0020E2, 0x0020E4 }, + { 0x0020E5, 0x0020F0 }, + { 0x002CEF, 0x002CF1 }, + { 0x002D7F, 0x002D7F }, + { 0x002DE0, 0x002DFF }, + { 0x00302A, 0x00302D }, + { 0x003099, 0x00309A }, + { 0x00A66F, 0x00A66F }, + { 0x00A670, 0x00A672 }, + { 0x00A674, 0x00A67D }, + { 0x00A69E, 0x00A69F }, + { 0x00A6F0, 0x00A6F1 }, + { 0x00A802, 0x00A802 }, + { 0x00A806, 0x00A806 }, + { 0x00A80B, 0x00A80B }, + { 0x00A825, 0x00A826 }, + { 0x00A82C, 0x00A82C }, + { 0x00A8C4, 0x00A8C5 }, + { 0x00A8E0, 0x00A8F1 }, + { 0x00A8FF, 0x00A8FF }, + { 0x00A926, 0x00A92D }, + { 0x00A947, 0x00A951 }, + { 0x00A980, 0x00A982 }, + { 0x00A9B3, 0x00A9B3 }, + { 0x00A9B6, 0x00A9B9 }, + { 0x00A9BC, 0x00A9BD }, + { 0x00A9E5, 0x00A9E5 }, + { 0x00AA29, 0x00AA2E }, + { 0x00AA31, 0x00AA32 }, + { 0x00AA35, 0x00AA36 }, + { 0x00AA43, 0x00AA43 }, + { 0x00AA4C, 0x00AA4C }, + { 0x00AA7C, 0x00AA7C }, + { 0x00AAB0, 0x00AAB0 }, + { 0x00AAB2, 0x00AAB4 }, + { 0x00AAB7, 0x00AAB8 }, + { 0x00AABE, 0x00AABF }, + { 0x00AAC1, 0x00AAC1 }, + { 0x00AAEC, 0x00AAED }, + { 0x00AAF6, 0x00AAF6 }, + { 0x00ABE5, 0x00ABE5 }, + { 0x00ABE8, 0x00ABE8 }, + { 0x00ABED, 0x00ABED }, + { 0x00FB1E, 0x00FB1E }, + { 0x00FE00, 0x00FE0F }, + { 0x00FE20, 0x00FE2F }, + { 0x0101FD, 0x0101FD }, + { 0x0102E0, 0x0102E0 }, + { 0x010376, 0x01037A }, + { 0x010A01, 0x010A03 }, + { 0x010A05, 0x010A06 }, + { 0x010A0C, 0x010A0F }, + { 0x010A38, 0x010A3A }, + { 0x010A3F, 0x010A3F }, + { 0x010AE5, 0x010AE6 }, + { 0x010D24, 0x010D27 }, + { 0x010EAB, 0x010EAC }, + { 0x010EFD, 0x010EFF }, + { 0x010F46, 0x010F50 }, + { 0x010F82, 0x010F85 }, + { 0x011001, 0x011001 }, + { 0x011038, 0x011046 }, + { 0x011070, 0x011070 }, + { 0x011073, 0x011074 }, + { 0x01107F, 0x011081 }, + { 0x0110B3, 0x0110B6 }, + { 0x0110B9, 0x0110BA }, + { 0x0110C2, 0x0110C2 }, + { 0x011100, 0x011102 }, + { 0x011127, 0x01112B }, + { 0x01112D, 0x011134 }, + { 0x011173, 0x011173 }, + { 0x011180, 0x011181 }, + { 0x0111B6, 0x0111BE }, + { 0x0111C9, 0x0111CC }, + { 0x0111CF, 0x0111CF }, + { 0x01122F, 0x011231 }, + { 0x011234, 0x011234 }, + { 0x011236, 0x011237 }, + { 0x01123E, 0x01123E }, + { 0x011241, 0x011241 }, + { 0x0112DF, 0x0112DF }, + { 0x0112E3, 0x0112EA }, + { 0x011300, 0x011301 }, + { 0x01133B, 0x01133C }, + { 0x011340, 0x011340 }, + { 0x011366, 0x01136C }, + { 0x011370, 0x011374 }, + { 0x011438, 0x01143F }, + { 0x011442, 0x011444 }, + { 0x011446, 0x011446 }, + { 0x01145E, 0x01145E }, + { 0x0114B3, 0x0114B8 }, + { 0x0114BA, 0x0114BA }, + { 0x0114BF, 0x0114C0 }, + { 0x0114C2, 0x0114C3 }, + { 0x0115B2, 0x0115B5 }, + { 0x0115BC, 0x0115BD }, + { 0x0115BF, 0x0115C0 }, + { 0x0115DC, 0x0115DD }, + { 0x011633, 0x01163A }, + { 0x01163D, 0x01163D }, + { 0x01163F, 0x011640 }, + { 0x0116AB, 0x0116AB }, + { 0x0116AD, 0x0116AD }, + { 0x0116B0, 0x0116B5 }, + { 0x0116B7, 0x0116B7 }, + { 0x01171D, 0x01171F }, + { 0x011722, 0x011725 }, + { 0x011727, 0x01172B }, + { 0x01182F, 0x011837 }, + { 0x011839, 0x01183A }, + { 0x01193B, 0x01193C }, + { 0x01193E, 0x01193E }, + { 0x011943, 0x011943 }, + { 0x0119D4, 0x0119D7 }, + { 0x0119DA, 0x0119DB }, + { 0x0119E0, 0x0119E0 }, + { 0x011A01, 0x011A0A }, + { 0x011A33, 0x011A38 }, + { 0x011A3B, 0x011A3E }, + { 0x011A47, 0x011A47 }, + { 0x011A51, 0x011A56 }, + { 0x011A59, 0x011A5B }, + { 0x011A8A, 0x011A96 }, + { 0x011A98, 0x011A99 }, + { 0x011C30, 0x011C36 }, + { 0x011C38, 0x011C3D }, + { 0x011C3F, 0x011C3F }, + { 0x011C92, 0x011CA7 }, + { 0x011CAA, 0x011CB0 }, + { 0x011CB2, 0x011CB3 }, + { 0x011CB5, 0x011CB6 }, + { 0x011D31, 0x011D36 }, + { 0x011D3A, 0x011D3A }, + { 0x011D3C, 0x011D3D }, + { 0x011D3F, 0x011D45 }, + { 0x011D47, 0x011D47 }, + { 0x011D90, 0x011D91 }, + { 0x011D95, 0x011D95 }, + { 0x011D97, 0x011D97 }, + { 0x011EF3, 0x011EF4 }, + { 0x011F00, 0x011F01 }, + { 0x011F36, 0x011F3A }, + { 0x011F40, 0x011F40 }, + { 0x011F42, 0x011F42 }, + { 0x013440, 0x013440 }, + { 0x013447, 0x013455 }, + { 0x016AF0, 0x016AF4 }, + { 0x016B30, 0x016B36 }, + { 0x016F4F, 0x016F4F }, + { 0x016F8F, 0x016F92 }, + { 0x016FE4, 0x016FE4 }, + { 0x01BC9D, 0x01BC9E }, + { 0x01CF00, 0x01CF2D }, + { 0x01CF30, 0x01CF46 }, + { 0x01D167, 0x01D169 }, + { 0x01D17B, 0x01D182 }, + { 0x01D185, 0x01D18B }, + { 0x01D1AA, 0x01D1AD }, + { 0x01D242, 0x01D244 }, + { 0x01DA00, 0x01DA36 }, + { 0x01DA3B, 0x01DA6C }, + { 0x01DA75, 0x01DA75 }, + { 0x01DA84, 0x01DA84 }, + { 0x01DA9B, 0x01DA9F }, + { 0x01DAA1, 0x01DAAF }, + { 0x01E000, 0x01E006 }, + { 0x01E008, 0x01E018 }, + { 0x01E01B, 0x01E021 }, + { 0x01E023, 0x01E024 }, + { 0x01E026, 0x01E02A }, + { 0x01E08F, 0x01E08F }, + { 0x01E130, 0x01E136 }, + { 0x01E2AE, 0x01E2AE }, + { 0x01E2EC, 0x01E2EF }, + { 0x01E4EC, 0x01E4EF }, + { 0x01E8D0, 0x01E8D6 }, + { 0x01E944, 0x01E94A }, + { 0x0E0100, 0x0E01EF }, + }; + } } } diff --git a/src/Wcwidth/Unicode.cs b/src/Wcwidth/Unicode.cs index 55ff18f..e7968f9 100644 --- a/src/Wcwidth/Unicode.cs +++ b/src/Wcwidth/Unicode.cs @@ -127,5 +127,11 @@ enum Unicode /// [Description("15.0.0")] Version_15_0_0, + + /// + /// Unicode version 15.0.0. + /// + [Description("15.1.0")] + Version_15_1_0, } } diff --git a/src/Wcwidth/UnicodeCalculator.cs b/src/Wcwidth/UnicodeCalculator.cs index 6f518c6..9404b38 100644 --- a/src/Wcwidth/UnicodeCalculator.cs +++ b/src/Wcwidth/UnicodeCalculator.cs @@ -62,7 +62,7 @@ namespace Wcwidth #endif static class UnicodeCalculator { - private const Unicode Latest = Unicode.Version_15_0_0; + private const Unicode Latest = Unicode.Version_15_1_0; // NOTE: created by hand, there isn't anything identifiable other than // general Cf category code to identify these, and some characters in Cf