summaryrefslogtreecommitdiff
path: root/src/modification.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/modification.cc')
-rw-r--r--src/modification.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/modification.cc b/src/modification.cc
index 2539ea3a..876463f1 100644
--- a/src/modification.cc
+++ b/src/modification.cc
@@ -165,6 +165,12 @@ std::vector<Modification> compute_modifications(memoryview<Buffer::Change> chang
}
ByteCoord num_removed_from_added = std::min(num_removed, num_added_after_pos);
modif.num_added -= num_removed_from_added;
+
+ if (change.begin.line == modif.new_coord.line)
+ modif.num_added.column += change.begin.column - modif.new_coord.column;
+ else
+ modif.num_added.column += change.begin.column;
+
modif.num_removed += num_removed - num_removed_from_added;
for (auto it = next; it != res.end(); ++it)