summaryrefslogtreecommitdiff
path: root/src/ops.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2014-02-22 23:03:55 +0100
committerBram Moolenaar <Bram@vim.org>2014-02-22 23:03:55 +0100
commitb1d90a3d770c5e513e6cad8284a5168ac5535883 (patch)
tree5cf472c7e8c9b9c43ddabaeef69927364eafdbc5 /src/ops.c
parent631abc35dfc7ad87255c940fd22eee416c731658 (diff)
downloadvim-git-b1d90a3d770c5e513e6cad8284a5168ac5535883.tar.gz
updated for version 7.4.186v7.4.186
Problem: Insert in Visual mode sometimes gives incorrect results. (Dominique Pelle) Solution: Remember the original insert start position. (Christian Brabandt, Dominique Pelle)
Diffstat (limited to 'src/ops.c')
-rw-r--r--src/ops.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ops.c b/src/ops.c
index 8505f64a5..4517e4225 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2643,20 +2643,20 @@ op_insert(oap, count1)
/* The user may have moved the cursor before inserting something, try
* to adjust the block for that. */
- if (oap->start.lnum == curbuf->b_op_start.lnum && !bd.is_MAX)
+ if (oap->start.lnum == curbuf->b_op_start_orig.lnum && !bd.is_MAX)
{
if (oap->op_type == OP_INSERT
- && oap->start.col != curbuf->b_op_start.col)
+ && oap->start.col != curbuf->b_op_start_orig.col)
{
- oap->start.col = curbuf->b_op_start.col;
+ oap->start.col = curbuf->b_op_start_orig.col;
pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)
- oap->start_vcol;
oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd);
}
else if (oap->op_type == OP_APPEND
- && oap->end.col >= curbuf->b_op_start.col)
+ && oap->end.col >= curbuf->b_op_start_orig.col)
{
- oap->start.col = curbuf->b_op_start.col;
+ oap->start.col = curbuf->b_op_start_orig.col;
/* reset pre_textlen to the value of OP_INSERT */
pre_textlen += bd.textlen;
pre_textlen -= getviscol2(oap->start.col, oap->start.coladd)