fix incorrect handling of terminal cuts.

This commit is contained in:
Mark Thom
2017-11-02 15:29:31 -06:00
parent e4e9b09175
commit 2abec91360
3 changed files with 7 additions and 6 deletions

View File

@@ -247,6 +247,7 @@ impl<'a, TermMarker: Allocator<'a>> CodeGenerator<'a, TermMarker>
if let &mut Line::Control(ref mut ctrl) = body.last_mut().unwrap() { if let &mut Line::Control(ref mut ctrl) = body.last_mut().unwrap() {
*ctrl = ControlInstruction::CatchExecute; *ctrl = ControlInstruction::CatchExecute;
}, },
QueryTermRef::Cut => {},
QueryTermRef::Throw(_) => QueryTermRef::Throw(_) =>
if let &mut Line::Control(ref mut ctrl) = body.last_mut().unwrap() { if let &mut Line::Control(ref mut ctrl) = body.last_mut().unwrap() {
*ctrl = ControlInstruction::ThrowExecute; *ctrl = ControlInstruction::ThrowExecute;

View File

@@ -1658,7 +1658,7 @@ impl MachineState {
} }
if let &Terminal::Terminal = term { if let &Terminal::Terminal = term {
self.p = CodePtr::default(); self.p = self.cp;
} else { } else {
self.p += 1; self.p += 1;
} }
@@ -1680,7 +1680,7 @@ impl MachineState {
} }
if let &Terminal::Terminal = term { if let &Terminal::Terminal = term {
self.p = CodePtr::default(); self.p = self.cp;
} else { } else {
self.p += 1; self.p += 1;
} }