summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0818
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0818')
-rw-r--r--data/vim/patches/8.1.0818170
1 files changed, 0 insertions, 170 deletions
diff --git a/data/vim/patches/8.1.0818 b/data/vim/patches/8.1.0818
deleted file mode 100644
index c0876a0fd..000000000
--- a/data/vim/patches/8.1.0818
+++ /dev/null
@@ -1,170 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0818
-Fcc: outbox
-From: Bram Moolenaar <Bram@moolenaar.net>
-Mime-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-------------
-
-Patch 8.1.0818
-Problem: MS-Windows: cannot send large data with ch_sendraw().
-Solution: Split write into several WriteFile() calls. (Yasuhiro Matsumoto,
- closes #3823)
-Files: src/channel.c, src/os_win32.c, src/testdir/test_channel.vim,
- src/testdir/test_channel_pipe.py, src/vim.h
-
-
-*** ../vim-8.1.0817/src/channel.c 2019-01-22 23:01:36.943693467 +0100
---- src/channel.c 2019-01-24 23:04:15.428107841 +0100
-***************
-*** 80,103 ****
- static int
- fd_write(sock_T fd, char *buf, size_t len)
- {
- HANDLE h = (HANDLE)fd;
-! DWORD nwrite;
- OVERLAPPED ov;
-
-! // If the pipe overflows while the job does not read the data, WriteFile
-! // will block forever. This abandons the write.
-! memset(&ov, 0, sizeof(ov));
-! if (!WriteFile(h, buf, (DWORD)len, &nwrite, &ov))
- {
-! DWORD err = GetLastError();
-
-! if (err != ERROR_IO_PENDING)
-! return -1;
-! if (!GetOverlappedResult(h, &ov, &nwrite, FALSE))
-! return -1;
-! FlushFileBuffers(h);
- }
-! return (int)nwrite;
- }
-
- static void
---- 80,113 ----
- static int
- fd_write(sock_T fd, char *buf, size_t len)
- {
-+ size_t todo = len;
- HANDLE h = (HANDLE)fd;
-! DWORD nwrite, size, done = 0;
- OVERLAPPED ov;
-
-! while (todo > 0)
- {
-! if (todo > MAX_NAMED_PIPE_SIZE)
-! size = MAX_NAMED_PIPE_SIZE;
-! else
-! size = todo;
-! // If the pipe overflows while the job does not read the data, WriteFile
-! // will block forever. This abandons the write.
-! memset(&ov, 0, sizeof(ov));
-! if (!WriteFile(h, buf + done, size, &nwrite, &ov))
-! {
-! DWORD err = GetLastError();
-
-! if (err != ERROR_IO_PENDING)
-! return -1;
-! if (!GetOverlappedResult(h, &ov, &nwrite, FALSE))
-! return -1;
-! FlushFileBuffers(h);
-! }
-! todo -= nwrite;
-! done += nwrite;
- }
-! return (int)done;
- }
-
- static void
-*** ../vim-8.1.0817/src/os_win32.c 2019-01-24 16:38:58.272712472 +0100
---- src/os_win32.c 2019-01-24 23:00:40.025605825 +0100
-***************
-*** 5369,5375 ****
- name,
- PIPE_ACCESS_OUTBOUND | FILE_FLAG_OVERLAPPED,
- PIPE_TYPE_BYTE | PIPE_NOWAIT,
-! 1, 65535, 0, 0, NULL);
-
- if (handles[1] == INVALID_HANDLE_VALUE)
- return FALSE;
---- 5369,5375 ----
- name,
- PIPE_ACCESS_OUTBOUND | FILE_FLAG_OVERLAPPED,
- PIPE_TYPE_BYTE | PIPE_NOWAIT,
-! 1, MAX_NAMED_PIPE_SIZE, 0, 0, NULL);
-
- if (handles[1] == INVALID_HANDLE_VALUE)
- return FALSE;
-*** ../vim-8.1.0817/src/testdir/test_channel.vim 2019-01-23 22:33:15.356020765 +0100
---- src/testdir/test_channel.vim 2019-01-24 23:00:40.025605825 +0100
-***************
-*** 1980,1982 ****
---- 1980,2000 ----
- unlet! g:val
- unlet! g:job
- endfunc
-+
-+ func Test_raw_large_data()
-+ try
-+ let g:out = ''
-+ let job = job_start(s:python . " test_channel_pipe.py",
-+ \ {'mode': 'raw', 'drop': 'never', 'noblock': 1,
-+ \ 'callback': {ch, msg -> execute('let g:out .= msg')}})
-+
-+ let want = repeat('X', 79999) . "\n"
-+ call ch_sendraw(job, want)
-+ let g:Ch_job = job
-+ call WaitForAssert({-> assert_equal("dead", job_status(g:Ch_job))})
-+ call assert_equal(want, substitute(g:out, '\r', '', 'g'))
-+ finally
-+ call job_stop(job)
-+ unlet g:out
-+ endtry
-+ endfunc
-*** ../vim-8.1.0817/src/testdir/test_channel_pipe.py 2017-12-09 18:22:43.000000000 +0100
---- src/testdir/test_channel_pipe.py 2019-01-24 23:00:40.025605825 +0100
-***************
-*** 56,59 ****
---- 56,63 ----
- if typed.startswith("doubleerr "):
- print(typed[10:-1] + "\nAND " + typed[10:-1], file=sys.stderr)
- sys.stderr.flush()
-+ if typed.startswith("XXX"):
-+ print(typed, end='')
-+ sys.stderr.flush()
-+ break
-
-*** ../vim-8.1.0817/src/vim.h 2019-01-24 18:20:14.436543394 +0100
---- src/vim.h 2019-01-24 23:00:40.025605825 +0100
-***************
-*** 2467,2472 ****
---- 2467,2476 ----
- # define MAX_OPEN_CHANNELS 0
- #endif
-
-+ #if defined(WIN32)
-+ # define MAX_NAMED_PIPE_SIZE 65535
-+ #endif
-+
- /* Options for json_encode() and json_decode. */
- #define JSON_JS 1 /* use JS instead of JSON */
- #define JSON_NO_NONE 2 /* v:none item not allowed */
-*** ../vim-8.1.0817/src/version.c 2019-01-24 22:42:14.949304772 +0100
---- src/version.c 2019-01-24 23:01:11.165389246 +0100
-***************
-*** 789,790 ****
---- 789,792 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 818,
- /**/
-
---
-Not too long ago, a program was something you watched on TV...
-
- /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
-/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
-\\\ an exciting new programming language -- http://www.Zimbu.org ///
- \\\ help me help AIDS victims -- http://ICCF-Holland.org ///