patch 8.0.0330: illegal memory access after "vapo"
Problem: Illegal memory access after "vapo". (Dominique Pelle)
Solution: Fix the cursor column.
diff --git a/src/search.c b/src/search.c
index 36410e5..6e62184 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4241,7 +4241,11 @@
* line, we get stuck there. Trap this here. */
if (VIsual_mode == 'V' && start_lnum == curwin->w_cursor.lnum)
goto extend;
- VIsual.lnum = start_lnum;
+ if (VIsual.lnum != start_lnum)
+ {
+ VIsual.lnum = start_lnum;
+ VIsual.col = 0;
+ }
VIsual_mode = 'V';
redraw_curbuf_later(INVERTED); /* update the inversion */
showmode();
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 8768395..9d093d3 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -36,3 +36,10 @@
set tw&
bw!
endfu
+
+func Test_Visual_vapo()
+ new
+ normal oxx
+ normal vapo
+ bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index 9073c07..906c30c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 330,
+/**/
329,
/**/
328,