]> Repositorios git - scryer-prolog.git/commitdiff
be more judicious with at_cdr in print_string (#295)
authorMark Thom <[email protected]>
Sun, 12 Apr 2020 18:18:15 +0000 (12:18 -0600)
committerMark Thom <[email protected]>
Sun, 12 Apr 2020 18:18:15 +0000 (12:18 -0600)
src/prolog/heap_print.rs

index 91757052dafe69ccb8e4ad0d2d6b051447a9bb0c..780eb1bddc3a7e8d55f8001a37918abac18ad436 100644 (file)
@@ -1045,7 +1045,9 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
         let buf = heap_pstr_iter.to_string();
         let end_addr = heap_pstr_iter.focus();
 
-        if Addr::EmptyList == end_addr {
+        let at_cdr = self.at_cdr(",");
+
+        if !at_cdr && Addr::EmptyList == end_addr {
             if !self.machine_st.flags.double_quotes.is_codes() {
                 self.push_char('"');
 
@@ -1124,7 +1126,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
                 iter.stack().push(end_addr);
             }
         } else {
-            let switch = if !self.at_cdr(",") {
+            let switch = if !at_cdr {
                 self.push_char('[');
                 true
             } else {