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.