From 1fc7e972b00ce271328fcb2734a321562b7194da Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 16 Aug 2014 18:13:03 +0200 Subject: [PATCH] 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) --- src/edit.c | 10 ++++++++-- src/testdir/test39.in | 8 ++++++++ src/testdir/test39.ok | Bin 481 -> 514 bytes src/version.c | 2 ++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/edit.c b/src/edit.c index 6f30d81f60..29721afa33 100644 --- 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 index c1e1cc49a6..7d1c672522 100644 --- 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 100644 GIT binary patch delta 39 lcmaFJ+{7|rqKr*}T}5JIA{UTO0s;`73Jw@i~tx91V8`) diff --git a/src/version.c b/src/version.c index 7e5b3cdd51..2b5dc454e5 100644 --- a/src/version.c +++ b/src/version.c @@ -741,6 +741,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 407, /**/ 406, /**/