# HG changeset patch # User Bram Moolenaar # Date 1408205583 -7200 # Node ID 3f92ef156c664fb8fea1f036a4a4c87af487ba6b # Parent 12ecdad8c903a34ed77a9f2d14d80598a8812ab8 updated for version 7.4.407 Problem: Inserting text for Visual block mode, with cursor movement, repeats the wrong text. (Aleksandar Ivanov) Solution: Reset the update_Insstart_orig flag. (Christian Brabandt) diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -6768,13 +6768,19 @@ stop_arrow() { if (arrow_used) { + Insstart = curwin->w_cursor; /* new insertion starts here */ + if (Insstart.col > Insstart_orig.col && !ins_need_undo) + /* Don't update the original insert position when moved to the + * right, except when nothing was inserted yet. */ + update_Insstart_orig = FALSE; + Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + if (u_save_cursor() == OK) { arrow_used = FALSE; ins_need_undo = FALSE; } - Insstart = curwin->w_cursor; /* new insertion starts here */ - Insstart_textlen = (colnr_T)linetabsize(ml_get_curline()); + ai_col = 0; #ifdef FEAT_VREPLACE if (State & VREPLACE_FLAG) diff --git a/src/testdir/test39.in b/src/testdir/test39.in --- a/src/testdir/test39.in +++ b/src/testdir/test39.in @@ -23,6 +23,9 @@ G$khhhhhkkcmno /^aaaa/ :exe ":norm! l\jjjlllI\\ \" :/^aa/,/^$/w >> test.out +/xaaa$/ +:exe ":norm! \jjjI<>\p\" +:/xaaa$/,/^$/w >> test.out :" Test for Visual block was created with the last $ /^A23$/ :exe ":norm! l\j$Aab\" @@ -77,6 +80,11 @@ bbbbbb cccccc dddddd +xaaa +bbbb +cccc +dddd + A23 4567 diff --git a/src/testdir/test39.ok b/src/testdir/test39.ok index ef7a2c6442ca8ae973f2ca86e6105214a166180d..d8e901563af492e50b8f70c470fee5678644dc0c GIT binary patch literal 514 zc$|e!-AcnS6!vxpe24P_1CzAtHbmHLVS?C;HK3RI>o)CL1q-b&>#KMYrfy~8x%j?( zKRJo&`VVcaD>vKS^Gme{MaCNqBJS&EgkgrED}9LgSGu7zIJDY3hg>N{0?=9`5`ZxV zkpQfg;E}xj4wX&-4*%