about summary refs log tree commit diff stats
path: root/html/edit/012-editor-undo.mu.html
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2017-09-25 21:20:49 -0700
committerKartik K. Agaram <vc@akkartik.com>2017-09-25 21:20:49 -0700
commitc0d61295ed3575cfea7d2a22d81bae93c6009308 (patch)
tree42fc40d4ce6da540c9fa75d5e74ec75e5c313a7b /html/edit/012-editor-undo.mu.html
parent409237204368205a06e2b82fcab26b0a290d7412 (diff)
downloadmu-c0d61295ed3575cfea7d2a22d81bae93c6009308.tar.gz
4008
Allow list `push` operation to save result in a new list rather than
mutate the existing list.
Diffstat (limited to 'html/edit/012-editor-undo.mu.html')
-rw-r--r--html/edit/012-editor-undo.mu.html38
1 files changed, 19 insertions, 19 deletions
diff --git a/html/edit/012-editor-undo.mu.html b/html/edit/012-editor-undo.mu.html
index 7774741c..dcf95a50 100644
--- a/html/edit/012-editor-undo.mu.html
+++ b/html/edit/012-editor-undo.mu.html
@@ -133,7 +133,7 @@ if ('onhashchange' in window) {
 <span id="L70" class="LineNr">  70 </span>  <span class="Conceal">¦</span> undo:&amp;:<a href='../064list.mu.html#L6'>list</a>:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> get *editor, <span class="Constant">undo:offset</span>
 <span id="L71" class="LineNr">  71 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> undo
 <span id="L72" class="LineNr">  72 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> first undo
-<span id="L73" class="LineNr">  73 </span>  <span class="Conceal">¦</span> undo <span class="Special">&lt;-</span> <a href='../064list.mu.html#L25'>rest</a> undo
+<span id="L73" class="LineNr">  73 </span>  <span class="Conceal">¦</span> undo <span class="Special">&lt;-</span> <a href='../064list.mu.html#L24'>rest</a> undo
 <span id="L74" class="LineNr">  74 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">undo:offset</span>, undo
 <span id="L75" class="LineNr">  75 </span>  <span class="Conceal">¦</span> redo:&amp;:<a href='../064list.mu.html#L6'>list</a>:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> get *editor, <span class="Constant">redo:offset</span>
 <span id="L76" class="LineNr">  76 </span>  <span class="Conceal">¦</span> redo <span class="Special">&lt;-</span> push op, redo
@@ -151,7 +151,7 @@ if ('onhashchange' in window) {
 <span id="L88" class="LineNr">  88 </span>  <span class="Conceal">¦</span> redo:&amp;:<a href='../064list.mu.html#L6'>list</a>:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> get *editor, <span class="Constant">redo:offset</span>
 <span id="L89" class="LineNr">  89 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> redo
 <span id="L90" class="LineNr">  90 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> first redo
-<span id="L91" class="LineNr">  91 </span>  <span class="Conceal">¦</span> redo <span class="Special">&lt;-</span> <a href='../064list.mu.html#L25'>rest</a> redo
+<span id="L91" class="LineNr">  91 </span>  <span class="Conceal">¦</span> redo <span class="Special">&lt;-</span> <a href='../064list.mu.html#L24'>rest</a> redo
 <span id="L92" class="LineNr">  92 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">redo:offset</span>, redo
 <span id="L93" class="LineNr">  93 </span>  <span class="Conceal">¦</span> undo:&amp;:<a href='../064list.mu.html#L6'>list</a>:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> get *editor, <span class="Constant">undo:offset</span>
 <span id="L94" class="LineNr">  94 </span>  <span class="Conceal">¦</span> undo <span class="Special">&lt;-</span> push op, undo
@@ -221,7 +221,7 @@ if ('onhashchange' in window) {
 <span id="L158" class="LineNr"> 158 </span>  <span class="Conceal">¦</span> previous-coalesce-tag:num <span class="Special">&lt;-</span> get typing, <span class="Constant">tag:offset</span>
 <span id="L159" class="LineNr"> 159 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> previous-coalesce-tag
 <span id="L160" class="LineNr"> 160 </span>  <span class="Conceal">¦</span> before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">before-cursor:offset</span>
-<span id="L161" class="LineNr"> 161 </span>  <span class="Conceal">¦</span> insert-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L161" class="LineNr"> 161 </span>  <span class="Conceal">¦</span> insert-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L162" class="LineNr"> 162 </span>  <span class="Conceal">¦</span> typing <span class="Special">&lt;-</span> put typing, <span class="Constant">insert-until:offset</span>, insert-until
 <span id="L163" class="LineNr"> 163 </span>  <span class="Conceal">¦</span> typing <span class="Special">&lt;-</span> put typing, <span class="Constant">after-row:offset</span>, cursor-row
 <span id="L164" class="LineNr"> 164 </span>  <span class="Conceal">¦</span> typing <span class="Special">&lt;-</span> put typing, <span class="Constant">after-column:offset</span>, cursor-column
@@ -230,8 +230,8 @@ if ('onhashchange' in window) {
 <span id="L167" class="LineNr"> 167 </span>  <span class="Conceal">¦</span> <span class="muControl">break</span> <span class="Constant">+done-adding-insert-operation</span>
 <span id="L168" class="LineNr"> 168 </span>  <span class="Delimiter">}</span>
 <span id="L169" class="LineNr"> 169 </span>  <span class="Comment"># if not, create a new operation</span>
-<span id="L170" class="LineNr"> 170 </span>  insert-from:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> cursor-before
-<span id="L171" class="LineNr"> 171 </span>  insert-to:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> insert-from
+<span id="L170" class="LineNr"> 170 </span>  insert-from:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> cursor-before
+<span id="L171" class="LineNr"> 171 </span>  insert-to:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> insert-from
 <span id="L172" class="LineNr"> 172 </span>  op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
 <span id="L173" class="LineNr"> 173 </span>  *op <span class="Special">&lt;-</span> merge <span class="Constant">0/insert-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, insert-from, insert-to, <span class="Constant">1/coalesce</span>
 <span id="L174" class="LineNr"> 174 </span>  editor <span class="Special">&lt;-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op
@@ -250,9 +250,9 @@ if ('onhashchange' in window) {
 <span id="L187" class="LineNr"> 187 </span>  cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L188" class="LineNr"> 188 </span>  cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L189" class="LineNr"> 189 </span>  <span class="Comment"># never coalesce</span>
-<span id="L190" class="LineNr"> 190 </span>  insert-from:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> cursor-before
+<span id="L190" class="LineNr"> 190 </span>  insert-from:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> cursor-before
 <span id="L191" class="LineNr"> 191 </span>  before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">before-cursor:offset</span>
-<span id="L192" class="LineNr"> 192 </span>  insert-to:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L192" class="LineNr"> 192 </span>  insert-to:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L193" class="LineNr"> 193 </span>  op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
 <span id="L194" class="LineNr"> 194 </span>  *op <span class="Special">&lt;-</span> merge <span class="Constant">0/insert-operation</span>, cursor-row-before, cursor-column-before, top-before, cursor-row/after, cursor-column/after, top-after, insert-from, insert-to, <span class="Constant">0/never-coalesce</span>
 <span id="L195" class="LineNr"> 195 </span>  editor <span class="Special">&lt;-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op
@@ -280,9 +280,9 @@ if ('onhashchange' in window) {
 <span id="L217" class="LineNr"> 217 </span>  <span class="Conceal">¦</span> start:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get typing, <span class="Constant">insert-from:offset</span>
 <span id="L218" class="LineNr"> 218 </span>  <span class="Conceal">¦</span> end:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get typing, <span class="Constant">insert-until:offset</span>
 <span id="L219" class="LineNr"> 219 </span>  <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span>
-<span id="L220" class="LineNr"> 220 </span>  <span class="Conceal">¦</span> before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> start
+<span id="L220" class="LineNr"> 220 </span>  <span class="Conceal">¦</span> before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> start
 <span id="L221" class="LineNr"> 221 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor
-<span id="L222" class="LineNr"> 222 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> before-cursor, end
+<span id="L222" class="LineNr"> 222 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> before-cursor, end
 <span id="L223" class="LineNr"> 223 </span>  <span class="Conceal">¦</span> cursor-row <span class="Special">&lt;-</span> get typing, <span class="Constant">before-row:offset</span>
 <span id="L224" class="LineNr"> 224 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row
 <span id="L225" class="LineNr"> 225 </span>  <span class="Conceal">¦</span> cursor-column <span class="Special">&lt;-</span> get typing, <span class="Constant">before-column:offset</span>
@@ -480,7 +480,7 @@ if ('onhashchange' in window) {
 <span id="L417" class="LineNr"> 417 </span>  <span class="Conceal">¦</span> before-cursor <span class="Special">&lt;-</span> get *editor, <span class="Constant">before-cursor:offset</span>
 <span id="L418" class="LineNr"> 418 </span>  <span class="Conceal">¦</span> insert-from:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get typing, <span class="Constant">insert-from:offset</span>  <span class="Comment"># ignore insert-to because it's already been spliced away</span>
 <span id="L419" class="LineNr"> 419 </span>  <span class="Conceal">¦</span> <span class="Comment"># assert insert-to matches next(before-cursor)</span>
-<span id="L420" class="LineNr"> 420 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> before-cursor, insert-from
+<span id="L420" class="LineNr"> 420 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> before-cursor, insert-from
 <span id="L421" class="LineNr"> 421 </span>  <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span>
 <span id="L422" class="LineNr"> 422 </span>  <span class="Conceal">¦</span> cursor-row <span class="Special">&lt;-</span> get typing, <span class="Constant">after-row:offset</span>
 <span id="L423" class="LineNr"> 423 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row
@@ -1701,7 +1701,7 @@ if ('onhashchange' in window) {
 <span id="L1638" class="LineNr">1638 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> coalesce?
 <span id="L1639" class="LineNr">1639 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special">&lt;-</span> put deletion, <span class="Constant">delete-from:offset</span>, before-cursor
 <span id="L1640" class="LineNr">1640 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> backspaced-so-far:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">deleted-text:offset</span>
-<span id="L1641" class="LineNr">1641 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> backspaced-cell, backspaced-so-far
+<span id="L1641" class="LineNr">1641 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> backspaced-cell, backspaced-so-far
 <span id="L1642" class="LineNr">1642 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special">&lt;-</span> put deletion, <span class="Constant">deleted-text:offset</span>, backspaced-cell
 <span id="L1643" class="LineNr">1643 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special">&lt;-</span> put deletion, <span class="Constant">after-row:offset</span>, cursor-row
 <span id="L1644" class="LineNr">1644 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special">&lt;-</span> put deletion, <span class="Constant">after-column:offset</span>, cursor-column
@@ -1711,7 +1711,7 @@ if ('onhashchange' in window) {
 <span id="L1648" class="LineNr">1648 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
 <span id="L1649" class="LineNr">1649 </span>  <span class="Conceal">¦</span> <span class="Comment"># if not, create a new operation</span>
 <span id="L1650" class="LineNr">1650 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
-<span id="L1651" class="LineNr">1651 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L1651" class="LineNr">1651 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L1652" class="LineNr">1652 </span>  <span class="Conceal">¦</span> *op <span class="Special">&lt;-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, backspaced-cell/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">1/coalesce-backspace</span>
 <span id="L1653" class="LineNr">1653 </span>  <span class="Conceal">¦</span> editor <span class="Special">&lt;-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op
 <span id="L1654" class="LineNr">1654 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> +done-adding-backspace-operation</span>
@@ -1725,8 +1725,8 @@ if ('onhashchange' in window) {
 <span id="L1662" class="LineNr">1662 </span>  <span class="Conceal">¦</span> anchor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">delete-from:offset</span>
 <span id="L1663" class="LineNr">1663 </span>  <span class="Conceal">¦</span> <span class="muControl">break-unless</span> anchor
 <span id="L1664" class="LineNr">1664 </span>  <span class="Conceal">¦</span> deleted:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">deleted-text:offset</span>
-<span id="L1665" class="LineNr">1665 </span>  <span class="Conceal">¦</span> old-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L576'>last</a> deleted
-<span id="L1666" class="LineNr">1666 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> anchor, deleted
+<span id="L1665" class="LineNr">1665 </span>  <span class="Conceal">¦</span> old-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L572'>last</a> deleted
+<span id="L1666" class="LineNr">1666 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> anchor, deleted
 <span id="L1667" class="LineNr">1667 </span>  <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span>
 <span id="L1668" class="LineNr">1668 </span>  <span class="Conceal">¦</span> before-cursor <span class="Special">&lt;-</span> copy old-cursor
 <span id="L1669" class="LineNr">1669 </span>  <span class="Conceal">¦</span> cursor-row <span class="Special">&lt;-</span> get deletion, <span class="Constant">before-row:offset</span>
@@ -1745,7 +1745,7 @@ if ('onhashchange' in window) {
 <span id="L1682" class="LineNr">1682 </span>  <span class="Conceal">¦</span> start:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">delete-from:offset</span>
 <span id="L1683" class="LineNr">1683 </span>  <span class="Conceal">¦</span> end:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">delete-until:offset</span>
 <span id="L1684" class="LineNr">1684 </span>  <span class="Conceal">¦</span> data:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">data:offset</span>
-<span id="L1685" class="LineNr">1685 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> start, end
+<span id="L1685" class="LineNr">1685 </span>  <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> start, end
 <span id="L1686" class="LineNr">1686 </span>  <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span>
 <span id="L1687" class="LineNr">1687 </span>  <span class="Conceal">¦</span> cursor-row <span class="Special">&lt;-</span> get deletion, <span class="Constant">after-row:offset</span>
 <span id="L1688" class="LineNr">1688 </span>  <span class="Conceal">¦</span> *editor <span class="Special">&lt;-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row
@@ -1925,7 +1925,7 @@ if ('onhashchange' in window) {
 <span id="L1862" class="LineNr">1862 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> previous-coalesce-tag:num <span class="Special">&lt;-</span> get deletion, <span class="Constant">tag:offset</span>
 <span id="L1863" class="LineNr">1863 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> coalesce?:bool <span class="Special">&lt;-</span> equal previous-coalesce-tag, <span class="Constant">2/coalesce-delete</span>
 <span id="L1864" class="LineNr">1864 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> coalesce?
-<span id="L1865" class="LineNr">1865 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> delete-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L1865" class="LineNr">1865 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> delete-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L1866" class="LineNr">1866 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special">&lt;-</span> put deletion, <span class="Constant">delete-until:offset</span>, delete-until
 <span id="L1867" class="LineNr">1867 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deleted-so-far:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get deletion, <span class="Constant">deleted-text:offset</span>
 <span id="L1868" class="LineNr">1868 </span>  <span class="Conceal">¦</span> <span class="Conceal">¦</span> deleted-so-far <span class="Special">&lt;-</span> append deleted-so-far, deleted-cell
@@ -1938,7 +1938,7 @@ if ('onhashchange' in window) {
 <span id="L1875" class="LineNr">1875 </span>  <span class="Conceal">¦</span> <span class="Delimiter">}</span>
 <span id="L1876" class="LineNr">1876 </span>  <span class="Conceal">¦</span> <span class="Comment"># if not, create a new operation</span>
 <span id="L1877" class="LineNr">1877 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
-<span id="L1878" class="LineNr">1878 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L1878" class="LineNr">1878 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L1879" class="LineNr">1879 </span>  <span class="Conceal">¦</span> *op <span class="Special">&lt;-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cell/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">2/coalesce-delete</span>
 <span id="L1880" class="LineNr">1880 </span>  <span class="Conceal">¦</span> editor <span class="Special">&lt;-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op
 <span id="L1881" class="LineNr">1881 </span><span class="Constant">  </span><span class="Conceal">¦</span><span class="Constant"> +done-adding-delete-operation</span>
@@ -2040,7 +2040,7 @@ if ('onhashchange' in window) {
 <span id="L1977" class="LineNr">1977 </span>  <span class="Conceal">¦</span> top-after:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">top-of-screen:offset</span>
 <span id="L1978" class="LineNr">1978 </span>  <span class="Conceal">¦</span> cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L1979" class="LineNr">1979 </span>  <span class="Conceal">¦</span> cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-column:offset</span>
-<span id="L1980" class="LineNr">1980 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L1980" class="LineNr">1980 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L1981" class="LineNr">1981 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
 <span id="L1982" class="LineNr">1982 </span>  <span class="Conceal">¦</span> *op <span class="Special">&lt;-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cells/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">0/never-coalesce</span>
 <span id="L1983" class="LineNr">1983 </span>  <span class="Conceal">¦</span> editor <span class="Special">&lt;-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op
@@ -2143,7 +2143,7 @@ if ('onhashchange' in window) {
 <span id="L2080" class="LineNr">2080 </span>  <span class="Conceal">¦</span> top-after:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">top-of-screen:offset</span>
 <span id="L2081" class="LineNr">2081 </span>  <span class="Conceal">¦</span> op:&amp;:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special">&lt;-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span>
 <span id="L2082" class="LineNr">2082 </span>  <span class="Conceal">¦</span> before-cursor:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> get *editor, <span class="Constant">before-cursor:offset</span>
-<span id="L2083" class="LineNr">2083 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor
+<span id="L2083" class="LineNr">2083 </span>  <span class="Conceal">¦</span> deleted-until:&amp;:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special">&lt;-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor
 <span id="L2084" class="LineNr">2084 </span>  <span class="Conceal">¦</span> cursor-row:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-row:offset</span>
 <span id="L2085" class="LineNr">2085 </span>  <span class="Conceal">¦</span> cursor-column:num <span class="Special">&lt;-</span> get *editor, <span class="Constant">cursor-column:offset</span>
 <span id="L2086" class="LineNr">2086 </span>  <span class="Conceal">¦</span> *op <span class="Special">&lt;-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cells/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">0/never-coalesce</span>