<br><br><div class="gmail_quote">On Thu, Jan 5, 2012 at 3:28 PM, Josh Triplett <span dir="ltr">&lt;<a href="mailto:josh@joshtriplett.org">josh@joshtriplett.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Thu, Jan 05, 2012 at 08:57:54PM +0000, Jon TURNEY wrote:<br>
&gt; From: Ryan Pavlik &lt;<a href="mailto:rpavlik@iastate.edu">rpavlik@iastate.edu</a>&gt;<br>
&gt;<br>
&gt; The alternative is to use these in every WIN32 application which uses xcb. Doing<br>
&gt; it this way should be safe, as, according to MSDN, &quot;There must be a call to<br>
&gt; WSACleanup for each successful call to WSAStartup. Only the final WSACleanup<br>
&gt; function call performs the actual cleanup. The preceding calls simply decrement<br>
&gt; an internal reference count&quot;<br>
</div>[...]<br>
&gt; Signed-off-by: Jon TURNEY &lt;<a href="mailto:jon.turney@dronecode.org.uk">jon.turney@dronecode.org.uk</a>&gt;<br>
<br>
Typically a patch needs a signoff by its author, not just the person<br>
submitting it.  XCB doesn&#39;t particularly require signoffs, but if you<br>
want to follow that convention you should have the original author sign<br>
off.<br>
<div><div class="h5"><br>
&gt; --- a/src/xcb_conn.c<br>
&gt; +++ b/src/xcb_conn.c<br>
&gt; @@ -313,6 +313,10 @@ void xcb_disconnect(xcb_connection_t *c)<br>
&gt;      _xcb_xid_destroy(c);<br>
&gt;<br>
&gt;      free(c);<br>
&gt; +<br>
&gt; +#ifdef _WIN32<br>
&gt; +    WSACleanup();<br>
&gt; +#endif<br>
&gt;  }<br>
&gt;<br>
&gt;  /* Private interface */<br>
&gt; diff --git a/src/xcb_util.c b/src/xcb_util.c<br>
&gt; index 62c51e1..d64c904 100644<br>
&gt; --- a/src/xcb_util.c<br>
&gt; +++ b/src/xcb_util.c<br>
&gt; @@ -426,8 +426,13 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname,<br>
&gt;      if(!parsed) {<br>
&gt;          c = (xcb_connection_t *) &amp;error_connection;<br>
&gt;          goto out;<br>
&gt; -    } else<br>
&gt; +    } else {<br>
&gt; +#ifdef _WIN32<br>
&gt; +        WSADATA wsaData;<br>
&gt; +        WSAStartup(MAKEWORD(2, 2), &amp;wsaData);<br>
&gt; +#endif<br>
&gt;          fd = _xcb_open(host, protocol, display);<br>
&gt; +    }<br>
<br>
</div></div>What happens if the application using XCB has already called WSAStartup,<br>
and passes a lower version number than 2.2?  Will XCB&#39;s call to<br>
WSAStartup cause Winsock to start assuming 2.2 semantics instead of<br>
whatever older semantics the application requested?  Or will Winsock<br>
just tell XCB to use the older version?  In the latter case, can XCB<br>
live with that?<br>
<span class="HOEnZb"><font color="#888888"><br>
- Josh Triplett<br>
</font></span></blockquote></div><br>I&#39;m not sure, but 2.2 is available since a patch for Windows 95, so I&#39;m pretty confident that it&#39;s a safe alternative.<div><br></div><div>Jon, if you put these patches in some publicly-accessible repo I can go through and sign off on them easily.<br clear="all">
<div><br></div>-- <br>Ryan Pavlik<br>HCI Graduate Student<br>Virtual Reality Applications Center<br>Iowa State University<br><br><a href="mailto:rpavlik@iastate.edu" target="_blank">rpavlik@iastate.edu</a><br><a href="http://academic.cleardefinition.com" target="_blank">http://academic.cleardefinition.com</a><br>

</div>