Patch 7.4.1260
Problem: The channel feature doesn't work on Win32 GUI.
Solution: Use WSAGetLastError(). (Ken Takata)
Files: src/channel.c, src/testdir/test_channel.vim, src/vim.h
*** ../vim-7.4.1259/src/channel.c 2016-02-03 23:59:39.042064651 +0100
--- src/channel.c 2016-02-04 22:04:35.939900422 +0100
***************
*** 954,964 ****
/*
* Check for reading from "fd" with "timeout" msec.
* Return FAIL when there is nothing to read.
*/
static int
channel_wait(int fd, int timeout)
{
! #ifdef HAVE_SELECT
struct timeval tval;
fd_set rfds;
int ret;
--- 954,965 ----
/*
* Check for reading from "fd" with "timeout" msec.
* Return FAIL when there is nothing to read.
+ * Always returns OK for FEAT_GUI_W32.
*/
static int
channel_wait(int fd, int timeout)
{
! #if defined(HAVE_SELECT) && !defined(FEAT_GUI_W32)
struct timeval tval;
fd_set rfds;
int ret;
***************
*** 1045,1050 ****
--- 1046,1061 ----
if (len < MAXMSGSIZE)
break; /* did read everything that's available */
}
+ #ifdef FEAT_GUI_W32
+ if (len == SOCKET_ERROR)
+ {
+ /* For Win32 GUI channel_wait() always returns OK and we handle the
+ * situation that there is nothing to read here.
+ * TODO: how about a timeout? */
+ if (WSAGetLastError() == WSAEWOULDBLOCK)
+ return;
+ }
+ #endif
/* Reading a socket disconnection (readlen == 0), or a socket error. */
if (readlen <= 0)
*** ../vim-7.4.1259/src/testdir/test_channel.vim 2016-02-04
21:03:29.590326410 +0100
--- src/testdir/test_channel.vim 2016-02-04 21:58:38.312090919 +0100
***************
*** 6,18 ****
endif
" This test requires the Python command to run the test server.
! " This most likely only works on Unix and Windows console.
if has('unix')
" We also need the pkill command to make sure the server can be stopped.
if !executable('python') || !executable('pkill')
finish
endif
! elseif has('win32') && !has('gui_win32')
" Use Python Launcher for Windows (py.exe).
if !executable('py')
finish
--- 6,18 ----
endif
" This test requires the Python command to run the test server.
! " This most likely only works on Unix and Windows.
if has('unix')
" We also need the pkill command to make sure the server can be stopped.
if !executable('python') || !executable('pkill')
finish
endif
! elseif has('win32')
" Use Python Launcher for Windows (py.exe).
if !executable('py')
finish
*** ../vim-7.4.1259/src/vim.h 2016-01-30 21:48:44.325034448 +0100
--- src/vim.h 2016-02-04 21:58:38.312090919 +0100
***************
*** 519,525 ****
# ifdef HAVE_SYS_POLL_H
# include <sys/poll.h>
# define HAVE_POLL
! # elif defined(WIN32) && !defined(FEAT_GUI_W32)
# define HAVE_SELECT
# else
# ifdef HAVE_POLL_H
--- 519,525 ----
# ifdef HAVE_SYS_POLL_H
# include <sys/poll.h>
# define HAVE_POLL
! # elif defined(WIN32)
# define HAVE_SELECT
# else
# ifdef HAVE_POLL_H
*** ../vim-7.4.1259/src/version.c 2016-02-04 21:53:27.827354893 +0100
--- src/version.c 2016-02-04 21:59:55.007226294 +0100
***************
*** 744,745 ****
--- 744,747 ----
{ /* Add new patch number below this line */
+ /**/
+ 1260,
/**/
--
I wish there was a knob on the TV to turn up the intelligence.
There's a knob called "brightness", but it doesn't seem to work.
/// Bram Moolenaar -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.