about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--029debug.cc5
-rw-r--r--060string.mu35
-rw-r--r--061channel.mu14
-rw-r--r--071print.mu18
-rw-r--r--chessboard.mu82
-rw-r--r--edit.mu36
6 files changed, 54 insertions, 136 deletions
diff --git a/029debug.cc b/029debug.cc
index e185a314..753375cc 100644
--- a/029debug.cc
+++ b/029debug.cc
@@ -9,7 +9,10 @@ case _PRINT: {
   for (long long int i = 0; i < SIZE(ingredients); ++i) {
     if (is_literal(current_instruction().ingredients.at(i))) {
       trace(Primitive_recipe_depth, "run") << "$print: " << current_instruction().ingredients.at(i).name;
-      cout << current_instruction().ingredients.at(i).name;
+      if (has_property(current_instruction().ingredients.at(i), "newline"))
+        cout << '\n';
+      else
+        cout << current_instruction().ingredients.at(i).name;
     }
     else {
       for (long long int j = 0; j < SIZE(ingredients.at(i)); ++j) {
diff --git a/060string.mu b/060string.mu
index 6cfbc318..74db7fe1 100644
--- a/060string.mu
+++ b/060string.mu
@@ -105,8 +105,7 @@ container buffer [
 
 recipe new-buffer [
   local-scope
-#?   $print default-space:address:array:location, [
-#? ]
+#?   $print default-space:address:array:location, 10:literal/newline
   result:address:buffer <- new buffer:type
   len:address:number <- get-address result:address:buffer/deref, length:offset
   len:address:number/deref <- copy 0:literal
@@ -114,8 +113,7 @@ recipe new-buffer [
   capacity:number, found?:boolean <- next-ingredient
   assert found?:boolean, [new-buffer must get a capacity argument]
   s:address:address:array:character/deref <- new character:type, capacity:number
-#?   $print s:address:address:array:character/deref, [
-#? ]
+#?   $print s:address:address:array:character/deref, 10:literal/newline
   reply result:address:buffer
 ]
 
@@ -174,13 +172,10 @@ recipe buffer-append [
     in:address:buffer <- grow-buffer in:address:buffer
   }
   s:address:array:character <- get in:address:buffer/deref, data:offset
-#?   $print [array underlying buf: ], s:address:array:character, [ 
-#? ] #? 1
-#?   $print [index: ], len:address:number/deref, [ 
-#? ] #? 1
+#?   $print [array underlying buf: ], s:address:array:character, 10:literal/newline
+#?   $print [index: ], len:address:number/deref, 10:literal/newline
   dest:address:character <- index-address s:address:array:character/deref, len:address:number/deref
-#?   $print [storing ], c:character, [ in ], dest:address:character, [ 
-#? ] #? 1
+#?   $print [storing ], c:character, [ in ], dest:address:character, 10:literal/newline
   dest:address:character/deref <- copy c:character
   len:address:number/deref <- add len:address:number/deref, 1:literal
   reply in:address:buffer/same-as-ingredient:0
@@ -196,20 +191,6 @@ scenario buffer-append-works [
     x:address:buffer <- buffer-append x:address:buffer, 99:literal  # 'c'
     s2:address:array:character <- get x:address:buffer/deref, data:offset
     1:boolean/raw <- equal s1:address:array:character, s2:address:array:character
-#?     $print s2:address:array:character, [
-#? ]
-#?     $print 1060:number/raw, [
-#? ]
-#?     $print 1061:number/raw, [
-#? ]
-#?     $print 1062:number/raw, [
-#? ]
-#?     $print 1063:number/raw, [
-#? ]
-#?     $print 1064:number/raw, [
-#? ]
-#?     $print 1065:number/raw, [
-#? ]
     2:array:character/raw <- copy s2:address:array:character/deref
     +buffer-filled
     x:address:buffer <- buffer-append x:address:buffer, 100:literal  # 'd'
@@ -321,8 +302,7 @@ recipe buffer-to-array [
     reply 0:literal
   }
   len:number <- get in:address:buffer/deref, length:offset
-#?   $print [size ], len:number, [ 
-#? ] #? 1
+#?   $print [size ], len:number, 10:literal/newline
   s:address:array:character <- get in:address:buffer/deref, data:offset
   # we can't just return s because it is usually the wrong length
   result:address:array:character <- new character:type, len:number
@@ -448,8 +428,7 @@ recipe interpolate [
     result-len:number <- subtract result-len:number, 1:literal
     loop
   }
-#?   $print tem-len:number, [ ], $result-len:number, [ 
-#? ] #? 1
+#?   $print tem-len:number, [ ], $result-len:number, 10:literal/newline
   rewind-ingredients
   _ <- next-ingredient  # skip template
   # result = new array:character[result-len]
diff --git a/061channel.mu b/061channel.mu
index 9f86ba2d..2a839898 100644
--- a/061channel.mu
+++ b/061channel.mu
@@ -298,25 +298,22 @@ recipe buffer-lines [
         break-unless backspace?:boolean
         # drop previous character
 #?         close-console #? 2
-#?         $print [backspace! #? 1
+#?         $print [backspace!
 #? ] #? 1
         {
           buffer-length:address:number <- get-address line:address:buffer/deref, length:offset
           buffer-empty?:boolean <- equal buffer-length:address:number/deref, 0:literal
           break-if buffer-empty?:boolean
-#?           $print [before: ], buffer-length:address:number/deref, [ 
-#? ] #? 1
+#?           $print [before: ], buffer-length:address:number/deref, 10:literal/newline
           buffer-length:address:number/deref <- subtract buffer-length:address:number/deref, 1:literal
-#?           $print [after: ], buffer-length:address:number/deref, [ 
-#? ] #? 1
+#?           $print [after: ], buffer-length:address:number/deref, 10:literal/newline
         }
 #?         $exit #? 2
         # and don't append this one
         loop +next-character:label
       }
       # append anything else
-#?       $print [buffer-lines: appending ], c:character, [ 
-#? ]
+#?       $print [buffer-lines: appending ], c:character, 10:literal/newline
       line:address:buffer <- buffer-append line:address:buffer, c:character
       line-done?:boolean <- equal c:character, 10:literal/newline
       break-if line-done?:boolean
@@ -337,8 +334,7 @@ recipe buffer-lines [
       break-if done?:boolean
       c:character <- index line-contents:address:array:character/deref, i:number
       out:address:channel <- write out:address:channel, c:character
-#?       $print [writing ], i:number, [: ], c:character, [ 
-#? ] #? 1
+#?       $print [writing ], i:number, [: ], c:character, 10:literal/newline
       i:number <- add i:number, 1:literal
       loop
     }
diff --git a/071print.mu b/071print.mu
index 818c95f5..b970b02e 100644
--- a/071print.mu
+++ b/071print.mu
@@ -21,8 +21,7 @@ recipe new-fake-screen [
   width:address:number/deref <- next-ingredient
   height:address:number <- get-address result:address:screen/deref, num-rows:offset
   height:address:number/deref <- next-ingredient
-#?   $print height:address:number/deref, [ 
-#? ] #? 1
+#?   $print height:address:number/deref, 10:literal/newline
   row:address:number <- get-address result:address:screen/deref, cursor-row:offset
   row:address:number/deref <- copy 0:literal
   column:address:number <- get-address result:address:screen/deref, cursor-column:offset
@@ -126,8 +125,7 @@ recipe print-character [
     # special-case: newline
     {
       newline?:boolean <- equal c:character, 10:literal/newline
-#?       $print c:character, [ ], newline?:boolean, [ 
-#? ] #? 1
+#?       $print c:character, [ ], newline?:boolean, 10:literal/newline
       break-unless newline?:boolean
       {
         # unless cursor is already at bottom
@@ -164,8 +162,7 @@ recipe print-character [
       }
       reply x:address:screen/same-as-ingredient:0
     }
-#?     $print [saving character ], c:character, [ to fake screen ], cursor:address/screen, [ 
-#? ] #? 1
+#?     $print [saving character ], c:character, [ to fake screen ], cursor:address/screen, 10:literal/newline
     cursor:address:screen-cell <- index-address buf:address:array:screen-cell/deref, index:number
     cursor-contents:address:character <- get-address cursor:address:screen-cell/deref, contents:offset
     cursor-color:address:number <- get-address cursor:address:screen-cell/deref, color:offset
@@ -353,8 +350,7 @@ recipe clear-line [
     # space over the entire line
 #?     $start-tracing #? 1
     {
-#?       $print column:address:number/deref, [ 
-#? ] #? 1
+#?       $print column:address:number/deref, 10:literal/newline
       right:number <- subtract width:number, 1:literal
       done?:boolean <- greater-or-equal column:address:number/deref, right:number
       break-if done?:boolean
@@ -448,11 +444,9 @@ recipe cursor-down [
       at-bottom?:boolean <- greater-or-equal row:address:number/deref, max:number
       break-if at-bottom?:boolean
       # row = row+1
-#?       $print [AAA: ], row:address:number, [ -> ], row:address:number/deref, [ 
-#? ] #? 1
+#?       $print [AAA: ], row:address:number, [ -> ], row:address:number/deref, 10:literal/newline
       row:address:number/deref <- add row:address:number/deref, 1:literal
-#?       $print [BBB: ], row:address:number, [ -> ], row:address:number/deref, [ 
-#? ] #? 1
+#?       $print [BBB: ], row:address:number, [ -> ], row:address:number/deref, 10:literal/newline
 #?       $start-tracing #? 1
     }
     reply x:address:screen/same-as-ingredient:0
diff --git a/chessboard.mu b/chessboard.mu
index a91e6da7..638b8367 100644
--- a/chessboard.mu
+++ b/chessboard.mu
@@ -66,17 +66,6 @@ scenario print-board-and-read-move [
   ]
 ]
 
-#? scenario foo [ #? 1
-#?   $print [aaa] #? 1
-#?   run [ #? 1
-#?     1:number <- copy 34:literal #? 1
-#?   ] #? 1
-#?   memory-should-contain [ #? 1
-#?     1 <- 34 #? 1
-#?   ] #? 1
-#?   $print [zzz] #? 1
-#? ] #? 1
-
 ## Here's how 'chessboard' is implemented.
 
 recipe chessboard [
@@ -85,8 +74,7 @@ recipe chessboard [
   local-scope
   screen:address <- next-ingredient
   console:address <- next-ingredient
-#?   $print [screen: ], screen:address, [, console: ], console:address, [ 
-#? ] #? 1
+#?   $print [screen: ], screen:address, [, console: ], console:address, 10:literal/newline
   board:address:array:address:array:character <- initial-position
   # hook up stdin
   stdin:address:channel <- new-channel 10:literal/capacity
@@ -98,31 +86,21 @@ recipe chessboard [
     msg:address:array:character <- new [Stupid text-mode chessboard. White pieces in uppercase; black pieces in lowercase. No checking for legal moves.
 ]
     print-string screen:address, msg:address:array:character
-#?     $print [aaa
-#? ] #? 1
     cursor-to-next-line screen:address
     print-board screen:address, board:address:array:address:array:character
     cursor-to-next-line screen:address
     msg:address:array:character <- new [Type in your move as <from square>-<to square>. For example: 'a2-a4'. Then press <enter>.
 ]
     print-string screen:address, msg:address:array:character
-#?     $print [bbb
-#? ] #? 1
     cursor-to-next-line screen:address
     msg:address:array:character <- new [Hit 'q' to exit.
 ]
     print-string screen:address, msg:address:array:character
-#?     $print [ccc
-#? ] #? 1
     {
       cursor-to-next-line screen:address
       msg:address:array:character <- new [move: ]
       print-string screen:address, msg:address:array:character
-#?     $print [ddd
-#? ] #? 1
       m:address:move, quit:boolean, error:boolean <- read-move buffered-stdin:address:channel, screen:address
-#?     $print [eee
-#? ] #? 1
       break-if quit:boolean, +quit:offset
       buffered-stdin:address:channel <- clear-channel buffered-stdin:address:channel  # cleanup after error. todo: test this?
       loop-if error:boolean
@@ -132,7 +110,6 @@ recipe chessboard [
     loop
   }
   +quit
-#?   $print [aaa] #? 1
 ]
 
 ## a board is an array of files, a file is an array of characters (squares)
@@ -183,13 +160,11 @@ recipe print-board [
   board:address:array:address:array:character <- next-ingredient
   row:number <- copy 7:literal  # start printing from the top of the board
   # print each row
-#?   $print [printing board to screen ], screen:address, [ 
-#? ] #? 1
+#?   $print [printing board to screen ], screen:address, 10:literal/newline
   {
     done?:boolean <- lesser-than row:number, 0:literal
     break-if done?:boolean
-#?     $print [printing rank ], row:number, [ 
-#? ] #? 1
+#?     $print [printing rank ], row:number, 10:literal/newline
     # print rank number as a legend
     rank:number <- add row:number, 1:literal
     print-integer screen:address, rank:number
@@ -349,8 +324,7 @@ recipe read-file [
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
   file:number <- subtract c:character, 97:literal  # 'a'
-#?   $print file:number, [ 
-#? ] #? 1
+#?   $print file:number, 10:literal/newline
   # 'a' <= file <= 'h'
   {
     above-min:boolean <- greater-or-equal file:number, 0:literal
@@ -397,8 +371,7 @@ recipe read-rank [
     reply 0:literal/dummy, 0:literal/quit, 1:literal/error
   }
   rank:number <- subtract c:character, 49:literal  # '1'
-#?   $print rank:number, [ 
-#? ] #? 1
+#?   $print rank:number, 10:literal/newline
   # assert'1' <= rank <= '8'
   {
     above-min:boolean <- greater-or-equal rank:number, 0:literal
@@ -442,30 +415,25 @@ scenario read-move-blocking [
   run [
 #?     $start-tracing #? 1
     1:address:channel <- new-channel 2:literal
-#?     $print [aaa channel address: ], 1:address:channel, [ 
-#? ] #? 1
+#?     $print [aaa channel address: ], 1:address:channel, 10:literal/newline
     2:number/routine <- start-running read-move:recipe, 1:address:channel, screen:address
     # 'read-move' is waiting for input
     wait-for-routine 2:number
-#?     $print [bbb channel address: ], 1:address:channel, [ 
-#? ] #? 1
+#?     $print [bbb channel address: ], 1:address:channel, 10:literal/newline
     3:number <- routine-state 2:number/id
-#?     $print [I: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [I: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after coming up (before any keys were pressed)]
     # press 'a'
-#?     $print [ccc channel address: ], 1:address:channel, [ 
-#? ] #? 1
+#?     $print [ccc channel address: ], 1:address:channel, 10:literal/newline
 #?     $exit #? 1
     1:address:channel <- write 1:address:channel, 97:literal  # 'a'
     restart 2:number/routine
     # 'read-move' still waiting for input
     wait-for-routine 2:number
     3:number <- routine-state 2:number/id
-#?     $print [II: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [II: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after rank 'a']
@@ -475,8 +443,7 @@ F read-move-blocking: routine failed to pause after rank 'a']
     # 'read-move' still waiting for input
     wait-for-routine 2:number
     3:number <- routine-state 2:number/id
-#?     $print [III: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [III: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after file 'a2']
@@ -486,8 +453,7 @@ F read-move-blocking: routine failed to pause after file 'a2']
     # 'read-move' still waiting for input
     wait-for-routine 2:number
     3:number <- routine-state 2:number
-#?     $print [IV: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [IV: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?/routine-state, [
 F read-move-blocking: routine failed to pause after hyphen 'a2-']
@@ -497,8 +463,7 @@ F read-move-blocking: routine failed to pause after hyphen 'a2-']
     # 'read-move' still waiting for input
     wait-for-routine 2:number
     3:number <- routine-state 2:number
-#?     $print [V: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [V: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?/routine-state, [
 F read-move-blocking: routine failed to pause after rank 'a2-a']
@@ -508,8 +473,7 @@ F read-move-blocking: routine failed to pause after rank 'a2-a']
     # 'read-move' still waiting for input
     wait-for-routine 2:number
     3:number <- routine-state 2:number
-#?     $print [VI: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [VI: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/waiting? <- equal 3:number/routine-state, 2:literal/waiting
     assert 4:boolean/waiting?, [
 F read-move-blocking: routine failed to pause after file 'a2-a4']
@@ -519,8 +483,7 @@ F read-move-blocking: routine failed to pause after file 'a2-a4']
     # 'read-move' now completes
     wait-for-routine 2:number
     3:number <- routine-state 2:number
-#?     $print [VII: routine ], 2:number, [ state ], 3:number [ 
-#? ] #? 1
+#?     $print [VII: routine ], 2:number, [ state ], 3:number 10:literal/newline
     4:boolean/completed? <- equal 3:number/routine-state, 1:literal/completed
     assert 4:boolean/completed?, [
 F read-move-blocking: routine failed to terminate on newline]
@@ -628,23 +591,18 @@ recipe make-move [
   b:address:array:address:array:character <- next-ingredient
   m:address:move <- next-ingredient
   from-file:number <- get m:address:move/deref, from-file:offset
-#?   $print from-file:number, [ 
-#? ] #? 1
+#?   $print from-file:number, 10:literal/newline
   from-rank:number <- get m:address:move/deref, from-rank:offset
-#?   $print from-rank:number, [ 
-#? ] #? 1
+#?   $print from-rank:number, 10:literal/newline
   to-file:number <- get m:address:move/deref, to-file:offset
-#?   $print to-file:number, [ 
-#? ] #? 1
+#?   $print to-file:number, 10:literal/newline
   to-rank:number <- get m:address:move/deref, to-rank:offset
-#?   $print to-rank:number, [ 
-#? ] #? 1
+#?   $print to-rank:number, 10:literal/newline
   f:address:array:character <- index b:address:array:address:array:character/deref, from-file:number
   src:address:character/square <- index-address f:address:array:character/deref, from-rank:number
   f:address:array:character <- index b:address:array:address:array:character/deref, to-file:number
   dest:address:character/square <- index-address f:address:array:character/deref, to-rank:number
-#?   $print src:address:character/deref, [ 
-#? ] #? 1
+#?   $print src:address:character/deref, 10:literal/newline
   dest:address:character/deref/square <- copy src:address:character/deref/square
   src:address:character/deref/square <- copy 32:literal  # ' '
   reply b:address:array:address:array:character/same-as-ingredient:0
diff --git a/edit.mu b/edit.mu
index 7a1fa232..2e3276ae 100644
--- a/edit.mu
+++ b/edit.mu
@@ -878,8 +878,7 @@ recipe insert-at-cursor [
   editor:address:editor-data <- next-ingredient
   c:character <- next-ingredient
   screen:address <- next-ingredient
-#?   $print [insert ], c:character, [ 
-#? ] #? 1
+#?   $print [insert ], c:character, 10:literal/newline
   before-cursor:address:address:duplex-list <- get-address editor:address:editor-data/deref, before-cursor:offset
   d:address:duplex-list <- get editor:address:editor-data/deref, data:offset
   insert-duplex c:character, before-cursor:address:address:duplex-list/deref
@@ -901,8 +900,7 @@ recipe insert-at-cursor [
   {
     # if we're at the column just before the wrap indicator
     wrap-column:number <- subtract right:number, 1:literal
-#?     $print [wrap? ], cursor-column:address:number/deref, [ vs ], wrap-column:number, [ 
-#? ] #? 1
+#?     $print [wrap? ], cursor-column:address:number/deref, [ vs ], wrap-column:number, 10:literal/newline
     at-wrap?:boolean <- greater-or-equal cursor-column:address:number/deref, wrap-column:number
     break-unless at-wrap?:boolean
 #?     $print [wrap!
@@ -936,8 +934,7 @@ recipe delete-before-cursor [
   before-cursor:address:address:duplex-list/deref <- copy prev:address:duplex-list
   cursor-column:address:number <- get-address editor:address:editor-data/deref, cursor-column:offset
   cursor-column:address:number/deref <- subtract cursor-column:address:number/deref, 1:literal
-#?   $print [delete-before-cursor: ], cursor-column:address:number/deref, [ 
-#? ] #? 1
+#?   $print [delete-before-cursor: ], cursor-column:address:number/deref, 10:literal/newline
 ]
 
 # takes a pointer 'curr' into the doubly-linked list and its sentinel, counts
@@ -1170,8 +1167,7 @@ recipe render-sandboxes [
   screen-height:number <- screen-height screen:address
   at-bottom?:boolean <- greater-or-equal row:number screen-height:number
   reply-if at-bottom?:boolean, row:number/same-as-ingredient:4, screen:address/same-as-ingredient:0
-#?   $print [rendering sandbox ], sandbox:address:sandbox-data, [ 
-#? ] #? 1
+#?   $print [rendering sandbox ], sandbox:address:sandbox-data, 10:literal/newline
   # render sandbox menu
   row:number <- add row:number, 1:literal
   move-cursor screen:address, row:number, left:number
@@ -2736,8 +2732,7 @@ recipe run-sandboxes [
     warnings:address:address:array:character <- get-address curr:address:sandbox-data/deref, warnings:offset
     fake-screen:address:address:screen <- get-address curr:address:sandbox-data/deref, screen:offset
     response:address:address:array:character/deref, warnings:address:address:array:character/deref, fake-screen:address:address:screen/deref <- run-interactive data:address:address:array:character/deref
-#?     $print warnings:address:address:array:character/deref, [ ], warnings:address:address:array:character/deref/deref, [ 
-#? ] #? 1
+#?     $print warnings:address:address:array:character/deref, [ ], warnings:address:address:array:character/deref/deref, 10:literal/newline
     curr:address:sandbox-data <- get curr:address:sandbox-data/deref, next-sandbox:offset
     loop
   }
@@ -2751,16 +2746,14 @@ recipe delete-sandbox [
   click-column:number <- get t:touch-event, column:offset
   current-sandbox:address:editor-data <- get env:address:programming-environment-data/deref, current-sandbox:offset
   right:number <- get current-sandbox:address:editor-data/deref, right:offset
-#?   $print [comparing column ], click-column:number, [ vs ], right:number, [ 
-#? ] #? 1
+#?   $print [comparing column ], click-column:number, [ vs ], right:number, 10:literal/newline
   at-right?:boolean <- equal click-column:number, right:number
   reply-unless at-right?:boolean, 0:literal/false
 #?   $print [trying to delete
 #? ] #? 1
   click-row:number <- get t:touch-event, row:offset
   prev:address:address:sandbox-data <- get-address env:address:programming-environment-data/deref, sandbox:offset
-#?   $print [prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, [ 
-#? ] #? 1
+#?   $print [prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, 10:literal/newline
   curr:address:sandbox-data <- get env:address:programming-environment-data/deref, sandbox:offset
   {
 #?     $print [next sandbox
@@ -2771,21 +2764,18 @@ recipe delete-sandbox [
 #?       $print [checking
 #? ] #? 1
       target-row:number <- get curr:address:sandbox-data/deref, starting-row-on-screen:offset
-#?       $print [comparing row ], target-row:number, [ vs ], click-row:number, [ 
-#? ] #? 1
+#?       $print [comparing row ], target-row:number, [ vs ], click-row:number, 10:literal/newline
       delete-curr?:boolean <- equal target-row:number, click-row:number
       break-unless delete-curr?:boolean
 #?       $print [found!
 #? ] #? 1
       # delete this sandbox, rerender and stop
       prev:address:address:sandbox-data/deref <- get curr:address:sandbox-data/deref, next-sandbox:offset
-#?       $print [setting prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, [ 
-#? ] #? 1
+#?       $print [setting prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, 10:literal/newline
       reply 1:literal/true
     }
     prev:address:address:sandbox-data <- get-address curr:address:sandbox-data/deref, next-sandbox:offset
-#?     $print [prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, [ 
-#? ] #? 1
+#?     $print [prev: ], prev:address:address:sandbox-data, [ -> ], prev:address:address:sandbox-data/deref, 10:literal/newline
     curr:address:sandbox-data <- get curr:address:sandbox-data/deref, next-sandbox:offset
     loop
   }
@@ -3229,8 +3219,7 @@ recipe print-string-with-gradient-background [
   color-range:number <- subtract bg-color2:number, bg-color1:number
   color-quantum:number <- divide color-range:number, len:number
 #?   close-console #? 2
-#?   $print len:number, [, ], color-range:number, [, ], color-quantum:number, [ 
-#? ] #? 2
+#?   $print len:number, [, ], color-range:number, [, ], color-quantum:number, 10:literal/newline
 #? #?   $exit #? 3
   bg-color:number <- copy bg-color1:number
   i:number <- copy 0:literal
@@ -3241,8 +3230,7 @@ recipe print-string-with-gradient-background [
     print-character x:address:screen, c:character, color:number, bg-color:number
     i:number <- add i:number, 1:literal
     bg-color:number <- add bg-color:number, color-quantum:number
-#?     $print [=> ], bg-color:number, [ 
-#? ] #? 1
+#?     $print [=> ], bg-color:number, 10:literal/newline
     loop
   }
 #?   $exit #? 1