# HG changeset patch # User Christian Brabandt # Date 1465136105 -7200 # Node ID 7d13d180a6aec3b139f0a6873d1c51c981c82d1e # Parent 1c0fd34df5b3a613919c3d870794ee71c33bc2a0 commit https://github.com/vim/vim/commit/bbe8d91e695184771d7e45315258fab8eb3e6b07 Author: Bram Moolenaar Date: Sun Jun 5 16:10:57 2016 +0200 patch 7.4.1902 Problem: No test for collapsing buffers for a channel. Some text is lost. Solution: Add a simple test. Set rq_buflen correctly. diff --git a/src/channel.c b/src/channel.c --- a/src/channel.c +++ b/src/channel.c @@ -1657,6 +1657,7 @@ channel_collapse(channel_T *channel, int p += n->rq_buflen; vim_free(n->rq_buffer); } + node->rq_buflen = (long_u)(p - newbuf); /* dispose of the collapsed nodes and their buffers */ for (n = node->rq_next; n != last_node; ) diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim --- a/src/testdir/test_channel.vim +++ b/src/testdir/test_channel.vim @@ -538,6 +538,9 @@ func Test_nl_pipe() call assert_equal("this", ch_readraw(handle)) call assert_equal("AND this", ch_readraw(handle)) + call ch_sendraw(handle, "split this line\n") + call assert_equal("this linethis linethis line", ch_readraw(handle)) + let reply = ch_evalraw(handle, "quit\n") call assert_equal("Goodbye!", reply) finally diff --git a/src/testdir/test_channel_pipe.py b/src/testdir/test_channel_pipe.py --- a/src/testdir/test_channel_pipe.py +++ b/src/testdir/test_channel_pipe.py @@ -6,6 +6,7 @@ from __future__ import print_function import sys +import time if __name__ == "__main__": @@ -31,6 +32,15 @@ if __name__ == "__main__": if typed.startswith("double "): print(typed[7:-1] + "\nAND " + typed[7:-1]) sys.stdout.flush() + if typed.startswith("split "): + print(typed[6:-1], end='') + sys.stdout.flush() + time.sleep(0.05) + print(typed[6:-1], end='') + sys.stdout.flush() + time.sleep(0.05) + print(typed[6:-1]) + sys.stdout.flush() if typed.startswith("echoerr "): print(typed[8:-1], file=sys.stderr) sys.stderr.flush() diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1902, +/**/ 1901, /**/ 1900,