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)
This commit is contained in:
Bram Moolenaar
2016-07-01 14:04:51 +02:00
parent 24cf233ef9
commit 70e136e1d8
4 changed files with 16 additions and 2 deletions

View File

@ -4372,7 +4372,7 @@ ex_append(exarg_T *eap)
if (eap->cmdidx != CMD_append) if (eap->cmdidx != CMD_append)
--lnum; --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) if (empty && lnum == 1)
lnum = 0; lnum = 0;
@ -4456,7 +4456,7 @@ ex_append(exarg_T *eap)
did_undo = TRUE; did_undo = TRUE;
ml_append(lnum, theline, (colnr_T)0, FALSE); ml_append(lnum, theline, (colnr_T)0, FALSE);
appended_lines_mark(lnum, 1L); appended_lines_mark(lnum + (empty ? 1 : 0), 1L);
vim_free(theline); vim_free(theline);
++lnum; ++lnum;

View File

@ -16,6 +16,7 @@ source test_glob2regpat.vim
source test_goto.vim source test_goto.vim
source test_help_tagjump.vim source test_help_tagjump.vim
source test_join.vim source test_join.vim
source test_jumps.vim
source test_lispwords.vim source test_lispwords.vim
source test_matchstrpos.vim source test_matchstrpos.vim
source test_menu.vim source test_menu.vim

View File

@ -0,0 +1,11 @@
func Test_empty_buffer()
new
insert
a
b
c
d
.
call assert_equal(1, line("''"))
bwipe!
endfunc

View File

@ -753,6 +753,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1970,
/**/ /**/
1969, 1969,
/**/ /**/