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)
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;
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;
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
--- /dev/null
+func Test_empty_buffer()
+ new
+ insert
+a
+b
+c
+d
+.
+ call assert_equal(1, line("''"))
+ bwipe!
+endfunc
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1970,
/**/
1969,
/**/