diff src/os_mswin.c @ 7797:0d46cea25641 v7.4.1195

commit https://github.com/vim/vim/commit/f12d983deab06b0408781d7a6c2f8970d765b723 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Jan 29 21:11:25 2016 +0100 patch 7.4.1195 Problem: The channel feature does not work in the MS-Windows console. Solution: Add win32 console support. (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Fri, 29 Jan 2016 21:15:05 +0100
parents 6069f43cea4e
children c079097365f3
line wrap: on
line diff
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -161,7 +161,9 @@ extern HWND s_hwnd;
 static HWND s_hwnd = 0;	    /* console window handle, set by GetConsoleHwnd() */
 #endif
 
-extern int WSInitialized;
+#ifdef FEAT_CHANNEL
+int WSInitialized = FALSE; /* WinSock is initialized */
+#endif
 
 /* Don't generate prototypes here, because some systems do have these
  * functions. */
@@ -3093,3 +3095,22 @@ theend:
 }
 
 #endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */
+
+#if defined(FEAT_CHANNEL) || defined(PROTO)
+/*
+ * Initialize the Winsock dll.
+ */
+    void
+channel_init_winsock()
+{
+    WSADATA wsaData;
+    int wsaerr;
+
+    if (WSInitialized)
+	return;
+
+    wsaerr = WSAStartup(MAKEWORD(2, 2), &wsaData);
+    if (wsaerr == 0)
+	WSInitialized = TRUE;
+}
+#endif