summaryrefslogtreecommitdiff
path: root/src/ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ops.c')
-rw-r--r--src/ops.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/ops.c b/src/ops.c
index a88c90739..8c239da13 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3724,13 +3724,17 @@ end:
&& curwin->w_cursor.col > 0
&& !(restart_edit || (State & INSERT)))
{
-#ifdef FEAT_VIRTUALEDIT
- col = curwin->w_cursor.col;
-#endif
+ /* Put the cursor on the last character in the line. */
dec_cursor();
#ifdef FEAT_VIRTUALEDIT
if (ve_flags == VE_ALL)
- curwin->w_cursor.coladd = col - curwin->w_cursor.col;
+ {
+ colnr_T scol, ecol;
+
+ /* Coladd is set to the width of the last character. */
+ getvcol(curwin, &curwin->w_cursor, &scol, NULL, &ecol);
+ curwin->w_cursor.coladd = ecol - scol + 1;
+ }
#endif
}
}