about summary refs log tree commit diff stats
path: root/undo.lua
diff options
context:
space:
mode:
Diffstat (limited to 'undo.lua')
-rw-r--r--undo.lua15
1 files changed, 1 insertions, 14 deletions
diff --git a/undo.lua b/undo.lua
index a41ba38..08b867c 100644
--- a/undo.lua
+++ b/undo.lua
@@ -55,10 +55,8 @@ function snapshot(State, s,e)
     end_line=e,
     -- no filename; undo history is cleared when filename changes
   }
-  -- deep copy lines without cached stuff like text fragments
   for i=s,e do
-    local line = State.lines[i]
-    table.insert(event.lines, {data=line.data})  -- I've forgotten: should we deepcopy(line.data)?
+    table.insert(event.lines, deepcopy(State.lines[i]))
   end
   return event
 end
@@ -81,17 +79,6 @@ function patch(lines, from, to)
   end
 end
 
-function patch_placeholders(line_cache, from, to)
-  assert(from.start_line == to.start_line, 'failed to patch undo operation')
-  for i=from.end_line,from.start_line,-1 do
-    table.remove(line_cache, i)
-  end
-  assert(#to.lines == to.end_line-to.start_line+1, 'failed to patch undo operation')
-  for i=1,#to.lines do
-    table.insert(line_cache, to.start_line+i-1, {})
-  end
-end
-
 -- https://stackoverflow.com/questions/640642/how-do-you-copy-a-lua-table-by-value/26367080#26367080
 function deepcopy(obj, seen)
   if type(obj) ~= 'table' then return obj end