changeset 9978:baad324e9fbc v7.4.2262

commit https://github.com/vim/vim/commit/257095760732597983bdd026e791907b7980e295 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 26 20:41:16 2016 +0200 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 https://github.com/vim/vim/issues/1010)
author Christian Brabandt <cb@256bit.org>
date Fri, 26 Aug 2016 20:45:08 +0200
parents 5b1f5a97901a
children 782064bf4bc1
files src/ex_cmds.c src/testdir/test_viminfo.vim src/version.c
diffstat 3 files changed, 16 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2526,7 +2526,7 @@ barline_writestring(FILE *fd, char_u *s,
 	else
 	    ++len;
     }
-    if (len > remaining)
+    if (len > remaining - 2)
     {
 	fprintf(fd, ">%d\n|<", len);
 	remaining = LSIZE - 20;
--- 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
 
--- 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,