com php-src: Another fix for bug #69267: ext/mbstring/php_uni code.c ext/mbstring/tests/bug69267.phpt

From: Date: Sun, 23 Jul 2017 13:07:02 +0000
Subject: com php-src: Another fix for bug #69267: ext/mbstring/php_uni code.c ext/mbstring/tests/bug69267.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-98750@lists.php.net to get a copy of this message
Commit: c0bcd301d3661c6e2efeae1fdc823406114f6430 Author: Nikita Popov <nikita.ppv@gmail.com> Sun, 23 Jul 2017 15:00:26 +0200 Parents: 0e4af9192f03fcfaa38454dbb3ffd8924bb26375 Branches: PHP-7.2 master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=c0bcd301d3661c6e2efeae1fdc823406114f6430 Log: Another fix for bug #69267 mb_strtoupper() was converting lowercase characters into titlecase characters, instead of uppercase characters. Luckily there are only very few characters with a distinct titlecase representation, so this mostly worked out okay... Bugs: https://bugs.php.net/69267 Changed paths: M ext/mbstring/php_unicode.c M ext/mbstring/tests/bug69267.phpt Diff: diff --git a/ext/mbstring/php_unicode.c b/ext/mbstring/php_unicode.c index 9771289..485988f 100644 --- a/ext/mbstring/php_unicode.c +++ b/ext/mbstring/php_unicode.c @@ -173,7 +173,7 @@ MBSTRING_API unsigned long php_unicode_toupper(unsigned long code, enum mbfl_no_ /* * The character is lower case. */ - field = 2; + field = 1; l = _uccase_len[0]; r = (l + _uccase_len[1]) - 1; diff --git a/ext/mbstring/tests/bug69267.phpt b/ext/mbstring/tests/bug69267.phpt index c00e5e1..8d42941 100644 --- a/ext/mbstring/tests/bug69267.phpt +++ b/ext/mbstring/tests/bug69267.phpt @@ -2,8 +2,26 @@ Bug #69267: mb_strtolower fails on titlecase characters --FILE-- <?php -$str = "DžLjNjDz"; -var_dump(mb_strtolower($str)); +$str_l = "džljnjdz"; +$str_u = "DŽLJNJDZ"; +$str_t = "DžLjNjDz"; +var_dump(mb_strtolower($str_l)); +var_dump(mb_strtolower($str_u)); +var_dump(mb_strtolower($str_t)); +var_dump(mb_strtoupper($str_l)); +var_dump(mb_strtoupper($str_u)); +var_dump(mb_strtoupper($str_t)); +var_dump(mb_convert_case($str_l, MB_CASE_TITLE)); +var_dump(mb_convert_case($str_u, MB_CASE_TITLE)); +var_dump(mb_convert_case($str_t, MB_CASE_TITLE)); ?> --EXPECT-- string(8) "džljnjdz" +string(8) "džljnjdz" +string(8) "džljnjdz" +string(8) "DŽLJNJDZ" +string(8) "DŽLJNJDZ" +string(8) "DŽLJNJDZ" +string(8) "Džljnjdz" +string(8) "Džljnjdz" +string(8) "Džljnjdz"

« previous php.cvs (#98750) next »