Author: jquelin
Date: Fri Jan  9 02:05:41 2009
New Revision: 35262

Modified:
   trunk/languages/befunge/flow.pir

Log:
fix: trampoline flag is 2, not 1

using _flow__flag_set() for better readability


Modified: trunk/languages/befunge/flow.pir
==============================================================================
--- trunk/languages/befunge/flow.pir    (original)
+++ trunk/languages/befunge/flow.pir    Fri Jan  9 02:05:41 2009
@@ -85,6 +85,21 @@
 # ** flag handling
 
 #
+# _flow__flag_set(val)
+#
+# set flag to val.
+#
+.sub "_flow__flag_set"
+    .param int val
+    $P0 = get_global "status"
+    $P0["flag"] = val
+    set_global "status", $P0
+.end
+
+
+#
+# flow__toggle_string_mode()
+#
 # toggle string mode.
 # befunge stack unchanged.
 #
@@ -93,14 +108,11 @@
     $I0 = $P0["flag"]
 
     if $I0 == 1 goto FLOW__TOGGLE_STRING_MODE__OFF
-    $P0["flag"] = 1
-    goto FLOW__TOGGLE_STRING_MODE__DONE
+    _flow__flag_set(1)
+    .return()
 
   FLOW__TOGGLE_STRING_MODE__OFF:
-    $P0["flag"] = 0
-
-  FLOW__TOGGLE_STRING_MODE__DONE:
-    set_global "status", $P0
+    _flow__flag_set(0)
 .end
 
 
@@ -112,9 +124,11 @@
 #
 .sub "flow__trampoline"
     .param int val
-    $P0 = get_global "status"
-    $P0["flag"] = val
-    set_global "status", $P0
+    if val == 0 goto FLOW__TRAMPOLINE_OFF
+    _flow__flag_set(2)
+    .return()
+  FLOW__TRAMPOLINE_OFF:
+    _flow__flag_set(0)
 .end
 
 =pod

Reply via email to