diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-03-02 20:48:47 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-03-02 20:48:47 +0100 |
commit | 42bc6dde46f1b52476cc84ee89277f981b4116c4 (patch) | |
tree | 83f429114682e320ea898aa7a6a09395b3993044 | |
parent | 51d1d536802b5d8232d47e56f165ba8a009529b5 (diff) | |
download | vim-git-42bc6dde46f1b52476cc84ee89277f981b4116c4.tar.gz |
patch 7.4.1469v7.4.1469
Problem: Channel test sometimes fails, especially on OS/X. (Kazunobu
Kuriyama)
Solution: Change the && into ||, call getsockopt() in more situations.
(Ozaki Kiichi)
-rw-r--r-- | src/channel.c | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/src/channel.c b/src/channel.c index eb1fbea6d..08271ed80 100644 --- a/src/channel.c +++ b/src/channel.c @@ -720,10 +720,10 @@ channel_open( * After putting the socket in non-blocking mode, connect() will * return EINPROGRESS, select() will not wait (as if writing is * possible), need to use getsockopt() to check if the socket is - * actually connect. - * We detect an failure to connect when both read and write fds + * actually able to connect. + * We detect an failure to connect when either read and write fds * are set. Use getsockopt() to find out what kind of failure. */ - if (FD_ISSET(sd, &rfds) && FD_ISSET(sd, &wfds)) + if (FD_ISSET(sd, &rfds) || FD_ISSET(sd, &wfds)) { ret = getsockopt(sd, SOL_SOCKET, SO_ERROR, &so_error, &so_error_len); @@ -1559,7 +1559,8 @@ may_invoke_callback(channel_T *channel, int part) curbuf = buffer; u_sync(TRUE); - u_save(lnum, lnum + 1); + /* ignore undo failure, undo is not very useful here */ + ignored = u_save(lnum, lnum + 1); if (msg == NULL) /* JSON or JS mode: re-encode the message. */ diff --git a/src/version.c b/src/version.c index 0d32734e1..eef7eebc1 100644 --- a/src/version.c +++ b/src/version.c @@ -744,6 +744,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1469, +/**/ 1468, /**/ 1467, |