mirror of
https://github.com/php/php-src.git
synced 2026-04-14 03:22:58 +02:00
ucgendat.c was assuming that a title-case character is a character that has both lower and upper-case variants. However, there are title-case characters that only have a lower-case variant. Use the Lt general character proprety to determine where in the case map the character should be placed instead.
45 lines
1.0 KiB
PHP
45 lines
1.0 KiB
PHP
--TEST--
|
|
Bug #69267: mb_strtolower fails on titlecase characters
|
|
--FILE--
|
|
<?php
|
|
|
|
$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));
|
|
|
|
$str_l = "ᾳ";
|
|
$str_t = "ᾼ";
|
|
var_dump(mb_strtolower($str_l));
|
|
var_dump(mb_strtolower($str_t));
|
|
var_dump(mb_strtoupper($str_l));
|
|
var_dump(mb_strtoupper($str_t));
|
|
var_dump(mb_convert_case($str_l, 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"
|
|
string(3) "ᾳ"
|
|
string(3) "ᾳ"
|
|
string(3) "ᾼ"
|
|
string(3) "ᾼ"
|
|
string(3) "ᾼ"
|
|
string(3) "ᾼ"
|