Skip to content

Commit e159d42

Browse files
committed
Redo rust-lang#81358 in unicode-table-generator
1 parent d480cef commit e159d42

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

src/tools/unicode-table-generator/src/case_mapping.rs

+15-7
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,26 @@ impl fmt::Debug for CharEscape {
4141
}
4242
}
4343

44-
static HEADER: &str = "
44+
static HEADER: &str = r"
4545
pub fn to_lower(c: char) -> [char; 3] {
46-
match bsearch_case_table(c, LOWERCASE_TABLE) {
47-
None => [c, '\\0', '\\0'],
48-
Some(index) => LOWERCASE_TABLE[index].1,
46+
if c.is_ascii() {
47+
[(c as u8).to_ascii_lowercase() as char, '\0', '\0']
48+
} else {
49+
match bsearch_case_table(c, LOWERCASE_TABLE) {
50+
None => [c, '\0', '\0'],
51+
Some(index) => LOWERCASE_TABLE[index].1,
52+
}
4953
}
5054
}
5155
5256
pub fn to_upper(c: char) -> [char; 3] {
53-
match bsearch_case_table(c, UPPERCASE_TABLE) {
54-
None => [c, '\\0', '\\0'],
55-
Some(index) => UPPERCASE_TABLE[index].1,
57+
if c.is_ascii() {
58+
[(c as u8).to_ascii_uppercase() as char, '\0', '\0']
59+
} else {
60+
match bsearch_case_table(c, UPPERCASE_TABLE) {
61+
None => [c, '\0', '\0'],
62+
Some(index) => UPPERCASE_TABLE[index].1,
63+
}
5664
}
5765
}
5866

0 commit comments

Comments
 (0)