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)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 72d480c..64d14ae 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2526,7 +2526,7 @@
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 264baa1..97fd7f7 100644
--- a/src/testdir/test_viminfo.vim
+++ b/src/testdir/test_viminfo.vim
@@ -214,6 +214,19 @@
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 9684a3e..a46e748 100644
--- a/src/version.c
+++ b/src/version.c
@@ -764,6 +764,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2262,
+/**/
2261,
/**/
2260,