mirror of
https://github.com/RustPython/RustPython.git
synced 2026-06-09 22:49:57 +09:00
builtin: Fix hex format of ascii
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
assert ascii('hello world') == "'hello world'"
|
||||
assert ascii('안녕 세상') == "'\\uc548\\ub155 \\uc138\\uc0c1'"
|
||||
assert ascii('안녕 RustPython') == "'\\uc548\\ub155 RustPython'"
|
||||
assert ascii(5) == '5'
|
||||
assert ascii(5) == '5'
|
||||
assert ascii(chr(0x10001)) == "'\\U00010001'"
|
||||
@@ -64,10 +64,13 @@ fn builtin_ascii(obj: PyObjectRef, vm: &VirtualMachine) -> PyResult<String> {
|
||||
let mut ascii = String::new();
|
||||
for c in repr.value.chars() {
|
||||
if c.is_ascii() {
|
||||
ascii.push(c)
|
||||
} else {
|
||||
ascii.push(c);
|
||||
} else if (c as i64) < 0x10000 {
|
||||
let hex = format!("\\u{:x}", c as i64);
|
||||
ascii.push_str(&hex)
|
||||
ascii.push_str(&hex);
|
||||
} else {
|
||||
let hex = format!("\\U{:08x}", c as i64);
|
||||
ascii.push_str(&hex);
|
||||
}
|
||||
}
|
||||
Ok(ascii)
|
||||
|
||||
Reference in New Issue
Block a user