aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/edit.c
diff options
context:
space:
mode:
authorAndré Twupack <atwupack@mailbox.org>2014-09-19 21:12:47 +0200
committerAndré Twupack <atwupack@mailbox.org>2014-09-19 21:12:47 +0200
commitea492696cfbb5912b9b42112159a028e24f9e2fc (patch)
tree862dc1c821934139ad40c17768d03e6d71719a77 /src/nvim/edit.c
parent6cc6b0ff9eb5bba50d125199b984cb1a374e4f77 (diff)
downloadrneovim-ea492696cfbb5912b9b42112159a028e24f9e2fc.tar.gz
rneovim-ea492696cfbb5912b9b42112159a028e24f9e2fc.tar.bz2
rneovim-ea492696cfbb5912b9b42112159a028e24f9e2fc.zip
vim-patch: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) https://code.google.com/p/vim/source/detail?r=v7-4-407
Diffstat (limited to 'src/nvim/edit.c')
-rw-r--r--src/nvim/edit.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index 3b450e5245..5131dc3b38 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -5610,12 +5610,18 @@ static void spell_back_to_badword(void)
int stop_arrow(void)
{
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(get_cursor_line_ptr());
+
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(get_cursor_line_ptr());
ai_col = 0;
if (State & VREPLACE_FLAG) {
orig_line_count = curbuf->b_ml.ml_line_count;