static int _xcb_open(const char *host, char *protocol, const int display)
{
int fd;
+#ifdef __hpux
+ static const char unix_base[] = "/usr/spool/sockets/X11/";
+#else
static const char unix_base[] = "/tmp/.X11-unix/X";
+#endif
const char *base = unix_base;
size_t filelen;
char *file = NULL;
else
c = xcb_connect_to_fd(fd, 0);
+ if(c->has_error)
+ goto out;
+
+ /* Make sure requested screen number is in bounds for this server */
+ if((screenp != NULL) && (*screenp >= (int) c->setup->roots_len)) {
+ xcb_disconnect(c);
+ c = _xcb_conn_ret_error(XCB_CONN_CLOSED_INVALID_SCREEN);
+ goto out;
+ }
+
out:
free(host);
free(protocol);