diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-05-07 08:59:07 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-05-07 09:55:13 +0800 |
commit | f5ed1b3908e7284e67d86d42711dc927870855b3 (patch) | |
tree | 432728feb41b37352292220ece6d6caa49c0bd73 | |
parent | b2a8ed08551d2edf2bf98e830860f0130acd00f8 (diff) | |
download | rneovim-f5ed1b3908e7284e67d86d42711dc927870855b3.tar.gz rneovim-f5ed1b3908e7284e67d86d42711dc927870855b3.tar.bz2 rneovim-f5ed1b3908e7284e67d86d42711dc927870855b3.zip |
fix(extmarks): revert to int for extmark row
-rw-r--r-- | src/nvim/buffer_updates.c | 2 | ||||
-rw-r--r-- | src/nvim/edit.c | 4 | ||||
-rw-r--r-- | src/nvim/extmark.c | 10 | ||||
-rw-r--r-- | src/nvim/extmark.h | 2 |
4 files changed, 9 insertions, 9 deletions
diff --git a/src/nvim/buffer_updates.c b/src/nvim/buffer_updates.c index 49e3a03dac..3e2d04b3a2 100644 --- a/src/nvim/buffer_updates.c +++ b/src/nvim/buffer_updates.c @@ -299,7 +299,7 @@ void buf_updates_send_changes(buf_T *buf, linenr_T firstline, int64_t num_added, kv_size(buf->update_callbacks) = j; } -void buf_updates_send_splice(buf_T *buf, linenr_T start_row, colnr_T start_col, bcount_t start_byte, +void buf_updates_send_splice(buf_T *buf, int start_row, colnr_T start_col, bcount_t start_byte, int old_row, colnr_T old_col, bcount_t old_byte, int new_row, colnr_T new_col, bcount_t new_byte) { diff --git a/src/nvim/edit.c b/src/nvim/edit.c index ab80f09228..a608612af5 100644 --- a/src/nvim/edit.c +++ b/src/nvim/edit.c @@ -2002,7 +2002,7 @@ void change_indent(int type, int amount, int round, int replaced, int call_chang // TODO(bfredl): test for crazy edge cases, like we stand on a TAB or // something? does this even do the right text change then? int delta = orig_col - new_col; - extmark_splice_cols(curbuf, curwin->w_cursor.lnum - 1, new_col, + extmark_splice_cols(curbuf, (int)curwin->w_cursor.lnum - 1, new_col, delta < 0 ? -delta : 0, delta > 0 ? delta : 0, kExtmarkUndo); @@ -9118,7 +9118,7 @@ static bool ins_tab(void) } } if (!(State & VREPLACE_FLAG)) { - extmark_splice_cols(curbuf, fpos.lnum - 1, change_col, + extmark_splice_cols(curbuf, (int)fpos.lnum - 1, change_col, cursor->col - change_col, fpos.col - change_col, kExtmarkUndo); } diff --git a/src/nvim/extmark.c b/src/nvim/extmark.c index 09ea2be4fe..f367bc66e0 100644 --- a/src/nvim/extmark.c +++ b/src/nvim/extmark.c @@ -417,7 +417,7 @@ static void u_extmark_set(buf_T *buf, uint64_t mark, int row, colnr_T col) /// /// useful when we cannot simply reverse the operation. This will do nothing on /// redo, enforces correct position when undo. -void u_extmark_copy(buf_T *buf, linenr_T l_row, colnr_T l_col, linenr_T u_row, colnr_T u_col) +void u_extmark_copy(buf_T *buf, int l_row, colnr_T l_col, int u_row, colnr_T u_col) { u_header_T *uhp = u_force_get_undo_header(buf); if (!uhp) { @@ -553,7 +553,7 @@ void extmark_adjust(buf_T *buf, linenr_T line1, linenr_T line2, long amount, lon // the end column of the new region. // @param new_byte Byte extent of the new region. // @param undo -void extmark_splice(buf_T *buf, linenr_T start_row, colnr_T start_col, int old_row, colnr_T old_col, +void extmark_splice(buf_T *buf, int start_row, colnr_T start_col, int old_row, colnr_T old_col, bcount_t old_byte, int new_row, colnr_T new_col, bcount_t new_byte, ExtmarkOp undo) { @@ -573,7 +573,7 @@ void extmark_splice(buf_T *buf, linenr_T start_row, colnr_T start_col, int old_r undo); } -void extmark_splice_impl(buf_T *buf, linenr_T start_row, colnr_T start_col, bcount_t start_byte, +void extmark_splice_impl(buf_T *buf, int start_row, colnr_T start_col, bcount_t start_byte, int old_row, colnr_T old_col, bcount_t old_byte, int new_row, colnr_T new_col, bcount_t new_byte, ExtmarkOp undo) { @@ -588,7 +588,7 @@ void extmark_splice_impl(buf_T *buf, linenr_T start_row, colnr_T start_col, bcou // beginning and right-gravity at the end need not be preserved. // Also be smart about marks that already have been saved (important for // merge!) - linenr_T end_row = start_row + old_row; + int end_row = start_row + old_row; int end_col = (old_row ? 0 : start_col) + old_col; u_extmark_copy(buf, start_row, start_col, end_row, end_col); } @@ -656,7 +656,7 @@ void extmark_splice_impl(buf_T *buf, linenr_T start_row, colnr_T start_col, bcou } } -void extmark_splice_cols(buf_T *buf, linenr_T start_row, colnr_T start_col, colnr_T old_col, +void extmark_splice_cols(buf_T *buf, int start_row, colnr_T start_col, colnr_T old_col, colnr_T new_col, ExtmarkOp undo) { extmark_splice(buf, start_row, start_col, diff --git a/src/nvim/extmark.h b/src/nvim/extmark.h index 84d1e8d03b..b856a1148f 100644 --- a/src/nvim/extmark.h +++ b/src/nvim/extmark.h @@ -29,7 +29,7 @@ typedef ptrdiff_t bcount_t; // delete the columns between mincol and endcol typedef struct { - linenr_T start_row; + int start_row; colnr_T start_col; int old_row; colnr_T old_col; |