X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fxcb_util.c;h=45f66cbfe413f54afe7e97f1a56d17baad3b50ba;hb=5f8f2ba1c4f9ac74c8f301dcca8566e296e37995;hp=64a1f6d63b3a8e00f33202ac5bd05cb7ad761661;hpb=4aa7a2c849a9536febb2dc7773e06c12a69c5213;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_util.c b/src/xcb_util.c index 64a1f6d..45f66cb 100644 --- a/src/xcb_util.c +++ b/src/xcb_util.c @@ -175,7 +175,7 @@ static int _xcb_open(const char *host, char *protocol, const int display) if(strncmp(host, "/tmp/launch", 11) == 0) { base = host; host = ""; - protocol = NULL; + protocol = "unix"; } #endif @@ -235,6 +235,11 @@ static int _xcb_open(const char *host, char *protocol, const int display) fd = _xcb_open_unix(protocol, file); free(file); + if (fd < 0 && !protocol && *host == '\0') { + unsigned short port = X_TCP_PORT + display; + fd = _xcb_open_tcp(host, protocol, port); + } + return fd; #endif /* !_WIN32 */ return -1; /* if control reaches here then something has gone wrong */ @@ -426,11 +431,22 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname, if(!parsed) { c = _xcb_conn_ret_error(XCB_CONN_CLOSED_PARSE_ERR); goto out; - } else + } else { +#ifdef _WIN32 + WSADATA wsaData; + if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { + c = _xcb_conn_ret_error(XCB_CONN_ERROR); + goto out; + } +#endif fd = _xcb_open(host, protocol, display); + } if(fd == -1) { c = _xcb_conn_ret_error(XCB_CONN_ERROR); +#ifdef _WIN32 + WSACleanup(); +#endif goto out; }