mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Fix byte updates for blockwise paste at buffer end
This commit is contained in:
parent
c1a740ae33
commit
02dcc3c11a
@ -3109,6 +3109,9 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
|
||||
for (i = 0; i < y_size; i++) {
|
||||
int spaces;
|
||||
char shortline;
|
||||
// can just be 0 or 1, needed for blockwise paste beyond the current
|
||||
// buffer end
|
||||
int lines_appended = 0;
|
||||
|
||||
bd.startspaces = 0;
|
||||
bd.endspaces = 0;
|
||||
@ -3122,6 +3125,7 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
|
||||
break;
|
||||
}
|
||||
nr_lines++;
|
||||
lines_appended = 1;
|
||||
}
|
||||
/* get the old line and advance to the position to insert at */
|
||||
oldp = get_cursor_line_ptr();
|
||||
@ -3194,7 +3198,7 @@ void do_put(int regname, yankreg_T *reg, int dir, long count, int flags)
|
||||
memmove(ptr, oldp + bd.textcol + delcount, (size_t)columns);
|
||||
ml_replace(curwin->w_cursor.lnum, newp, false);
|
||||
extmark_splice_cols(curbuf, (int)curwin->w_cursor.lnum-1, bd.textcol,
|
||||
delcount, (int)totlen, kExtmarkUndo);
|
||||
delcount, (int)totlen + lines_appended, kExtmarkUndo);
|
||||
|
||||
++curwin->w_cursor.lnum;
|
||||
if (i == 0)
|
||||
|
@ -486,8 +486,8 @@ describe('lua: nvim_buf_attach on_bytes', function()
|
||||
feed('p')
|
||||
check_events {
|
||||
{ "test1", "bytes", 1, 3, 2, 1, 5, 0, 0, 0, 0, 1, 1 };
|
||||
{ "test1", "bytes", 1, 3, 3, 0, 7, 0, 0, 0, 0, 2, 2 };
|
||||
{ "test1", "bytes", 1, 3, 4, 0, 10, 0, 0, 0, 0, 2, 2 };
|
||||
{ "test1", "bytes", 1, 3, 3, 0, 7, 0, 0, 0, 0, 3, 3 };
|
||||
{ "test1", "bytes", 1, 3, 4, 0, 10, 0, 0, 0, 0, 3, 3 };
|
||||
}
|
||||
|
||||
feed('2G0')
|
||||
|
Loading…
Reference in New Issue
Block a user