diff options
-rw-r--r-- | src/mark.c | 3 | ||||
-rw-r--r-- | src/testdir/test_viminfo.vim | 26 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 27 insertions, 4 deletions
diff --git a/src/mark.c b/src/mark.c index 0627a7cea..9c84bc40d 100644 --- a/src/mark.c +++ b/src/mark.c @@ -1597,7 +1597,8 @@ handle_viminfo_mark(garray_T *values, int force) if (fm != NULL) { - if (vi_namedfm != NULL || fm->time_set < timestamp || force) + if (vi_namedfm != NULL || fm->fmark.mark.lnum == 0 + || fm->time_set < timestamp || force) { fm->fmark.mark.lnum = lnum; fm->fmark.mark.col = col; diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim index 97fd7f7a6..7d0f1570b 100644 --- a/src/testdir/test_viminfo.vim +++ b/src/testdir/test_viminfo.vim @@ -1,6 +1,6 @@ " Test for reading and writing .viminfo -function Test_read_and_write() +function Test_viminfo_read_and_write() call histdel(':') let lines = [ \ '# comment line', @@ -17,7 +17,7 @@ function Test_read_and_write() let lines = readfile('Xviminfo') let done = 0 for line in lines - if line[0] == '|' && line !~ '^|[234],' + if line[0] == '|' && line !~ '^|[234],' && line !~ '^|<' if done == 0 call assert_equal('|1,4', line) elseif done == 1 @@ -469,7 +469,27 @@ func Test_viminfo_file_mark_tabclose() silent! bwipe Xtestfileintab endfunc -func Test_oldfiles() +func Test_viminfo_file_mark_zero_time() + let lines = [ + \ '# Viminfo version', + \ '|1,4', + \ '', + \ '*encoding=utf-8', + \ '', + \ '# File marks:', + \ "'B 1 0 /tmp/nothing", + \ '|4,66,1,0,0,"/tmp/nothing"', + \ "", + \ ] + call writefile(lines, 'Xviminfo') + delmark B + rviminfo Xviminfo + call delete('Xviminfo') + call assert_equal(1, line("'B")) + delmark B +endfunc + +func Test_viminfo_oldfiles() let v:oldfiles = [] let lines = [ \ '# comment line', diff --git a/src/version.c b/src/version.c index 939a3e138..2bfd48507 100644 --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 39, +/**/ 38, /**/ 37, |