summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0777
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0777')
-rw-r--r--data/vim/patches/8.1.0777198
1 files changed, 0 insertions, 198 deletions
diff --git a/data/vim/patches/8.1.0777 b/data/vim/patches/8.1.0777
deleted file mode 100644
index 3a6d34e65..000000000
--- a/data/vim/patches/8.1.0777
+++ /dev/null
@@ -1,198 +0,0 @@
-To: vim_dev@googlegroups.com
-Subject: Patch 8.1.0777
-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.0777
-Problem: Win32: using pipes for channel does not work well.
-Solution: Use a larger buffer and handle overlaps. (Yasuhiro Matsumoto,
- closes #3782)
-Files: src/channel.c, src/os_win32.c
-
-
-*** ../vim-8.1.0776/src/channel.c 2019-01-17 22:28:18.897373219 +0100
---- src/channel.c 2019-01-19 14:32:48.390370019 +0100
-***************
-*** 80,90 ****
- static int
- fd_write(sock_T fd, char *buf, size_t len)
- {
-! HANDLE h = (HANDLE)fd;
-! DWORD nwrite;
-!
-! if (!WriteFile(h, buf, (DWORD)len, &nwrite, NULL))
-! return -1;
- return (int)nwrite;
- }
-
---- 80,102 ----
- 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;
- }
-
-***************
-*** 3168,3187 ****
- if (r && nread > 0)
- return CW_READY;
- if (r == 0)
-! {
-! DWORD err = GetLastError();
-!
-! if (err != ERROR_BAD_PIPE && err != ERROR_BROKEN_PIPE)
-! return CW_ERROR;
-!
-! if (channel->ch_named_pipe)
-! {
-! DisconnectNamedPipe((HANDLE)fd);
-! ConnectNamedPipe((HANDLE)fd, NULL);
-! }
-! else
-! return CW_ERROR;
-! }
-
- /* perhaps write some buffer lines */
- channel_write_any_lines();
---- 3180,3186 ----
- if (r && nread > 0)
- return CW_READY;
- if (r == 0)
-! return CW_ERROR;
-
- /* perhaps write some buffer lines */
- channel_write_any_lines();
-***************
-*** 3812,3828 ****
- if (part == PART_SOCK)
- res = sock_write(fd, (char *)buf, len);
- else
-- {
- res = fd_write(fd, (char *)buf, len);
-- #ifdef WIN32
-- if (channel->ch_named_pipe && res < 0)
-- {
-- DisconnectNamedPipe((HANDLE)fd);
-- ConnectNamedPipe((HANDLE)fd, NULL);
-- }
-- #endif
--
-- }
- if (res < 0 && (errno == EWOULDBLOCK
- #ifdef EAGAIN
- || errno == EAGAIN
---- 3811,3817 ----
-*** ../vim-8.1.0776/src/os_win32.c 2019-01-13 23:38:33.407773189 +0100
---- src/os_win32.c 2019-01-19 14:36:01.957057721 +0100
-***************
-*** 5428,5433 ****
---- 5428,5476 ----
- # endif
- }
-
-+ /*
-+ * Create a pair of pipes.
-+ * Return TRUE for success, FALSE for failure.
-+ */
-+ static BOOL
-+ create_pipe_pair(HANDLE handles[2])
-+ {
-+ static LONG s;
-+ char name[64];
-+ SECURITY_ATTRIBUTES sa;
-+
-+ sprintf(name, "\\\\?\\pipe\\vim-%08lx-%08lx",
-+ GetCurrentProcessId(),
-+ InterlockedIncrement(&s));
-+
-+ // Create named pipe. Max size of named pipe is 65535.
-+ handles[1] = CreateNamedPipe(
-+ 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;
-+
-+ sa.nLength = sizeof(sa);
-+ sa.bInheritHandle = TRUE;
-+ sa.lpSecurityDescriptor = NULL;
-+
-+ handles[0] = CreateFile(name,
-+ FILE_GENERIC_READ,
-+ FILE_SHARE_READ, &sa,
-+ OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
-+
-+ if (handles[0] == INVALID_HANDLE_VALUE)
-+ {
-+ CloseHandle(handles[1]);
-+ return FALSE;
-+ }
-+
-+ return TRUE;
-+ }
-+
- void
- mch_job_start(char *cmd, job_T *job, jobopt_T *options)
- {
-***************
-*** 5493,5501 ****
- goto failed;
- }
- }
-! else if (!use_null_for_in &&
-! (!CreatePipe(&ifd[0], &ifd[1], &saAttr, 0)
-! || !SetHandleInformation(ifd[1], HANDLE_FLAG_INHERIT, 0)))
- goto failed;
-
- if (use_file_for_out)
---- 5536,5544 ----
- goto failed;
- }
- }
-! else if (!use_null_for_in
-! && (!create_pipe_pair(ifd)
-! || !SetHandleInformation(ifd[1], HANDLE_FLAG_INHERIT, 0)))
- goto failed;
-
- if (use_file_for_out)
-*** ../vim-8.1.0776/src/version.c 2019-01-19 13:46:46.417507738 +0100
---- src/version.c 2019-01-19 14:31:44.254801032 +0100
-***************
-*** 793,794 ****
---- 793,796 ----
- { /* Add new patch number below this line */
-+ /**/
-+ 777,
- /**/
-
---
-hundred-and-one symptoms of being an internet addict:
-253. You wait for a slow loading web page before going to the toilet.
-
- /// 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 ///