about summary refs log tree commit diff stats
path: root/065duplex_list.mu
diff options
context:
space:
mode:
Diffstat (limited to '065duplex_list.mu')
-rw-r--r--065duplex_list.mu14
1 files changed, 4 insertions, 10 deletions
diff --git a/065duplex_list.mu b/065duplex_list.mu
index 58b5468e..85683786 100644
--- a/065duplex_list.mu
+++ b/065duplex_list.mu
@@ -493,23 +493,17 @@ scenario remove-range-to-end [
   ]
 ]
 
-# insert list beginning at 'new' after 'in'
-def insert-range in:&:duplex-list:_elem, start:&:duplex-list:_elem/contained-in:in -> in:&:duplex-list:_elem [
+# insert list beginning at 'start' after 'in'
+def splice in:&:duplex-list:_elem, start:&:duplex-list:_elem/contained-in:in -> in:&:duplex-list:_elem [
   local-scope
   load-ingredients
   return-unless in
   return-unless start
-  end:&:duplex-list:_elem <- copy start
-  {
-    next:&:duplex-list:_elem <- next end/insert-range
-    break-unless next
-    end <- copy next
-    loop
-  }
+  end:&:duplex-list:_elem <- last start
   next:&:duplex-list:_elem <- next in
-  *end <- put *end, next:offset, next
   {
     break-unless next
+    *end <- put *end, next:offset, next
     *next <- put *next, prev:offset, end
   }
   *in <- put *in, next:offset, start