summaryrefslogtreecommitdiff
path: root/src/normal.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-08-19 22:48:30 +0200
committerBram Moolenaar <Bram@vim.org>2019-08-19 22:48:30 +0200
commit9a4a8c4d5993c6371486c895a515c2ad351e9aaa (patch)
tree8edb7b29042b5c89c345c5df3220f715eeecf39b /src/normal.c
parentea7ecfe2a08877f98edec9b9c26b9e1b3673f00b (diff)
downloadvim-git-9a4a8c4d5993c6371486c895a515c2ad351e9aaa.tar.gz
patch 8.1.1890: ml_get error when deleting fold markerv8.1.1890
Problem: Ml_get error when deleting fold marker. Solution: Check that the line number is not below the last line. Adjust the fold when deleting the empty line. (Christian Brabandt, closes #4834)
Diffstat (limited to 'src/normal.c')
-rw-r--r--src/normal.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/normal.c b/src/normal.c
index 7951bd5c3..1db1d16ab 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -9346,13 +9346,15 @@ nv_put_opt(cmdarg_T *cap, int fix_indent)
reg1 = get_register(regname, TRUE);
}
- /* Now delete the selected text. */
+ // Now delete the selected text. Avoid messages here.
cap->cmdchar = 'd';
cap->nchar = NUL;
cap->oap->regname = NUL;
+ ++msg_silent;
nv_operator(cap);
do_pending_operator(cap, 0, FALSE);
empty = (curbuf->b_ml.ml_flags & ML_EMPTY);
+ --msg_silent;
/* delete PUT_LINE_BACKWARD; */
cap->oap->regname = regname;
@@ -9407,6 +9409,7 @@ nv_put_opt(cmdarg_T *cap, int fix_indent)
if (empty && *ml_get(curbuf->b_ml.ml_line_count) == NUL)
{
ml_delete(curbuf->b_ml.ml_line_count, TRUE);
+ deleted_lines(curbuf->b_ml.ml_line_count + 1, 1);
/* If the cursor was in that line, move it to the end of the last
* line. */