From: Mark Thom Date: Sat, 26 Feb 2022 06:36:26 +0000 (-0700) Subject: pop pstr offsets from iterator stack in printer (#1290) X-Git-Tag: v0.9.0^2~13 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=26e4560429bb6601fd5ffeaeac1ce0c71304bfff;p=scryer-prolog.git pop pstr offsets from iterator stack in printer (#1290) --- diff --git a/src/heap_print.rs b/src/heap_print.rs index 63e53d73..a0231848 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -1184,6 +1184,11 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { self.state_stack.push(TokenOrRedirect::Atom(atom!("..."))); self.state_stack.push(TokenOrRedirect::HeadTailSeparator); } else if end_cell != empty_list_as_cell!() { + if value.get_tag() != HeapCellValueTag::CStr { + self.iter.pop_stack(); + self.iter.push_stack(h+1); + } + self.state_stack.push(TokenOrRedirect::FunctorRedirect(max_depth)); self.state_stack.push(TokenOrRedirect::HeadTailSeparator); } @@ -1447,10 +1452,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { (HeapCellValueTag::F64, f) => { self.print_number(NumberFocus::Unfocused(Number::Float(**f)), &op); } - (HeapCellValueTag::PStrOffset) => { - self.print_list_like(max_depth); - } - (HeapCellValueTag::PStr | HeapCellValueTag::CStr) => { + (HeapCellValueTag::CStr | HeapCellValueTag::PStr | HeapCellValueTag::PStrOffset) => { self.print_list_like(max_depth); } (HeapCellValueTag::Lis) => {