From ef68e4fa528165f8dd63156feeffc1af629b8d8a Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sat, 2 Sep 2017 16:28:36 +0200 Subject: patch 8.0.1035: sending buffer lines to terminal doesn't work on MS-Windows Problem: Sending buffer lines to terminal doesn't work on MS-Windows. Solution: Use CR instead of NL after every line. Make the EOF text work properly. Add the ++eof argument to :terminal. --- src/channel.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/channel.c') diff --git a/src/channel.c b/src/channel.c index 94a762c61..5a7e2a730 100644 --- a/src/channel.c +++ b/src/channel.c @@ -1300,11 +1300,16 @@ write_buf_line(buf_T *buf, linenr_T lnum, channel_T *channel) return; memcpy((char *)p, (char *)line, len); - for (i = 0; i < len; ++i) - if (p[i] == NL) - p[i] = NUL; + if (channel->ch_write_text_mode) + p[len] = CAR; + else + { + for (i = 0; i < len; ++i) + if (p[i] == NL) + p[i] = NUL; - p[len] = NL; + p[len] = NL; + } p[len + 1] = NUL; channel_send(channel, PART_IN, p, len + 1, "write_buf_line"); vim_free(p); -- cgit v1.2.3