patch 9.0.1273: "1v" may select block with wrong size
Problem: "1v" may select block with wrong size. (Evgeni Chasnovski)
Solution: Compute "curswant" in the right line. (closes #11925)
diff --git a/src/normal.c b/src/normal.c
index 0bd6655..9a30067 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -5493,8 +5493,13 @@
}
else if (VIsual_mode == Ctrl_V)
{
+ // Update curswant on the original line, that is where "col" is
+ // valid.
+ linenr_T lnum = curwin->w_cursor.lnum;
+ curwin->w_cursor.lnum = VIsual.lnum;
update_curswant_force();
- curwin->w_curswant += + resel_VIsual_vcol * cap->count0 - 1;
+ curwin->w_curswant += resel_VIsual_vcol * cap->count0 - 1;
+ curwin->w_cursor.lnum = lnum;
coladvance(curwin->w_curswant);
}
else