aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/extmark.c20
-rw-r--r--src/nvim/extmark.h2
2 files changed, 7 insertions, 15 deletions
diff --git a/src/nvim/extmark.c b/src/nvim/extmark.c
index 73a54729f8..4e4db93a7b 100644
--- a/src/nvim/extmark.c
+++ b/src/nvim/extmark.c
@@ -356,14 +356,12 @@ void extmark_splice_delete(buf_T *buf, int l_row, colnr_T l_col, int u_row, coln
// Push mark to undo header
if (only_copy || (uvp != NULL && op == kExtmarkUndo && !mt_no_undo(mark))) {
- ExtmarkSavePos pos;
- pos.mark = mt_lookup_key(mark);
- pos.invalidated = invalidated;
- pos.old_row = mark.pos.row;
- pos.old_col = mark.pos.col;
- pos.row = -1;
- pos.col = -1;
-
+ ExtmarkSavePos pos = {
+ .mark = mt_lookup_key(mark),
+ .invalidated = invalidated,
+ .old_row = mark.pos.row,
+ .old_col = mark.pos.col
+ };
undo.data.savepos = pos;
undo.type = kExtmarkSavePos;
kv_push(*uvp, undo);
@@ -406,12 +404,8 @@ void extmark_apply_undo(ExtmarkUndoObject undo_info, bool undo)
MTPos end = marktree_get_altpos(curbuf->b_marktree, mark, itr);
buf_put_decor(curbuf, mt_decor(mark), mark.pos.row, end.row);
}
- // Redo
- } else {
- if (pos.row >= 0) {
- extmark_setraw(curbuf, pos.mark, pos.row, pos.col);
- }
}
+ // No Redo since kExtmarkSplice will move marks back
} else if (undo_info.type == kExtmarkMove) {
ExtmarkMove move = undo_info.data.move;
if (undo) {
diff --git a/src/nvim/extmark.h b/src/nvim/extmark.h
index a68bbf33f2..b1ef5cf214 100644
--- a/src/nvim/extmark.h
+++ b/src/nvim/extmark.h
@@ -45,8 +45,6 @@ typedef struct {
uint64_t mark; // raw mark id of the marktree
int old_row;
colnr_T old_col;
- int row;
- colnr_T col;
bool invalidated;
} ExtmarkSavePos;