Browse Source

ext/mbstring: Update to Unicode 17.0 (#19796)

Updates UCD to Unicode 17.0 (released 2025 Sep).
pull/19827/head
tekimen 1 month ago
committed by GitHub
parent
commit
edc2671227
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      NEWS
  2. 3
      UPGRADING
  3. 21
      ext/mbstring/libmbfl/mbfl/eaw_table.h
  4. 4
      ext/mbstring/tests/unicode_versions.phpt
  5. 8299
      ext/mbstring/unicode_data.h

3
NEWS

@ -20,6 +20,9 @@ PHP NEWS
. Fixed bug GH-19669 (assertion failure in zend_jit_trace_type_to_info_ex).
(Arnaud)
- MBstring:
. Updated Unicode data tables to Unicode 17.0. (Yuya Hamada)
- URI:
. Fixed bug GH-19780 (InvalidUrlException should check $errors argument).
(nielsdos)

3
UPGRADING

@ -84,6 +84,9 @@ PHP 8.5 UPGRADE NOTES
. ldap_get_option() and ldap_set_option() now throw a ValueError when
passing an invalid option.
- MBstring:
. Unicode data tables have been updated to Unicode 17.0
- MySQLi:
. Calling the mysqli constructor on an already-constructed object
is now no longer possible and throws an Error.

21
ext/mbstring/libmbfl/mbfl/eaw_table.h

@ -80,10 +80,10 @@ static const struct {
{ 0xff01, 0xff60 },
{ 0xffe0, 0xffe6 },
{ 0x16fe0, 0x16fe4 },
{ 0x16ff0, 0x16ff1 },
{ 0x17000, 0x187f7 },
{ 0x18800, 0x18cd5 },
{ 0x18cff, 0x18d08 },
{ 0x16ff0, 0x16ff6 },
{ 0x17000, 0x18cd5 },
{ 0x18cff, 0x18d1e },
{ 0x18d80, 0x18df2 },
{ 0x1aff0, 0x1aff3 },
{ 0x1aff5, 0x1affb },
{ 0x1affd, 0x1affe },
@ -125,7 +125,7 @@ static const struct {
{ 0x1f680, 0x1f6c5 },
{ 0x1f6cc, 0x1f6cc },
{ 0x1f6d0, 0x1f6d2 },
{ 0x1f6d5, 0x1f6d7 },
{ 0x1f6d5, 0x1f6d8 },
{ 0x1f6dc, 0x1f6df },
{ 0x1f6eb, 0x1f6ec },
{ 0x1f6f4, 0x1f6fc },
@ -135,11 +135,12 @@ static const struct {
{ 0x1f93c, 0x1f945 },
{ 0x1f947, 0x1f9ff },
{ 0x1fa70, 0x1fa7c },
{ 0x1fa80, 0x1fa89 },
{ 0x1fa8f, 0x1fac6 },
{ 0x1face, 0x1fadc },
{ 0x1fadf, 0x1fae9 },
{ 0x1faf0, 0x1faf8 },
{ 0x1fa80, 0x1fa8a },
{ 0x1fa8e, 0x1fac6 },
{ 0x1fac8, 0x1fac8 },
{ 0x1facd, 0x1fadc },
{ 0x1fadf, 0x1faea },
{ 0x1faef, 0x1faf8 },
{ 0x20000, 0x2fffd },
{ 0x30000, 0x3fffd },
};

4
ext/mbstring/tests/unicode_versions.phpt

@ -23,6 +23,9 @@ print "Emoji (\u{1F6DC}): " . mb_strwidth("\u{1F6DC}", 'UTF-8') . "\n";
// Changed in Unicode 16.0, U+2630...U+2637 are wide
print "Emoji (\u{2630}): " . mb_strwidth("\u{2630}", 'UTF-8') . "\n";
// New in Unicode 17.0, width=2
print "Emoji (\u{1FAEA}): " . mb_strwidth("\u{1FAEA}", "UTF-8") . "\n";
echo "Char case changes:\n";
print "Upper(\u{019b}) = \u{a7dc} : ";
@ -37,5 +40,6 @@ Sinhalese (අයේෂ්): 5
Emoji (🐘): 2
Emoji (🛜): 2
Emoji (☰): 2
Emoji (🫪): 2
Char case changes:
Upper(ƛ) = Ƛ : bool(true)

8299
ext/mbstring/unicode_data.h
File diff suppressed because it is too large
View File

Loading…
Cancel
Save