{"thread":{"id":"59503","subject":"[PATCH] unicode: update the width tables to Unicode 15","startedAt":"2023-03-30T19:23:22Z","lastAt":"2023-03-30T19:23:22Z","messageCount":1,"participants":["Beat Bolli"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"474480","messageId":"20230330191517.1762375-1-dev+git@drbeat.li","threadId":"59503","inReplyTo":null,"subject":"[PATCH] unicode: update the width tables to Unicode 15","fromName":"Beat Bolli","fromEmail":"dev+git@drbeat.li","sentAt":"2023-03-30T19:15:17Z","receivedAt":"2023-03-30T19:23:22Z","isPatch":true,"sender":{"key":"dev+git@drbeat.li","avatar":"https://avatars.githubusercontent.com/u/21444?v=4"},"body":"Unicode version 15 was released in September 2022 [1], and we have so\nfar neglected to update our width tables. Do this now.\n\n[1] http://blog.unicode.org/2022/09/announcing-unicode-standard-version-150.html\n\nSigned-off-by: Beat Bolli <dev+git@drbeat.li>\n---\n unicode-width.h | 33 +++++++++++++++++++++------------\n 1 file changed, 21 insertions(+), 12 deletions(-)\n\ndiff --git a/unicode-width.h b/unicode-width.h\nindex 97c851b27d..e15fb0455b 100644\n--- a/unicode-width.h\n+++ b/unicode-width.h\n@@ -94,7 +94,7 @@ static const struct interval zero_width[] = {\n { 0x0E47, 0x0E4E },\n { 0x0EB1, 0x0EB1 },\n { 0x0EB4, 0x0EBC },\n-{ 0x0EC8, 0x0ECD },\n+{ 0x0EC8, 0x0ECE },\n { 0x0F18, 0x0F19 },\n { 0x0F35, 0x0F35 },\n { 0x0F37, 0x0F37 },\n@@ -228,6 +228,7 @@ static const struct interval zero_width[] = {\n { 0x10AE5, 0x10AE6 },\n { 0x10D24, 0x10D27 },\n { 0x10EAB, 0x10EAC },\n+{ 0x10EFD, 0x10EFF },\n { 0x10F46, 0x10F50 },\n { 0x10F82, 0x10F85 },\n { 0x11001, 0x11001 },\n@@ -252,6 +253,7 @@ static const struct interval zero_width[] = {\n { 0x11234, 0x11234 },\n { 0x11236, 0x11237 },\n { 0x1123E, 0x1123E },\n+{ 0x11241, 0x11241 },\n { 0x112DF, 0x112DF },\n { 0x112E3, 0x112EA },\n { 0x11300, 0x11301 },\n@@ -313,7 +315,12 @@ static const struct interval zero_width[] = {\n { 0x11D95, 0x11D95 },\n { 0x11D97, 0x11D97 },\n { 0x11EF3, 0x11EF4 },\n-{ 0x13430, 0x13438 },\n+{ 0x11F00, 0x11F01 },\n+{ 0x11F36, 0x11F3A },\n+{ 0x11F40, 0x11F40 },\n+{ 0x11F42, 0x11F42 },\n+{ 0x13430, 0x13440 },\n+{ 0x13447, 0x13455 },\n { 0x16AF0, 0x16AF4 },\n { 0x16B30, 0x16B36 },\n { 0x16F4F, 0x16F4F },\n@@ -339,9 +346,11 @@ static const struct interval zero_width[] = {\n { 0x1E01B, 0x1E021 },\n { 0x1E023, 0x1E024 },\n { 0x1E026, 0x1E02A },\n+{ 0x1E08F, 0x1E08F },\n { 0x1E130, 0x1E136 },\n { 0x1E2AE, 0x1E2AE },\n { 0x1E2EC, 0x1E2EF },\n+{ 0x1E4EC, 0x1E4EF },\n { 0x1E8D0, 0x1E8D6 },\n { 0x1E944, 0x1E94A },\n { 0xE0001, 0xE0001 },\n@@ -417,7 +426,9 @@ static const struct interval double_width[] = {\n { 0x1AFF5, 0x1AFFB },\n { 0x1AFFD, 0x1AFFE },\n { 0x1B000, 0x1B122 },\n+{ 0x1B132, 0x1B132 },\n { 0x1B150, 0x1B152 },\n+{ 0x1B155, 0x1B155 },\n { 0x1B164, 0x1B167 },\n { 0x1B170, 0x1B2FB },\n { 0x1F004, 0x1F004 },\n@@ -451,7 +462,7 @@ static const struct interval double_width[] = {\n { 0x1F6CC, 0x1F6CC },\n { 0x1F6D0, 0x1F6D2 },\n { 0x1F6D5, 0x1F6D7 },\n-{ 0x1F6DD, 0x1F6DF },\n+{ 0x1F6DC, 0x1F6DF },\n { 0x1F6EB, 0x1F6EC },\n { 0x1F6F4, 0x1F6FC },\n { 0x1F7E0, 0x1F7EB },\n@@ -459,15 +470,13 @@ static const struct interval double_width[] = {\n { 0x1F90C, 0x1F93A },\n { 0x1F93C, 0x1F945 },\n { 0x1F947, 0x1F9FF },\n-{ 0x1FA70, 0x1FA74 },\n-{ 0x1FA78, 0x1FA7C },\n-{ 0x1FA80, 0x1FA86 },\n-{ 0x1FA90, 0x1FAAC },\n-{ 0x1FAB0, 0x1FABA },\n-{ 0x1FAC0, 0x1FAC5 },\n-{ 0x1FAD0, 0x1FAD9 },\n-{ 0x1FAE0, 0x1FAE7 },\n-{ 0x1FAF0, 0x1FAF6 },\n+{ 0x1FA70, 0x1FA7C },\n+{ 0x1FA80, 0x1FA88 },\n+{ 0x1FA90, 0x1FABD },\n+{ 0x1FABF, 0x1FAC5 },\n+{ 0x1FACE, 0x1FADB },\n+{ 0x1FAE0, 0x1FAE8 },\n+{ 0x1FAF0, 0x1FAF8 },\n { 0x20000, 0x2FFFD },\n { 0x30000, 0x3FFFD }\n };\n-- \n2.35.1.720.g215f5dbbfb\n\n"}]}