FIXED: consistent read/write of further control characters, and non-breaking space

Example:

    ?- X = '\xa0\'.
       X = '\xa0\'.

This addresses #1768.
This commit is contained in:
Markus Triska
2023-05-03 23:23:53 +02:00
committed by Mark
parent 33f65210ee
commit 47d4e6d2f9

View File

@@ -172,7 +172,9 @@ fn char_to_string(is_quoted: bool, c: char) -> String {
'\'' | '\n' | '\r' | '\t' | '\u{0b}' | '\u{0c}' | '\u{08}' | '\u{07}' | '"' | '\\' => { '\'' | '\n' | '\r' | '\t' | '\u{0b}' | '\u{0c}' | '\u{08}' | '\u{07}' | '"' | '\\' => {
c.to_string() c.to_string()
} }
'\u{0}'..='\u{1f}' => format!("\\x{:x}\\", c as u32), // print all other control characters in hex. '\u{0}'..='\u{1f}' | '\u{7f}' ..= '\u{a0}'
// print all other control characters, and also non-breaking space, in hex.
=> format!("\\x{:x}\\", c as u32),
_ => c.to_string(), _ => c.to_string(),
} }
} }