diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-08-26 20:41:16 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-08-26 20:41:16 +0200 |
commit | 257095760732597983bdd026e791907b7980e295 (patch) | |
tree | e528c6e4a6e96b3c4345c25789dc0b027edd6568 /src | |
parent | 7df0f6313a46b80d760c9a80241922544333351c (diff) | |
download | vim-257095760732597983bdd026e791907b7980e295.zip |
patch 7.4.2262
Problem: Fail to read register content from viminfo if it is 438 characters
long. (John Chen)
Solution: Adjust the check for line wrapping. (closes #1010)
Diffstat (limited to 'src')
-rw-r--r-- | src/ex_cmds.c | 2 | ||||
-rw-r--r-- | src/testdir/test_viminfo.vim | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 72d480cc9..64d14aedd 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -2526,7 +2526,7 @@ barline_writestring(FILE *fd, char_u *s, int remaining_start) else ++len; } - if (len > remaining) + if (len > remaining - 2) { fprintf(fd, ">%d\n|<", len); remaining = LSIZE - 20; diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim index 264baa174..97fd7f7a6 100644 --- a/src/testdir/test_viminfo.vim +++ b/src/testdir/test_viminfo.vim @@ -214,6 +214,19 @@ func Test_viminfo_registers() call assert_equal(l, getreg('d', 1, 1)) call assert_equal("V", getregtype('d')) + " Length around 440 switches to line continuation. + let len = 434 + while len < 445 + let s = repeat('a', len) + call setreg('"', s) + wviminfo Xviminfo + call setreg('"', '') + rviminfo Xviminfo + call assert_equal(s, getreg('"'), 'wrong register at length: ' . len) + + let len += 1 + endwhile + call delete('Xviminfo') endfunc diff --git a/src/version.c b/src/version.c index 9684a3ee1..a46e74830 100644 --- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2262, +/**/ 2261, /**/ 2260, |