aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2020-09-16 16:34:24 +0200
committerGitHub <noreply@github.com>2020-09-16 16:34:24 +0200
commitaa98527ce7efc1b4fd38e1d17c6f455239f39f21 (patch)
treeb71cf4cacbe2b87b52f5e3fa3dd097f03e22e5f6 /src
parentcf522488cca72b0dd6f19f0c0c3c007b8d118c3f (diff)
parent34c0f7af04bb96fb97949165c23a988f1957fcd9 (diff)
downloadrneovim-aa98527ce7efc1b4fd38e1d17c6f455239f39f21.tar.gz
rneovim-aa98527ce7efc1b4fd38e1d17c6f455239f39f21.tar.bz2
rneovim-aa98527ce7efc1b4fd38e1d17c6f455239f39f21.zip
Merge pull request #12917 from bfredl/bytes_setline
buf_attach: fix buffer updates with setline()
Diffstat (limited to 'src')
-rw-r--r--src/nvim/change.c3
-rw-r--r--src/nvim/eval.c3
2 files changed, 3 insertions, 3 deletions
diff --git a/src/nvim/change.c b/src/nvim/change.c
index b8bc08b747..8bf02385ef 100644
--- a/src/nvim/change.c
+++ b/src/nvim/change.c
@@ -362,8 +362,7 @@ void changed_bytes(linenr_T lnum, colnr_T col)
/// insert/delete bytes at column
///
/// Like changed_bytes() but also adjust extmark for "new" bytes.
-/// When "new" is negative text was deleted.
-static void inserted_bytes(linenr_T lnum, colnr_T col, int old, int new)
+void inserted_bytes(linenr_T lnum, colnr_T col, int old, int new)
{
if (curbuf_splice_pending == 0) {
extmark_splice_cols(curbuf, (int)lnum-1, col, old, new, kExtmarkUndo);
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 32830c5d7f..b395d7bb8a 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6962,9 +6962,10 @@ void set_buffer_lines(buf_T *buf, linenr_T lnum_arg, bool append,
if (!append && lnum <= curbuf->b_ml.ml_line_count) {
// Existing line, replace it.
+ int old_len = (int)STRLEN(ml_get(lnum));
if (u_savesub(lnum) == OK
&& ml_replace(lnum, (char_u *)line, true) == OK) {
- changed_bytes(lnum, 0);
+ inserted_bytes(lnum, 0, old_len, STRLEN(line));
if (is_curbuf && lnum == curwin->w_cursor.lnum) {
check_cursor_col();
}