summaryrefslogtreecommitdiff
path: root/src/ops.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2009-11-03 15:44:21 +0000
committerBram Moolenaar <Bram@vim.org>2009-11-03 15:44:21 +0000
commita1381de5f372f404180d896389dae1aaec02875d (patch)
treedb75f8a38f6e354543253d374047410435696f8f /src/ops.c
parent5b88ba47e818130b3499278c176e8921de8fc550 (diff)
downloadvim-git-a1381de5f372f404180d896389dae1aaec02875d.tar.gz
updated for version 7.2-279v7.2.279
Diffstat (limited to 'src/ops.c')
-rw-r--r--src/ops.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/ops.c b/src/ops.c
index b21f4c250..e5db31347 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2020,6 +2020,7 @@ op_replace(oap, c)
bd.is_MAX = (curwin->w_curswant == MAXCOL);
for ( ; curwin->w_cursor.lnum <= oap->end.lnum; ++curwin->w_cursor.lnum)
{
+ curwin->w_cursor.col = 0; /* make sure cursor position is valid */
block_prep(oap, &bd, curwin->w_cursor.lnum, TRUE);
if (bd.textlen == 0 && (!virtual_op || bd.is_MAX))
continue; /* nothing to replace */
@@ -2035,6 +2036,7 @@ op_replace(oap, c)
{
pos_T vpos;
+ vpos.lnum = curwin->w_cursor.lnum;
getvpos(&vpos, oap->start_vcol);
bd.startspaces += vpos.coladd;
n = bd.startspaces;
@@ -2693,11 +2695,8 @@ op_change(oap)
* initial coladd offset as part of "startspaces" */
if (bd.is_short)
{
- linenr_T lnum = curwin->w_cursor.lnum;
-
- curwin->w_cursor.lnum = linenr;
+ vpos.lnum = linenr;
(void)getvpos(&vpos, oap->start_vcol);
- curwin->w_cursor.lnum = lnum;
}
else
vpos.coladd = 0;