From b2a2dc9593bd8a06977830f228ee86bb80c6a36e Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sun, 16 Apr 2017 15:16:22 -0700 Subject: 3825 --- html/edit/007-sandbox-delete.mu.html | 532 +++++++++++++++++------------------ 1 file changed, 265 insertions(+), 267 deletions(-) (limited to 'html/edit/007-sandbox-delete.mu.html') diff --git a/html/edit/007-sandbox-delete.mu.html b/html/edit/007-sandbox-delete.mu.html index ea0dd800..fbfa79c6 100644 --- a/html/edit/007-sandbox-delete.mu.html +++ b/html/edit/007-sandbox-delete.mu.html @@ -130,279 +130,277 @@ if ('onhashchange' in window) { 68 after <global-touch> [ 69 # support 'delete' button 70 { - 71 ¦ delete?:bool <- should-attempt-delete? click-row, click-column, env + 71 ¦ delete?:bool <- should-attempt-delete? click-row, click-column, env 72 ¦ break-unless delete? - 73 ¦ delete?, env <- try-delete-sandbox click-row, env + 73 ¦ delete?, env <- try-delete-sandbox click-row, env 74 ¦ break-unless delete? - 75 ¦ hide-screen screen - 76 ¦ screen <- render-sandbox-side screen, env, render - 77 ¦ screen <- update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env - 78 ¦ show-screen screen - 79 ¦ loop +next-event - 80 } - 81 ] - 82 - 83 # some preconditions for attempting to delete a sandbox - 84 def should-attempt-delete? click-row:num, click-column:num, env:&:environment -> result:bool [ - 85 local-scope - 86 load-ingredients - 87 # are we below the sandbox editor? - 88 click-sandbox-area?:bool <- click-on-sandbox-area? click-row, click-column, env - 89 return-unless click-sandbox-area?, 0/false - 90 # narrower, is the click in the columns spanning the 'copy' button? - 91 first-sandbox:&:editor <- get *env, current-sandbox:offset - 92 assert first-sandbox, [!!] - 93 sandbox-left-margin:num <- get *first-sandbox, left:offset - 94 sandbox-right-margin:num <- get *first-sandbox, right:offset - 95 _, _, _, _, delete-button-left:num <- sandbox-menu-columns sandbox-left-margin, sandbox-right-margin - 96 result <- within-range? click-column, delete-button-left, sandbox-right-margin - 97 ] - 98 - 99 def try-delete-sandbox click-row:num, env:&:environment -> clicked-on-delete-button?:bool, env:&:environment [ -100 local-scope -101 load-ingredients -102 # identify the sandbox to delete, if the click was actually on the 'delete' button -103 sandbox:&:sandbox <- find-sandbox env, click-row -104 return-unless sandbox, 0/false -105 clicked-on-delete-button? <- copy 1/true -106 env <- delete-sandbox env, sandbox -107 ] -108 -109 def delete-sandbox env:&:environment, sandbox:&:sandbox -> env:&:environment [ -110 local-scope -111 load-ingredients -112 curr-sandbox:&:sandbox <- get *env, sandbox:offset -113 first-sandbox?:bool <- equal curr-sandbox, sandbox -114 { -115 ¦ # first sandbox? pop -116 ¦ break-unless first-sandbox? -117 ¦ next-sandbox:&:sandbox <- get *curr-sandbox, next-sandbox:offset -118 ¦ *env <- put *env, sandbox:offset, next-sandbox -119 } -120 { -121 ¦ # not first sandbox? -122 ¦ break-if first-sandbox? -123 ¦ prev-sandbox:&:sandbox <- copy curr-sandbox -124 ¦ curr-sandbox <- get *curr-sandbox, next-sandbox:offset -125 ¦ { -126 ¦ ¦ assert curr-sandbox, [sandbox not found! something is wrong.] -127 ¦ ¦ found?:bool <- equal curr-sandbox, sandbox -128 ¦ ¦ break-if found? -129 ¦ ¦ prev-sandbox <- copy curr-sandbox -130 ¦ ¦ curr-sandbox <- get *curr-sandbox, next-sandbox:offset -131 ¦ ¦ loop -132 ¦ } -133 ¦ # snip sandbox out of its list -134 ¦ next-sandbox:&:sandbox <- get *curr-sandbox, next-sandbox:offset -135 ¦ *prev-sandbox <- put *prev-sandbox, next-sandbox:offset, next-sandbox -136 } -137 # update sandbox count -138 sandbox-count:num <- get *env, number-of-sandboxes:offset -139 sandbox-count <- subtract sandbox-count, 1 -140 *env <- put *env, number-of-sandboxes:offset, sandbox-count -141 # reset scroll if deleted sandbox was last -142 { -143 ¦ break-if next-sandbox -144 ¦ render-from:num <- get *env, render-from:offset -145 ¦ reset-scroll?:bool <- equal render-from, sandbox-count -146 ¦ break-unless reset-scroll? -147 ¦ *env <- put *env, render-from:offset, -1 -148 } -149 ] -150 -151 scenario deleting-sandbox-after-scroll [ -152 local-scope -153 trace-until 100/app # trace too long -154 assume-screen 100/width, 10/height -155 # initialize environment -156 assume-resources [ -157 ] -158 env:&:environment <- new-programming-environment resources, screen, [] -159 render-all screen, env, render -160 # create 2 sandboxes and scroll to second -161 assume-console [ -162 ¦ press ctrl-n -163 ¦ type [add 2, 2] + 75 ¦ screen <- render-sandbox-side screen, env, render + 76 ¦ screen <- update-cursor screen, recipes, current-sandbox, sandbox-in-focus?, env + 77 ¦ loop +next-event + 78 } + 79 ] + 80 + 81 # some preconditions for attempting to delete a sandbox + 82 def should-attempt-delete? click-row:num, click-column:num, env:&:environment -> result:bool [ + 83 local-scope + 84 load-ingredients + 85 # are we below the sandbox editor? + 86 click-sandbox-area?:bool <- click-on-sandbox-area? click-row, click-column, env + 87 return-unless click-sandbox-area?, 0/false + 88 # narrower, is the click in the columns spanning the 'copy' button? + 89 first-sandbox:&:editor <- get *env, current-sandbox:offset + 90 assert first-sandbox, [!!] + 91 sandbox-left-margin:num <- get *first-sandbox, left:offset + 92 sandbox-right-margin:num <- get *first-sandbox, right:offset + 93 _, _, _, _, delete-button-left:num <- sandbox-menu-columns sandbox-left-margin, sandbox-right-margin + 94 result <- within-range? click-column, delete-button-left, sandbox-right-margin + 95 ] + 96 + 97 def try-delete-sandbox click-row:num, env:&:environment -> clicked-on-delete-button?:bool, env:&:environment [ + 98 local-scope + 99 load-ingredients +100 # identify the sandbox to delete, if the click was actually on the 'delete' button +101 sandbox:&:sandbox <- find-sandbox env, click-row +102 return-unless sandbox, 0/false +103 clicked-on-delete-button? <- copy 1/true +104 env <- delete-sandbox env, sandbox +105 ] +106 +107 def delete-sandbox env:&:environment, sandbox:&:sandbox -> env:&:environment [ +108 local-scope +109 load-ingredients +110 curr-sandbox:&:sandbox <- get *env, sandbox:offset +111 first-sandbox?:bool <- equal curr-sandbox, sandbox +112 { +113 ¦ # first sandbox? pop +114 ¦ break-unless first-sandbox? +115 ¦ next-sandbox:&:sandbox <- get *curr-sandbox, next-sandbox:offset +116 ¦ *env <- put *env, sandbox:offset, next-sandbox +117 } +118 { +119 ¦ # not first sandbox? +120 ¦ break-if first-sandbox? +121 ¦ prev-sandbox:&:sandbox <- copy curr-sandbox +122 ¦ curr-sandbox <- get *curr-sandbox, next-sandbox:offset +123 ¦ { +124 ¦ ¦ assert curr-sandbox, [sandbox not found! something is wrong.] +125 ¦ ¦ found?:bool <- equal curr-sandbox, sandbox +126 ¦ ¦ break-if found? +127 ¦ ¦ prev-sandbox <- copy curr-sandbox +128 ¦ ¦ curr-sandbox <- get *curr-sandbox, next-sandbox:offset +129 ¦ ¦ loop +130 ¦ } +131 ¦ # snip sandbox out of its list +132 ¦ next-sandbox:&:sandbox <- get *curr-sandbox, next-sandbox:offset +133 ¦ *prev-sandbox <- put *prev-sandbox, next-sandbox:offset, next-sandbox +134 } +135 # update sandbox count +136 sandbox-count:num <- get *env, number-of-sandboxes:offset +137 sandbox-count <- subtract sandbox-count, 1 +138 *env <- put *env, number-of-sandboxes:offset, sandbox-count +139 # reset scroll if deleted sandbox was last +140 { +141 ¦ break-if next-sandbox +142 ¦ render-from:num <- get *env, render-from:offset +143 ¦ reset-scroll?:bool <- equal render-from, sandbox-count +144 ¦ break-unless reset-scroll? +145 ¦ *env <- put *env, render-from:offset, -1 +146 } +147 ] +148 +149 scenario deleting-sandbox-after-scroll [ +150 local-scope +151 trace-until 100/app # trace too long +152 assume-screen 100/width, 10/height +153 # initialize environment +154 assume-resources [ +155 ] +156 env:&:environment <- new-programming-environment resources, screen, [] +157 render-all screen, env, render +158 # create 2 sandboxes and scroll to second +159 assume-console [ +160 ¦ press ctrl-n +161 ¦ type [add 2, 2] +162 ¦ press F4 +163 ¦ type [add 1, 1] 164 ¦ press F4 -165 ¦ type [add 1, 1] -166 ¦ press F4 -167 ¦ press page-down -168 ] -169 event-loop screen, console, env, resources -170 screen-should-contain [ -171 ¦ . run (F4) . -172 ¦ . ╎─────────────────────────────────────────────────. -173 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . -174 ¦ . ╎add 1, 1 . -175 ¦ . ╎2 . -176 ¦ . ╎─────────────────────────────────────────────────. -177 ¦ . ╎1 edit copy delete . -178 ] -179 # delete the second sandbox -180 assume-console [ -181 ¦ left-click 6, 99 -182 ] -183 run [ -184 ¦ event-loop screen, console, env, resources -185 ] -186 # second sandbox shows in editor; scroll resets to display first sandbox -187 screen-should-contain [ -188 ¦ . run (F4) . -189 ¦ . ╎─────────────────────────────────────────────────. -190 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . -191 ¦ . ╎add 1, 1 . -192 ¦ . ╎2 . -193 ¦ . ╎─────────────────────────────────────────────────. -194 ¦ . ╎ . -195 ] -196 ] -197 -198 scenario deleting-top-sandbox-after-scroll [ -199 local-scope -200 trace-until 100/app # trace too long -201 assume-screen 100/width, 10/height -202 # initialize environment -203 assume-resources [ -204 ] -205 env:&:environment <- new-programming-environment resources, screen, [] -206 render-all screen, env, render -207 # create 2 sandboxes and scroll to second -208 assume-console [ -209 ¦ press ctrl-n -210 ¦ type [add 2, 2] +165 ¦ press page-down +166 ] +167 event-loop screen, console, env, resources +168 screen-should-contain [ +169 ¦ . run (F4) . +170 ¦ . ╎─────────────────────────────────────────────────. +171 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . +172 ¦ . ╎add 1, 1 . +173 ¦ . ╎2 . +174 ¦ . ╎─────────────────────────────────────────────────. +175 ¦ . ╎1 edit copy delete . +176 ] +177 # delete the second sandbox +178 assume-console [ +179 ¦ left-click 6, 99 +180 ] +181 run [ +182 ¦ event-loop screen, console, env, resources +183 ] +184 # second sandbox shows in editor; scroll resets to display first sandbox +185 screen-should-contain [ +186 ¦ . run (F4) . +187 ¦ . ╎─────────────────────────────────────────────────. +188 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . +189 ¦ . ╎add 1, 1 . +190 ¦ . ╎2 . +191 ¦ . ╎─────────────────────────────────────────────────. +192 ¦ . ╎ . +193 ] +194 ] +195 +196 scenario deleting-top-sandbox-after-scroll [ +197 local-scope +198 trace-until 100/app # trace too long +199 assume-screen 100/width, 10/height +200 # initialize environment +201 assume-resources [ +202 ] +203 env:&:environment <- new-programming-environment resources, screen, [] +204 render-all screen, env, render +205 # create 2 sandboxes and scroll to second +206 assume-console [ +207 ¦ press ctrl-n +208 ¦ type [add 2, 2] +209 ¦ press F4 +210 ¦ type [add 1, 1] 211 ¦ press F4 -212 ¦ type [add 1, 1] -213 ¦ press F4 -214 ¦ press page-down -215 ] -216 event-loop screen, console, env, resources -217 screen-should-contain [ -218 ¦ . run (F4) . -219 ¦ . ╎─────────────────────────────────────────────────. -220 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . -221 ¦ . ╎add 1, 1 . -222 ¦ . ╎2 . -223 ¦ . ╎─────────────────────────────────────────────────. -224 ¦ . ╎1 edit copy delete . -225 ] -226 # delete the second sandbox -227 assume-console [ -228 ¦ left-click 2, 99 -229 ] -230 run [ -231 ¦ event-loop screen, console, env, resources -232 ] -233 # second sandbox shows in editor; scroll resets to display first sandbox -234 screen-should-contain [ -235 ¦ . run (F4) . -236 ¦ . ╎─────────────────────────────────────────────────. -237 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . -238 ¦ . ╎add 2, 2 . -239 ¦ . ╎4 . -240 ¦ . ╎─────────────────────────────────────────────────. -241 ¦ . ╎ . -242 ] -243 ] -244 -245 scenario deleting-final-sandbox-after-scroll [ -246 local-scope -247 trace-until 100/app # trace too long -248 assume-screen 100/width, 10/height -249 # initialize environment -250 assume-resources [ -251 ] -252 env:&:environment <- new-programming-environment resources, screen, [] -253 render-all screen, env, render -254 # create 2 sandboxes and scroll to second -255 assume-console [ -256 ¦ press ctrl-n -257 ¦ type [add 2, 2] +212 ¦ press page-down +213 ] +214 event-loop screen, console, env, resources +215 screen-should-contain [ +216 ¦ . run (F4) . +217 ¦ . ╎─────────────────────────────────────────────────. +218 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . +219 ¦ . ╎add 1, 1 . +220 ¦ . ╎2 . +221 ¦ . ╎─────────────────────────────────────────────────. +222 ¦ . ╎1 edit copy delete . +223 ] +224 # delete the second sandbox +225 assume-console [ +226 ¦ left-click 2, 99 +227 ] +228 run [ +229 ¦ event-loop screen, console, env, resources +230 ] +231 # second sandbox shows in editor; scroll resets to display first sandbox +232 screen-should-contain [ +233 ¦ . run (F4) . +234 ¦ . ╎─────────────────────────────────────────────────. +235 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . +236 ¦ . ╎add 2, 2 . +237 ¦ . ╎4 . +238 ¦ . ╎─────────────────────────────────────────────────. +239 ¦ . ╎ . +240 ] +241 ] +242 +243 scenario deleting-final-sandbox-after-scroll [ +244 local-scope +245 trace-until 100/app # trace too long +246 assume-screen 100/width, 10/height +247 # initialize environment +248 assume-resources [ +249 ] +250 env:&:environment <- new-programming-environment resources, screen, [] +251 render-all screen, env, render +252 # create 2 sandboxes and scroll to second +253 assume-console [ +254 ¦ press ctrl-n +255 ¦ type [add 2, 2] +256 ¦ press F4 +257 ¦ type [add 1, 1] 258 ¦ press F4 -259 ¦ type [add 1, 1] -260 ¦ press F4 -261 ¦ press page-down -262 ¦ press page-down -263 ] -264 event-loop screen, console, env, resources -265 screen-should-contain [ -266 ¦ . run (F4) . -267 ¦ . ╎─────────────────────────────────────────────────. -268 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1 edit copy delete . -269 ¦ . ╎add 2, 2 . -270 ¦ . ╎4 . -271 ¦ . ╎─────────────────────────────────────────────────. -272 ¦ . ╎ . -273 ] -274 # delete the second sandbox -275 assume-console [ -276 ¦ left-click 2, 99 -277 ] -278 run [ -279 ¦ event-loop screen, console, env, resources -280 ] -281 # implicitly scroll up to first sandbox -282 screen-should-contain [ -283 ¦ . run (F4) . -284 ¦ . ╎ . -285 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────. -286 ¦ . ╎0 edit copy delete . -287 ¦ . ╎add 1, 1 . -288 ¦ . ╎2 . -289 ¦ . ╎─────────────────────────────────────────────────. -290 ¦ . ╎ . -291 ] -292 ] -293 -294 scenario deleting-updates-sandbox-count [ -295 local-scope -296 trace-until 100/app # trace too long -297 assume-screen 100/width, 10/height -298 # initialize environment -299 assume-resources [ -300 ] -301 env:&:environment <- new-programming-environment resources, screen, [] -302 render-all screen, env, render -303 # create 2 sandboxes -304 assume-console [ -305 ¦ press ctrl-n -306 ¦ type [add 2, 2] +259 ¦ press page-down +260 ¦ press page-down +261 ] +262 event-loop screen, console, env, resources +263 screen-should-contain [ +264 ¦ . run (F4) . +265 ¦ . ╎─────────────────────────────────────────────────. +266 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎1 edit copy delete . +267 ¦ . ╎add 2, 2 . +268 ¦ . ╎4 . +269 ¦ . ╎─────────────────────────────────────────────────. +270 ¦ . ╎ . +271 ] +272 # delete the second sandbox +273 assume-console [ +274 ¦ left-click 2, 99 +275 ] +276 run [ +277 ¦ event-loop screen, console, env, resources +278 ] +279 # implicitly scroll up to first sandbox +280 screen-should-contain [ +281 ¦ . run (F4) . +282 ¦ . ╎ . +283 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────. +284 ¦ . ╎0 edit copy delete . +285 ¦ . ╎add 1, 1 . +286 ¦ . ╎2 . +287 ¦ . ╎─────────────────────────────────────────────────. +288 ¦ . ╎ . +289 ] +290 ] +291 +292 scenario deleting-updates-sandbox-count [ +293 local-scope +294 trace-until 100/app # trace too long +295 assume-screen 100/width, 10/height +296 # initialize environment +297 assume-resources [ +298 ] +299 env:&:environment <- new-programming-environment resources, screen, [] +300 render-all screen, env, render +301 # create 2 sandboxes +302 assume-console [ +303 ¦ press ctrl-n +304 ¦ type [add 2, 2] +305 ¦ press F4 +306 ¦ type [add 1, 1] 307 ¦ press F4 -308 ¦ type [add 1, 1] -309 ¦ press F4 -310 ] -311 event-loop screen, console, env, resources -312 screen-should-contain [ -313 ¦ . run (F4) . -314 ¦ . ╎ . -315 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────. -316 ¦ . ╎0 edit copy delete . -317 ¦ . ╎add 1, 1 . -318 ¦ . ╎2 . -319 ¦ . ╎─────────────────────────────────────────────────. -320 ¦ . ╎1 edit copy delete . -321 ¦ . ╎add 2, 2 . -322 ¦ . ╎4 . -323 ] -324 # delete the second sandbox, then try to scroll down twice -325 assume-console [ -326 ¦ left-click 3, 99 -327 ¦ press page-down -328 ¦ press page-down -329 ] -330 run [ -331 ¦ event-loop screen, console, env, resources -332 ] -333 # shouldn't go past last sandbox -334 screen-should-contain [ -335 ¦ . run (F4) . -336 ¦ . ╎─────────────────────────────────────────────────. -337 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . -338 ¦ . ╎add 2, 2 . -339 ¦ . ╎4 . -340 ¦ . ╎─────────────────────────────────────────────────. -341 ¦ . ╎ . -342 ] -343 ] +308 ] +309 event-loop screen, console, env, resources +310 screen-should-contain [ +311 ¦ . run (F4) . +312 ¦ . ╎ . +313 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎─────────────────────────────────────────────────. +314 ¦ . ╎0 edit copy delete . +315 ¦ . ╎add 1, 1 . +316 ¦ . ╎2 . +317 ¦ . ╎─────────────────────────────────────────────────. +318 ¦ . ╎1 edit copy delete . +319 ¦ . ╎add 2, 2 . +320 ¦ . ╎4 . +321 ] +322 # delete the second sandbox, then try to scroll down twice +323 assume-console [ +324 ¦ left-click 3, 99 +325 ¦ press page-down +326 ¦ press page-down +327 ] +328 run [ +329 ¦ event-loop screen, console, env, resources +330 ] +331 # shouldn't go past last sandbox +332 screen-should-contain [ +333 ¦ . run (F4) . +334 ¦ . ╎─────────────────────────────────────────────────. +335 ¦ .╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╎0 edit copy delete . +336 ¦ . ╎add 2, 2 . +337 ¦ . ╎4 . +338 ¦ . ╎─────────────────────────────────────────────────. +339 ¦ . ╎ . +340 ] +341 ] -- cgit 1.4.1-2-gfad0