summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-01-28 20:18:08 +0100
committerBram Moolenaar <Bram@vim.org>2021-01-28 20:18:08 +0100
commitdf2c2988bbaecd28b0fbec8d64327b1bbb005e19 (patch)
tree8dea246c6df12a4591b94a69cc368a6bf1caccd3
parent97202d951685fc4d90085da676a90644cbf72571 (diff)
patch 8.2.2425: cursor on invalid line with range and :substitutev8.2.2425
Problem: Cursor on invalid line with range and :substitute. Solution: Do not move the cursor when skipping commands. (closes #3434)
-rw-r--r--src/ex_cmds.c2
-rw-r--r--src/testdir/test_eval_stuff.vim5
-rw-r--r--src/version.c2
3 files changed, 9 insertions, 0 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 545e06dbde..12219e7ba5 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3747,6 +3747,8 @@ ex_substitute(exarg_T *eap)
{
linenr_T joined_lines_count;
+ if (eap->skip)
+ return;
curwin->w_cursor.lnum = eap->line1;
if (*cmd == 'l')
eap->flags = EXFLAG_LIST;
diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim
index 52e8df9242..95f5b2497d 100644
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -68,6 +68,11 @@ func Test_for_invalid()
call assert_fails("for x in 99", 'E714:')
call assert_fails("for x in 'asdf'", 'E714:')
call assert_fails("for x in {'a': 9}", 'E714:')
+
+ if 0
+ /1/5/2/s/\n
+ endif
+ redraw
endfunc
func Test_readfile_binary()
diff --git a/src/version.c b/src/version.c
index fbdb35cc63..2e0da2b3a7 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2425,
+/**/
2424,
/**/
2423,