patch 8.2.3369: auto formatting after "cw" leaves cursor in wrong spot
Problem: Auto formatting after "cw" leaves cursor in wrong spot.
Solution: Do not auto-format after the delete. (closes #8789)
diff --git a/src/ops.c b/src/ops.c
index 614ada5..fa6a4c4 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -942,7 +942,8 @@
curwin->w_cursor = curpos; // restore curwin->w_cursor
(void)do_join(2, FALSE, FALSE, FALSE, FALSE);
}
- auto_format(FALSE, TRUE);
+ if (oap->op_type == OP_DELETE)
+ auto_format(FALSE, TRUE);
}
msgmore(curbuf->b_ml.ml_line_count - old_lcount);
@@ -1809,6 +1810,7 @@
vim_free(ins_text);
}
}
+ auto_format(FALSE, TRUE);
return retval;
}
diff --git a/src/testdir/test_textformat.vim b/src/testdir/test_textformat.vim
index 0dc28c7..2b76292 100644
--- a/src/testdir/test_textformat.vim
+++ b/src/testdir/test_textformat.vim
@@ -967,6 +967,13 @@
exe "normal f4xx"
call assert_equal(['1 2 5 6 7 ', '8 9'], getline(1, 2))
+ " using "cw" leaves cursor in right spot
+ call setline(1, ['Now we g whether that nation, or',
+ \ 'any nation so conceived and,'])
+ set fo=tcqa tw=35
+ exe "normal 2G0cwx\<Esc>"
+ call assert_equal(['Now we g whether that nation, or x', 'nation so conceived and,'], getline(1, 2))
+
set tw=0
set fo&
%bw!
diff --git a/src/version.c b/src/version.c
index a439d99..aa5d02a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3369,
+/**/
3368,
/**/
3367,