don't skip to end of pstr in CommaSeparatedCharList token variant (#2356)
This commit is contained in:
@@ -1221,7 +1221,12 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
let focus = self.iter.focus();
|
let focus = self.iter.focus();
|
||||||
let mut heap_pstr_iter = HeapPStrIter::new(self.iter.heap, focus.value() as usize);
|
let mut heap_pstr_iter = HeapPStrIter::new(self.iter.heap, focus.value() as usize);
|
||||||
|
|
||||||
|
let next_h;
|
||||||
|
let next_hare;
|
||||||
|
|
||||||
if heap_pstr_iter.next().is_some() {
|
if heap_pstr_iter.next().is_some() {
|
||||||
|
next_h = heap_pstr_iter.focus;
|
||||||
|
next_hare = heap_pstr_iter.focus();
|
||||||
for _ in heap_pstr_iter.by_ref() {}
|
for _ in heap_pstr_iter.by_ref() {}
|
||||||
} else {
|
} else {
|
||||||
return self.push_list(max_depth);
|
return self.push_list(max_depth);
|
||||||
@@ -1283,7 +1288,8 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
// print an extraneous number. pstr offset value cells are never
|
// print an extraneous number. pstr offset value cells are never
|
||||||
// used by the iterator to mark cyclic terms so the removal is safe.
|
// used by the iterator to mark cyclic terms so the removal is safe.
|
||||||
self.iter.pop_stack();
|
self.iter.pop_stack();
|
||||||
Some(end_h)
|
Some(next_hare)
|
||||||
|
// Some(end_h)
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
@@ -1291,7 +1297,7 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> {
|
|||||||
if !self.max_depth_exhausted(max_depth) {
|
if !self.max_depth_exhausted(max_depth) {
|
||||||
let pstr = cell_as_string!(self.iter.heap[h]);
|
let pstr = cell_as_string!(self.iter.heap[h]);
|
||||||
self.state_stack.push(TokenOrRedirect::CommaSeparatedCharList(CommaSeparatedCharList {
|
self.state_stack.push(TokenOrRedirect::CommaSeparatedCharList(CommaSeparatedCharList {
|
||||||
pstr, offset, max_depth, end_cell, end_h,
|
pstr, offset, max_depth, end_cell: next_h, end_h,
|
||||||
}));
|
}));
|
||||||
} else {
|
} else {
|
||||||
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
self.state_stack.push(TokenOrRedirect::Atom(atom!("...")));
|
||||||
|
|||||||
Reference in New Issue
Block a user