From 5d5116e3343b5f6efa289e35e1c29b761db12068 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Thu, 5 May 2016 17:02:46 -0700 Subject: 2928 - fix sandbox restore in edit/ and sandbox/ This had been broken ever since 2854, because we can't write tests for restore-snapshots at the moment. --- sandbox/005-sandbox.mu | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'sandbox/005-sandbox.mu') diff --git a/sandbox/005-sandbox.mu b/sandbox/005-sandbox.mu index c946fba2..227a1ee0 100644 --- a/sandbox/005-sandbox.mu +++ b/sandbox/005-sandbox.mu @@ -317,6 +317,7 @@ def! restore-sandboxes env:address:programming-environment-data -> env:address:p filename:address:array:character <- to-text idx contents:address:array:character <- restore filename break-unless contents # stop at first error; assuming file didn't exist + # todo: handle empty sandbox # create new sandbox for file curr <- new sandbox-data:type *curr <- put *curr, data:offset, contents @@ -328,15 +329,18 @@ def! restore-sandboxes env:address:programming-environment-data -> env:address:p } +continue - idx <- add idx, 1 { - break-unless prev + break-if idx + *env <- put *env, sandbox:offset, curr + } + { + break-unless idx *prev <- put *prev, next-sandbox:offset, curr } + idx <- add idx, 1 prev <- copy curr loop } - *env <- put *env, sandbox:offset, curr # update sandbox count *env <- put *env, number-of-sandboxes:offset, idx ] -- cgit 1.4.1-2-gfad0