changeset 9377:5ec4fbfe38c5 v7.4.1970

commit https://github.com/vim/vim/commit/70e136e1d86ea1d795774824c7b712245912946d Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jul 1 14:04:51 2016 +0200 patch 7.4.1970 Problem: Using ":insert" in an empty buffer sets the jump mark. (Ingo Karkat) Solution: Don't adjust marks when replacing the empty line in an empty buffer. (closes #892)
author Christian Brabandt <cb@256bit.org>
date Fri, 01 Jul 2016 14:15:06 +0200
parents 51f8cb5e7466
children 966944639989
files src/ex_cmds.c src/testdir/test_alot.vim src/testdir/test_jumps.vim src/version.c
diffstat 4 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -4372,7 +4372,7 @@ ex_append(exarg_T *eap)
     if (eap->cmdidx != CMD_append)
 	--lnum;
 
-    /* when the buffer is empty append to line 0 and delete the dummy line */
+    /* when the buffer is empty need to delete the dummy line */
     if (empty && lnum == 1)
 	lnum = 0;
 
@@ -4456,7 +4456,7 @@ ex_append(exarg_T *eap)
 
 	did_undo = TRUE;
 	ml_append(lnum, theline, (colnr_T)0, FALSE);
-	appended_lines_mark(lnum, 1L);
+	appended_lines_mark(lnum + (empty ? 1 : 0), 1L);
 
 	vim_free(theline);
 	++lnum;
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -16,6 +16,7 @@ source test_glob2regpat.vim
 source test_goto.vim
 source test_help_tagjump.vim
 source test_join.vim
+source test_jumps.vim
 source test_lispwords.vim
 source test_matchstrpos.vim
 source test_menu.vim
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_jumps.vim
@@ -0,0 +1,11 @@
+func Test_empty_buffer()
+  new
+  insert
+a
+b
+c
+d
+.
+  call assert_equal(1, line("''"))
+  bwipe!
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1970,
+/**/
     1969,
 /**/
     1968,