Skip to content

Commit a5f13c2

Browse files
committed
Update wide/zero-character width tables from Unicode 15.1.0 to 16.0.0
1 parent 7ff555a commit a5f13c2

File tree

2 files changed

+72
-68
lines changed

2 files changed

+72
-68
lines changed

curses.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ Defined by this header:
4141
#define PDC_VER_MINOR 4
4242
#define PDC_VER_CHANGE 0
4343
#define PDC_VER_YEAR 2024
44-
#define PDC_VER_MONTH 10
45-
#define PDC_VER_DAY 28
44+
#define PDC_VER_MONTH 12
45+
#define PDC_VER_DAY 11
4646

4747
#define PDC_STRINGIZE( x) #x
4848
#define PDC_stringize( x) PDC_STRINGIZE( x)

pdcurses/addch.c

Lines changed: 70 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ For PDCursesMod, only PDC_wcwidth is used, modified to take an
146146
int argument instead of wchar_t, because in MS-land, wchar_t
147147
is 16 bits; getting the full Unicode range requires 21 bits.
148148
Also modified format/indenting to conform to PDCurses norms,
149-
and (January 2024) updated from Unicode 5.0 to 15.1.0. See
149+
and (December 2024) updated from Unicode 5.0 to 16.0.0. See
150150
uni_tbl.c in the Bill-Gray/junk repository.
151151
152152
Following function modified from one in the README.md at
@@ -210,7 +210,7 @@ PDCEX int PDC_wcwidth( const int32_t ucs)
210210
/* see 'uni_tbl.c' in the Bill-Gray/junk repo */
211211
const uint16_t tbl_for_zero_width_chars[][2] = {
212212
{ /* plane 0 */ 0, 202 },
213-
{ /* plane 1 */ 202, 321 },
213+
{ /* plane 1 */ 202, 333 },
214214
{ /* plane 2 */ 0, 0 },
215215
{ /* plane 3 */ 0, 0 },
216216
{ /* plane 4 */ 0, 0 },
@@ -223,7 +223,7 @@ const uint16_t tbl_for_zero_width_chars[][2] = {
223223
{ /* plane 11 */ 0, 0 },
224224
{ /* plane 12 */ 0, 0 },
225225
{ /* plane 13 */ 0, 0 },
226-
{ /* plane 14 */ 321, 322 },
226+
{ /* plane 14 */ 333, 334 },
227227
{ /* plane 15 */ 0, 0 },
228228
{ /* plane 16 */ 0, 0 },
229229
{ 0x00AD, 0x036F }, { 0x0483, 0x0489 }, { 0x0591, 0x05BD },
@@ -295,51 +295,55 @@ const uint16_t tbl_for_zero_width_chars[][2] = {
295295
{ 0xFE00, 0xFE0F }, { 0xFE20, 0xFE2F }, { 0xFEFF, 0xFEFF },
296296
{ 0xFFF9, 0xFFFB }, { 0x01FD, 0x01FD }, { 0x02E0, 0x02E0 },
297297
{ 0x0376, 0x037A }, { 0x0A01, 0x0A0F }, { 0x0A38, 0x0A3F },
298-
{ 0x0AE5, 0x0AE6 }, { 0x0D24, 0x0D27 }, { 0x0EAB, 0x0EAC },
299-
{ 0x0EFD, 0x0EFF }, { 0x0F46, 0x0F50 }, { 0x0F82, 0x0F85 },
300-
{ 0x1001, 0x1001 }, { 0x1038, 0x1046 }, { 0x1070, 0x1070 },
301-
{ 0x1073, 0x1074 }, { 0x107F, 0x1081 }, { 0x10B3, 0x10B6 },
302-
{ 0x10B9, 0x10BA }, { 0x10BD, 0x10BD }, { 0x10C2, 0x10CD },
303-
{ 0x1100, 0x1102 }, { 0x1127, 0x112B }, { 0x112D, 0x1134 },
304-
{ 0x1173, 0x1173 }, { 0x1180, 0x1181 }, { 0x11B6, 0x11BE },
305-
{ 0x11C9, 0x11CC }, { 0x11CF, 0x11CF }, { 0x122F, 0x1231 },
306-
{ 0x1234, 0x1234 }, { 0x1236, 0x1237 }, { 0x123E, 0x123E },
307-
{ 0x1241, 0x1241 }, { 0x12DF, 0x12DF }, { 0x12E3, 0x12EA },
308-
{ 0x1300, 0x1301 }, { 0x133B, 0x133C }, { 0x1340, 0x1340 },
309-
{ 0x1366, 0x1374 }, { 0x1438, 0x143F }, { 0x1442, 0x1444 },
298+
{ 0x0AE5, 0x0AE6 }, { 0x0D24, 0x0D27 }, { 0x0D69, 0x0D6D },
299+
{ 0x0EAB, 0x0EAC }, { 0x0EFC, 0x0EFF }, { 0x0F46, 0x0F50 },
300+
{ 0x0F82, 0x0F85 }, { 0x1001, 0x1001 }, { 0x1038, 0x1046 },
301+
{ 0x1070, 0x1070 }, { 0x1073, 0x1074 }, { 0x107F, 0x1081 },
302+
{ 0x10B3, 0x10B6 }, { 0x10B9, 0x10BA }, { 0x10BD, 0x10BD },
303+
{ 0x10C2, 0x10CD }, { 0x1100, 0x1102 }, { 0x1127, 0x112B },
304+
{ 0x112D, 0x1134 }, { 0x1173, 0x1173 }, { 0x1180, 0x1181 },
305+
{ 0x11B6, 0x11BE }, { 0x11C9, 0x11CC }, { 0x11CF, 0x11CF },
306+
{ 0x122F, 0x1231 }, { 0x1234, 0x1234 }, { 0x1236, 0x1237 },
307+
{ 0x123E, 0x123E }, { 0x1241, 0x1241 }, { 0x12DF, 0x12DF },
308+
{ 0x12E3, 0x12EA }, { 0x1300, 0x1301 }, { 0x133B, 0x133C },
309+
{ 0x1340, 0x1340 }, { 0x1366, 0x1374 }, { 0x13BB, 0x13C0 },
310+
{ 0x13CE, 0x13CE }, { 0x13D0, 0x13D0 }, { 0x13D2, 0x13D2 },
311+
{ 0x13E1, 0x13E2 }, { 0x1438, 0x143F }, { 0x1442, 0x1444 },
310312
{ 0x1446, 0x1446 }, { 0x145E, 0x145E }, { 0x14B3, 0x14B8 },
311313
{ 0x14BA, 0x14BA }, { 0x14BF, 0x14C0 }, { 0x14C2, 0x14C3 },
312314
{ 0x15B2, 0x15B5 }, { 0x15BC, 0x15BD }, { 0x15BF, 0x15C0 },
313315
{ 0x15DC, 0x162F }, { 0x1633, 0x163A }, { 0x163D, 0x163D },
314316
{ 0x163F, 0x1640 }, { 0x16AB, 0x16AB }, { 0x16AD, 0x16AD },
315-
{ 0x16B0, 0x16B5 }, { 0x16B7, 0x16B7 }, { 0x171D, 0x171F },
316-
{ 0x1722, 0x1725 }, { 0x1727, 0x172B }, { 0x182F, 0x1837 },
317-
{ 0x1839, 0x183A }, { 0x193B, 0x193C }, { 0x193E, 0x193E },
318-
{ 0x1943, 0x1943 }, { 0x19D4, 0x19DB }, { 0x19E0, 0x19E0 },
319-
{ 0x1A01, 0x1A0A }, { 0x1A33, 0x1A38 }, { 0x1A3B, 0x1A3E },
320-
{ 0x1A47, 0x1A47 }, { 0x1A51, 0x1A56 }, { 0x1A59, 0x1A5B },
321-
{ 0x1A8A, 0x1A96 }, { 0x1A98, 0x1A99 }, { 0x1C30, 0x1C3D },
322-
{ 0x1C3F, 0x1C3F }, { 0x1C92, 0x1CA7 }, { 0x1CAA, 0x1CB0 },
323-
{ 0x1CB2, 0x1CB3 }, { 0x1CB5, 0x1CB6 }, { 0x1D31, 0x1D45 },
324-
{ 0x1D47, 0x1D47 }, { 0x1D90, 0x1D91 }, { 0x1D95, 0x1D95 },
325-
{ 0x1D97, 0x1D97 }, { 0x1EF3, 0x1EF4 }, { 0x1F00, 0x1F01 },
326-
{ 0x1F36, 0x1F3A }, { 0x1F40, 0x1F40 }, { 0x1F42, 0x1F42 },
327-
{ 0x3430, 0x3440 }, { 0x3447, 0x3455 }, { 0x6AF0, 0x6AF4 },
328-
{ 0x6B30, 0x6B36 }, { 0x6F4F, 0x6F4F }, { 0x6F8F, 0x6F92 },
329-
{ 0x6FE4, 0x6FE4 }, { 0xBC9D, 0xBC9E }, { 0xBCA0, 0xCF46 },
330-
{ 0xD167, 0xD169 }, { 0xD173, 0xD182 }, { 0xD185, 0xD18B },
331-
{ 0xD1AA, 0xD1AD }, { 0xD242, 0xD244 }, { 0xDA00, 0xDA36 },
332-
{ 0xDA3B, 0xDA6C }, { 0xDA75, 0xDA75 }, { 0xDA84, 0xDA84 },
333-
{ 0xDA9B, 0xDAAF }, { 0xE000, 0xE02A }, { 0xE08F, 0xE08F },
334-
{ 0xE130, 0xE136 }, { 0xE2AE, 0xE2AE }, { 0xE2EC, 0xE2EF },
335-
{ 0xE4EC, 0xE4EF }, { 0xE8D0, 0xE8D6 }, { 0xE944, 0xE94A },
317+
{ 0x16B0, 0x16B5 }, { 0x16B7, 0x16B7 }, { 0x171D, 0x171D },
318+
{ 0x171F, 0x171F }, { 0x1722, 0x1725 }, { 0x1727, 0x172B },
319+
{ 0x182F, 0x1837 }, { 0x1839, 0x183A }, { 0x193B, 0x193C },
320+
{ 0x193E, 0x193E }, { 0x1943, 0x1943 }, { 0x19D4, 0x19DB },
321+
{ 0x19E0, 0x19E0 }, { 0x1A01, 0x1A0A }, { 0x1A33, 0x1A38 },
322+
{ 0x1A3B, 0x1A3E }, { 0x1A47, 0x1A47 }, { 0x1A51, 0x1A56 },
323+
{ 0x1A59, 0x1A5B }, { 0x1A8A, 0x1A96 }, { 0x1A98, 0x1A99 },
324+
{ 0x1C30, 0x1C3D }, { 0x1C3F, 0x1C3F }, { 0x1C92, 0x1CA7 },
325+
{ 0x1CAA, 0x1CB0 }, { 0x1CB2, 0x1CB3 }, { 0x1CB5, 0x1CB6 },
326+
{ 0x1D31, 0x1D45 }, { 0x1D47, 0x1D47 }, { 0x1D90, 0x1D91 },
327+
{ 0x1D95, 0x1D95 }, { 0x1D97, 0x1D97 }, { 0x1EF3, 0x1EF4 },
328+
{ 0x1F00, 0x1F01 }, { 0x1F36, 0x1F3A }, { 0x1F40, 0x1F40 },
329+
{ 0x1F42, 0x1F42 }, { 0x1F5A, 0x1F5A }, { 0x3430, 0x3440 },
330+
{ 0x3447, 0x3455 }, { 0x611E, 0x6129 }, { 0x612D, 0x612F },
331+
{ 0x6AF0, 0x6AF4 }, { 0x6B30, 0x6B36 }, { 0x6F4F, 0x6F4F },
332+
{ 0x6F8F, 0x6F92 }, { 0x6FE4, 0x6FE4 }, { 0xBC9D, 0xBC9E },
333+
{ 0xBCA0, 0xBCA3 }, { 0xCF00, 0xCF46 }, { 0xD167, 0xD169 },
334+
{ 0xD173, 0xD182 }, { 0xD185, 0xD18B }, { 0xD1AA, 0xD1AD },
335+
{ 0xD242, 0xD244 }, { 0xDA00, 0xDA36 }, { 0xDA3B, 0xDA6C },
336+
{ 0xDA75, 0xDA75 }, { 0xDA84, 0xDA84 }, { 0xDA9B, 0xDAAF },
337+
{ 0xE000, 0xE02A }, { 0xE08F, 0xE08F }, { 0xE130, 0xE136 },
338+
{ 0xE2AE, 0xE2AE }, { 0xE2EC, 0xE2EF }, { 0xE4EC, 0xE4EF },
339+
{ 0xE5EE, 0xE5EF }, { 0xE8D0, 0xE8D6 }, { 0xE944, 0xE94A },
336340
{ 0x0001, 0x01EF } };
337341

338342
const uint16_t tbl_for_fullwidth_chars[][2] = {
339-
{ /* plane 0 */ 0, 46 },
340-
{ /* plane 1 */ 46, 80 },
341-
{ /* plane 2 */ 80, 81 },
342-
{ /* plane 3 */ 81, 82 },
343+
{ /* plane 0 */ 0, 47 },
344+
{ /* plane 1 */ 47, 82 },
345+
{ /* plane 2 */ 82, 83 },
346+
{ /* plane 3 */ 83, 84 },
343347
{ /* plane 4 */ 0, 0 },
344348
{ /* plane 5 */ 0, 0 },
345349
{ /* plane 6 */ 0, 0 },
@@ -355,32 +359,32 @@ const uint16_t tbl_for_fullwidth_chars[][2] = {
355359
{ /* plane 16 */ 0, 0 },
356360
{ 0x1100, 0x115F }, { 0x231A, 0x231B }, { 0x2329, 0x232A },
357361
{ 0x23E9, 0x23EC }, { 0x23F0, 0x23F0 }, { 0x23F3, 0x23F3 },
358-
{ 0x25FD, 0x25FE }, { 0x2614, 0x2615 }, { 0x2648, 0x2653 },
359-
{ 0x267F, 0x267F }, { 0x2693, 0x2693 }, { 0x26A1, 0x26A1 },
360-
{ 0x26AA, 0x26AB }, { 0x26BD, 0x26BE }, { 0x26C4, 0x26C5 },
361-
{ 0x26CE, 0x26CE }, { 0x26D4, 0x26D4 }, { 0x26EA, 0x26EA },
362-
{ 0x26F2, 0x26F3 }, { 0x26F5, 0x26F5 }, { 0x26FA, 0x26FA },
363-
{ 0x26FD, 0x26FD }, { 0x2705, 0x2705 }, { 0x270A, 0x270B },
364-
{ 0x2728, 0x2728 }, { 0x274C, 0x274C }, { 0x274E, 0x274E },
365-
{ 0x2753, 0x2755 }, { 0x2757, 0x2757 }, { 0x2795, 0x2797 },
366-
{ 0x27B0, 0x27B0 }, { 0x27BF, 0x27BF }, { 0x2B1B, 0x2B1C },
367-
{ 0x2B50, 0x2B50 }, { 0x2B55, 0x2B55 }, { 0x2E80, 0x303E },
368-
{ 0x3041, 0x3247 }, { 0x3250, 0x4DBF }, { 0x4E00, 0xA4C6 },
369-
{ 0xA960, 0xA97C }, { 0xAC00, 0xD7A3 }, { 0xF900, 0xFAFF },
370-
{ 0xFE10, 0xFE19 }, { 0xFE30, 0xFE6B }, { 0xFF01, 0xFF60 },
371-
{ 0xFFE0, 0xFFE6 }, { 0x6FE0, 0xB2FB }, { 0xF004, 0xF004 },
372-
{ 0xF0CF, 0xF0CF }, { 0xF18E, 0xF18E }, { 0xF191, 0xF19A },
373-
{ 0xF200, 0xF320 }, { 0xF32D, 0xF335 }, { 0xF337, 0xF37C },
374-
{ 0xF37E, 0xF393 }, { 0xF3A0, 0xF3CA }, { 0xF3CF, 0xF3D3 },
375-
{ 0xF3E0, 0xF3F0 }, { 0xF3F4, 0xF3F4 }, { 0xF3F8, 0xF43E },
376-
{ 0xF440, 0xF440 }, { 0xF442, 0xF4FC }, { 0xF4FF, 0xF53D },
377-
{ 0xF54B, 0xF54E }, { 0xF550, 0xF567 }, { 0xF57A, 0xF57A },
378-
{ 0xF595, 0xF596 }, { 0xF5A4, 0xF5A4 }, { 0xF5FB, 0xF64F },
379-
{ 0xF680, 0xF6C5 }, { 0xF6CC, 0xF6CC }, { 0xF6D0, 0xF6D2 },
380-
{ 0xF6D5, 0xF6DF }, { 0xF6EB, 0xF6EC }, { 0xF6F4, 0xF6FC },
381-
{ 0xF7E0, 0xF7F0 }, { 0xF90C, 0xF93A }, { 0xF93C, 0xF945 },
382-
{ 0xF947, 0xF9FF }, { 0xFA70, 0xFAF6 }, { 0x0000, 0xFFFF },
383-
{ 0x0000, 0xFFFD } };
362+
{ 0x25FD, 0x25FE }, { 0x2614, 0x2615 }, { 0x2630, 0x2637 },
363+
{ 0x2648, 0x2653 }, { 0x267F, 0x267F }, { 0x268A, 0x268F },
364+
{ 0x2693, 0x2693 }, { 0x26A1, 0x26A1 }, { 0x26AA, 0x26AB },
365+
{ 0x26BD, 0x26BE }, { 0x26C4, 0x26C5 }, { 0x26CE, 0x26CE },
366+
{ 0x26D4, 0x26D4 }, { 0x26EA, 0x26EA }, { 0x26F2, 0x26F3 },
367+
{ 0x26F5, 0x26F5 }, { 0x26FA, 0x26FA }, { 0x26FD, 0x26FD },
368+
{ 0x2705, 0x2705 }, { 0x270A, 0x270B }, { 0x2728, 0x2728 },
369+
{ 0x274C, 0x274C }, { 0x274E, 0x274E }, { 0x2753, 0x2755 },
370+
{ 0x2757, 0x2757 }, { 0x2795, 0x2797 }, { 0x27B0, 0x27B0 },
371+
{ 0x27BF, 0x27BF }, { 0x2B1B, 0x2B1C }, { 0x2B50, 0x2B50 },
372+
{ 0x2B55, 0x2B55 }, { 0x2E80, 0x303E }, { 0x3041, 0x3247 },
373+
{ 0x3250, 0xA4C6 }, { 0xA960, 0xA97C }, { 0xAC00, 0xD7A3 },
374+
{ 0xF900, 0xFAFF }, { 0xFE10, 0xFE19 }, { 0xFE30, 0xFE6B },
375+
{ 0xFF01, 0xFF60 }, { 0xFFE0, 0xFFE6 }, { 0x6FE0, 0xB2FB },
376+
{ 0xD300, 0xD376 }, { 0xF004, 0xF004 }, { 0xF0CF, 0xF0CF },
377+
{ 0xF18E, 0xF18E }, { 0xF191, 0xF19A }, { 0xF200, 0xF320 },
378+
{ 0xF32D, 0xF335 }, { 0xF337, 0xF37C }, { 0xF37E, 0xF393 },
379+
{ 0xF3A0, 0xF3CA }, { 0xF3CF, 0xF3D3 }, { 0xF3E0, 0xF3F0 },
380+
{ 0xF3F4, 0xF3F4 }, { 0xF3F8, 0xF43E }, { 0xF440, 0xF440 },
381+
{ 0xF442, 0xF4FC }, { 0xF4FF, 0xF53D }, { 0xF54B, 0xF54E },
382+
{ 0xF550, 0xF567 }, { 0xF57A, 0xF57A }, { 0xF595, 0xF596 },
383+
{ 0xF5A4, 0xF5A4 }, { 0xF5FB, 0xF64F }, { 0xF680, 0xF6C5 },
384+
{ 0xF6CC, 0xF6CC }, { 0xF6D0, 0xF6D2 }, { 0xF6D5, 0xF6DF },
385+
{ 0xF6EB, 0xF6EC }, { 0xF6F4, 0xF6FC }, { 0xF7E0, 0xF7F0 },
386+
{ 0xF90C, 0xF93A }, { 0xF93C, 0xF945 }, { 0xF947, 0xF9FF },
387+
{ 0xFA70, 0xFAF8 }, { 0x0000, 0xFFFF }, { 0x0000, 0xFFFD } };
384388

385389
/* test for 8-bit control characters */
386390
if (ucs == 0)

0 commit comments

Comments
 (0)