From: Mark Thom Date: Mon, 3 Sep 2018 19:57:32 +0000 (-0600) Subject: properly handle character controls from ASCII to UTF-8, re: #48 X-Git-Tag: v0.8.110~401 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=684e3d217f5ba75391c9ca15a9edf25eddd99ffd;p=scryer-prolog.git properly handle character controls from ASCII to UTF-8, re: #48 --- diff --git a/src/prolog/heap_print.rs b/src/prolog/heap_print.rs index 3b02a245..9b4689fb 100644 --- a/src/prolog/heap_print.rs +++ b/src/prolog/heap_print.rs @@ -296,23 +296,16 @@ impl<'a, Formatter: HCValueFormatter, Outputter: HCValueOutputter> } fn print_char(&mut self, c: char) { - if c == '\n' { - self.outputter.append("\\n"); - } else if c == '\r' { - self.outputter.append("\\r"); - } else if c == '\t' { - self.outputter.append("\\t"); - } else if c == '\u{0b}' { // UTF-8 vertical tab - self.outputter.append("\\v"); - } else if c == '\u{0c}' { // UTF-8 form feed - self.outputter.append("\\f"); - } else if c == '\u{08}' { // UTF-8 backspace - self.outputter.append("\\b"); - } else if c == '\u{07}' { // UTF-8 alert - self.outputter.append("\\a"); - } else { - self.outputter.push_char(c); - } + match c { + '\n' => self.outputter.append("\\n"), + '\r' => self.outputter.append("\\r"), + '\t' => self.outputter.append("\\t"), + '\u{0b}' => self.outputter.append("\\v"), // UTF-8 vertical tab + '\u{0c}' => self.outputter.append("\\f"), // UTF-8 form feed + '\u{08}' => self.outputter.append("\\b"), // UTF-8 backspace + '\u{07}' => self.outputter.append("\\a"), // UTF-8 alert + _ => self.outputter.push_char(c) + }; } fn print_constant(&mut self, c: Constant) { diff --git a/src/prolog/parser b/src/prolog/parser index b23670b2..ba996251 160000 --- a/src/prolog/parser +++ b/src/prolog/parser @@ -1 +1 @@ -Subproject commit b23670b232d1f3a069c6a4a87378a399a69e8274 +Subproject commit ba9962514adf528d973babe09c7ebdaeec3eb24c