Mercurial > vim
diff src/channel.c @ 7780:e09af43f98f7 v7.4.1187
commit https://github.com/vim/vim/commit/85be35f33ea848b50e84d57321a45ebfedfad669
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Jan 27 21:08:18 2016 +0100
patch 7.4.1187
Problem: MS-Windows channel code only supports one channel. Doesn't build
without netbeans support.
Solution: Get the channel index from the socket in the message. Closes https://github.com/vim/vim/issues/600.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 27 Jan 2016 21:15:05 +0100 |
parents | 656db98806b3 |
children | 192ae655ac91 |
line wrap: on
line diff
--- a/src/channel.c +++ b/src/channel.c @@ -207,7 +207,6 @@ channel_gui_register(int idx) /* * Tell Windows we are interested in receiving message when there * is input on the editor connection socket. - * TODO: change WM_NETBEANS to something related to the channel index. */ if (channel->ch_inputHandler == -1) channel->ch_inputHandler = @@ -648,6 +647,24 @@ channel_read(int idx) #endif } +# if defined(FEAT_GUI_W32) || defined(PROTO) +/* + * Lookup the channel index from the socket. + * Returns -1 when the socket isn't found. + */ + int +channel_socket2idx(sock_T fd) +{ + int i; + + if (fd >= 0) + for (i = 0; i < channel_count; ++i) + if (channels[i].ch_fd == fd) + return i; + return -1; +} +# endif + /* * Write "buf" (NUL terminated string) to channel "idx". * When "fun" is not NULL an error message might be given.