diff --git a/components/layout/text.rs b/components/layout/text.rs index fb1e2b9375e..fdac2dfa658 100644 --- a/components/layout/text.rs +++ b/components/layout/text.rs @@ -503,8 +503,9 @@ impl RunMapping { /// Accounts for `text-transform`. /// -/// FIXME(#4311, pcwalton): Case mapping can change length of the string; case mapping should -/// be language-specific; `full-width`; use graphemes instead of characters. +/// FIXME(#4311, pcwalton): Title-case mapping can change length of the string; +/// case mapping should be language-specific; `full-width`; +/// use graphemes instead of characters. fn apply_style_transform_if_necessary(string: &mut String, first_character_position: usize, text_transform: text_transform::T) @@ -515,8 +516,8 @@ fn apply_style_transform_if_necessary(string: &mut String, let original = string[first_character_position..].to_owned(); string.truncate(first_character_position); let mut count = 0; - for character in original.chars() { - string.push(character.to_uppercase().next().unwrap()); + for ch in original.chars().flat_map(|ch| ch.to_uppercase()) { + string.push(ch); count += 1; } count @@ -525,8 +526,8 @@ fn apply_style_transform_if_necessary(string: &mut String, let original = string[first_character_position..].to_owned(); string.truncate(first_character_position); let mut count = 0; - for character in original.chars() { - string.push(character.to_lowercase().next().unwrap()); + for ch in original.chars().flat_map(|ch| ch.to_lowercase()) { + string.push(ch); count += 1; } count diff --git a/tests/wpt/css-tests/css21_dev/html4/reference/text-transform-lowercase-002-ref.htm b/tests/wpt/css-tests/css21_dev/html4/reference/text-transform-lowercase-002-ref.htm new file mode 100644 index 00000000000..d9d7a54413e --- /dev/null +++ b/tests/wpt/css-tests/css21_dev/html4/reference/text-transform-lowercase-002-ref.htm @@ -0,0 +1,4 @@ + +
+ i̇i + diff --git a/tests/wpt/css-tests/css21_dev/html4/text-transform-lowercase-002.htm b/tests/wpt/css-tests/css21_dev/html4/text-transform-lowercase-002.htm new file mode 100644 index 00000000000..286602e74ed --- /dev/null +++ b/tests/wpt/css-tests/css21_dev/html4/text-transform-lowercase-002.htm @@ -0,0 +1,6 @@ + +