From 037b9a8e96b959385d8ac1bac5a8959316af94a1 Mon Sep 17 00:00:00 2001 From: Jacob Date: Sun, 25 Nov 2018 22:09:32 -0500 Subject: [PATCH] Fix code that starts on a space not running --- .../src/main/kotlin/befide/befunge/b93/B93Interpreter.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/befunge/src/main/kotlin/befide/befunge/b93/B93Interpreter.kt b/befunge/src/main/kotlin/befide/befunge/b93/B93Interpreter.kt index 573c953..9f73f8c 100644 --- a/befunge/src/main/kotlin/befide/befunge/b93/B93Interpreter.kt +++ b/befunge/src/main/kotlin/befide/befunge/b93/B93Interpreter.kt @@ -295,6 +295,7 @@ class B93Interpreter : Interpreter { '&', '~' -> input(car) '@' -> terminate() in '0'..'9' -> pushDig(car) + ' ' -> true else -> noOp() } } @@ -319,9 +320,14 @@ class B93Interpreter : Interpreter { if (processed) { stepIP() if (ip.mode != IpMode.String) { - while (funge[ip.pos].asChar == ' ') { + var numsteps = 0 + val maxsteps = if (funge.height > funge.width) funge.height else funge.width + while (funge[ip.pos].asChar == ' ' && numsteps++ < maxsteps) { stepIP() } + if (numsteps == maxsteps) { + ip.mode = IpMode.Inactive + } } val newIP = ip.copy() ipChanged(IpEvent(currIP, newIP))