if (u_savesub(lnum) == OK && ml_replace(lnum, line, TRUE) == OK)
{
changed_bytes(lnum, 0);
- check_cursor_col();
+ if (lnum == curwin->w_cursor.lnum)
+ check_cursor_col();
rettv->vval.v_number = 0; /* OK */
}
}
|| virtual_active())
curwin->w_cursor.col = len;
else
+ {
curwin->w_cursor.col = len - 1;
+#ifdef FEAT_MBYTE
+ /* prevent cursor from moving on the trail byte */
+ if (has_mbyte)
+ mb_adjust_cursor();
+#endif
+ }
}
#ifdef FEAT_VIRTUALEDIT
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 225,
/**/
224,
/**/