summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xcb.h43
-rw-r--r--src/xcb_conn.c30
-rw-r--r--src/xcb_util.c140
-rw-r--r--src/xcbint.h2
4 files changed, 201 insertions, 14 deletions
diff --git a/src/xcb.h b/src/xcb.h
index d4d02b4..718233f 100644
--- a/src/xcb.h
+++ b/src/xcb.h
@@ -338,7 +338,7 @@ void XCBPrefetchExtensionData(XCBConnection *c, XCBExtension *ext);
*
* The result must not be freed.
*/
-const XCBConnSetupSuccessRep *XCBGetSetup(XCBConnection *c);
+const XCBSetup *XCBGetSetup(XCBConnection *c);
/**
* @brief Access the file descriptor of the connection.
@@ -483,6 +483,47 @@ int XCBSync(XCBConnection *c, XCBGenericError **e);
*/
+/* Old names for connection-setup types, to be removed before 1.0. */
+
+typedef XCBSetupReq XCBConnSetupReq deprecated;
+typedef XCBSetupReqIter XCBConnSetupReqIter deprecated;
+typedef XCBSetupFailed XCBConnSetupFailedRep deprecated;
+typedef XCBSetupFailedIter XCBConnSetupFailedRepIter deprecated;
+typedef XCBSetupAuthenticate XCBConnSetupAuthenticateRep deprecated;
+typedef XCBSetupAuthenticateIter XCBConnSetupAuthenticateRepIter deprecated;
+typedef XCBSetup XCBConnSetupSuccessRep deprecated;
+typedef XCBSetupIter XCBConnSetupSuccessRepIter deprecated;
+
+char *XCBConnSetupReqAuthorizationProtocolName(XCBSetupReq *R) deprecated;
+int XCBConnSetupReqAuthorizationProtocolNameLength(XCBSetupReq *R) deprecated;
+XCBGenericIter XCBConnSetupReqAuthorizationProtocolNameEnd(XCBSetupReq *R) deprecated;
+char *XCBConnSetupReqAuthorizationProtocolData(XCBSetupReq *R) deprecated;
+int XCBConnSetupReqAuthorizationProtocolDataLength(XCBSetupReq *R) deprecated;
+XCBGenericIter XCBConnSetupReqAuthorizationProtocolDataEnd(XCBSetupReq *R) deprecated;
+void XCBConnSetupReqNext(XCBSetupReqIter *i) deprecated;
+XCBGenericIter XCBConnSetupReqEnd(XCBSetupReqIter i) deprecated;
+char *XCBConnSetupFailedRepReason(XCBSetupFailed *R) deprecated;
+int XCBConnSetupFailedRepReasonLength(XCBSetupFailed *R) deprecated;
+XCBGenericIter XCBConnSetupFailedRepReasonEnd(XCBSetupFailed *R) deprecated;
+void XCBConnSetupFailedRepNext(XCBSetupFailedIter *i) deprecated;
+XCBGenericIter XCBConnSetupFailedRepEnd(XCBSetupFailedIter i) deprecated;
+char *XCBConnSetupAuthenticateRepReason(XCBSetupAuthenticate *R) deprecated;
+int XCBConnSetupAuthenticateRepReasonLength(XCBSetupAuthenticate *R) deprecated;
+XCBGenericIter XCBConnSetupAuthenticateRepReasonEnd(XCBSetupAuthenticate *R) deprecated;
+void XCBConnSetupAuthenticateRepNext(XCBSetupAuthenticateIter *i) deprecated;
+XCBGenericIter XCBConnSetupAuthenticateRepEnd(XCBSetupAuthenticateIter i) deprecated;
+char *XCBConnSetupSuccessRepVendor(XCBSetup *R) deprecated;
+int XCBConnSetupSuccessRepVendorLength(XCBSetup *R) deprecated;
+XCBGenericIter XCBConnSetupSuccessRepVendorEnd(XCBSetup *R) deprecated;
+XCBFORMAT *XCBConnSetupSuccessRepPixmapFormats(XCBSetup *R) deprecated;
+int XCBConnSetupSuccessRepPixmapFormatsLength(XCBSetup *R) deprecated;
+XCBFORMATIter XCBConnSetupSuccessRepPixmapFormatsIter(XCBSetup *R) deprecated;
+int XCBConnSetupSuccessRepRootsLength(XCBSetup *R) deprecated;
+XCBSCREENIter XCBConnSetupSuccessRepRootsIter(XCBSetup *R) deprecated;
+void XCBConnSetupSuccessRepNext(XCBSetupIter *i) deprecated;
+XCBGenericIter XCBConnSetupSuccessRepEnd(XCBSetupIter i) deprecated;
+
+
#ifdef __cplusplus
}
#endif
diff --git a/src/xcb_conn.c b/src/xcb_conn.c
index f25cc20..be80bac 100644
--- a/src/xcb_conn.c
+++ b/src/xcb_conn.c
@@ -38,6 +38,12 @@
#include "xcb.h"
#include "xcbint.h"
+typedef struct {
+ CARD8 status;
+ CARD8 pad0[5];
+ CARD16 length;
+} XCBSetupGeneric;
+
static int set_fd_flags(const int fd)
{
long flags = fcntl(fd, F_GETFL, 0);
@@ -54,7 +60,7 @@ static int set_fd_flags(const int fd)
static int write_setup(XCBConnection *c, XCBAuthInfo *auth_info)
{
static const char pad[3];
- XCBConnSetupReq out;
+ XCBSetupReq out;
struct iovec parts[6];
int count = 0;
int endian = 0x01020304;
@@ -71,9 +77,9 @@ static int write_setup(XCBConnection *c, XCBAuthInfo *auth_info)
out.protocol_minor_version = X_PROTOCOL_REVISION;
out.authorization_protocol_name_len = 0;
out.authorization_protocol_data_len = 0;
- parts[count].iov_len = sizeof(XCBConnSetupReq);
+ parts[count].iov_len = sizeof(XCBSetupReq);
parts[count++].iov_base = &out;
- parts[count].iov_len = XCB_PAD(sizeof(XCBConnSetupReq));
+ parts[count].iov_len = XCB_PAD(sizeof(XCBSetupReq));
parts[count++].iov_base = (char *) pad;
if(auth_info)
@@ -101,21 +107,21 @@ static int write_setup(XCBConnection *c, XCBAuthInfo *auth_info)
static int read_setup(XCBConnection *c)
{
/* Read the server response */
- c->setup = malloc(sizeof(XCBConnSetupGenericRep));
+ c->setup = malloc(sizeof(XCBSetupGeneric));
if(!c->setup)
return 0;
- if(_xcb_in_read_block(c, c->setup, sizeof(XCBConnSetupGenericRep)) != sizeof(XCBConnSetupGenericRep))
+ if(_xcb_in_read_block(c, c->setup, sizeof(XCBSetupGeneric)) != sizeof(XCBSetupGeneric))
return 0;
{
- void *tmp = realloc(c->setup, c->setup->length * 4 + sizeof(XCBConnSetupGenericRep));
+ void *tmp = realloc(c->setup, c->setup->length * 4 + sizeof(XCBSetupGeneric));
if(!tmp)
return 0;
c->setup = tmp;
}
- if(_xcb_in_read_block(c, (char *) c->setup + sizeof(XCBConnSetupGenericRep), c->setup->length * 4) <= 0)
+ if(_xcb_in_read_block(c, (char *) c->setup + sizeof(XCBSetupGeneric), c->setup->length * 4) <= 0)
return 0;
/* 0 = failed, 2 = authenticate, 1 = success */
@@ -123,15 +129,15 @@ static int read_setup(XCBConnection *c)
{
case 0: /* failed */
{
- XCBConnSetupFailedRep *setup = (XCBConnSetupFailedRep *) c->setup;
- write(STDERR_FILENO, XCBConnSetupFailedRepReason(setup), XCBConnSetupFailedRepReasonLength(setup));
+ XCBSetupFailed *setup = (XCBSetupFailed *) c->setup;
+ write(STDERR_FILENO, XCBSetupFailedReason(setup), XCBSetupFailedReasonLength(setup));
return 0;
}
case 2: /* authenticate */
{
- XCBConnSetupAuthenticateRep *setup = (XCBConnSetupAuthenticateRep *) c->setup;
- write(STDERR_FILENO, XCBConnSetupAuthenticateRepReason(setup), XCBConnSetupAuthenticateRepReasonLength(setup));
+ XCBSetupAuthenticate *setup = (XCBSetupAuthenticate *) c->setup;
+ write(STDERR_FILENO, XCBSetupAuthenticateReason(setup), XCBSetupAuthenticateReasonLength(setup));
return 0;
}
}
@@ -169,7 +175,7 @@ static int write_vec(XCBConnection *c, struct iovec **vector, int *count)
/* Public interface */
-const XCBConnSetupSuccessRep *XCBGetSetup(XCBConnection *c)
+const XCBSetup *XCBGetSetup(XCBConnection *c)
{
/* doesn't need locking because it's never written to. */
return c->setup;
diff --git a/src/xcb_util.c b/src/xcb_util.c
index 1ca6b43..06b5bca 100644
--- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -278,3 +278,143 @@ int XCBGetAuthInfo(int fd, XCBAuthInfo *info)
{
return _xcb_get_auth_info(fd, info);
}
+
+char *XCBConnSetupReqAuthorizationProtocolName(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolName(R);
+}
+
+int XCBConnSetupReqAuthorizationProtocolNameLength(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolNameLength(R);
+}
+
+XCBGenericIter XCBConnSetupReqAuthorizationProtocolNameEnd(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolNameEnd(R);
+}
+
+char *XCBConnSetupReqAuthorizationProtocolData(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolData(R);
+}
+
+int XCBConnSetupReqAuthorizationProtocolDataLength(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolDataLength(R);
+}
+
+XCBGenericIter XCBConnSetupReqAuthorizationProtocolDataEnd(XCBSetupReq *R)
+{
+ return XCBSetupReqAuthorizationProtocolDataEnd(R);
+}
+
+void XCBConnSetupReqNext(XCBSetupReqIter *i)
+{
+ XCBSetupReqNext(i);
+}
+
+XCBGenericIter XCBConnSetupReqEnd(XCBSetupReqIter i)
+{
+ return XCBSetupReqEnd(i);
+}
+
+char *XCBConnSetupFailedRepReason(XCBSetupFailed *R)
+{
+ return XCBSetupFailedReason(R);
+}
+
+int XCBConnSetupFailedRepReasonLength(XCBSetupFailed *R)
+{
+ return XCBSetupFailedReasonLength(R);
+}
+
+XCBGenericIter XCBConnSetupFailedRepReasonEnd(XCBSetupFailed *R)
+{
+ return XCBSetupFailedReasonEnd(R);
+}
+
+void XCBConnSetupFailedRepNext(XCBSetupFailedIter *i)
+{
+ XCBSetupFailedNext(i);
+}
+
+XCBGenericIter XCBConnSetupFailedRepEnd(XCBSetupFailedIter i)
+{
+ return XCBSetupFailedEnd(i);
+}
+
+char *XCBConnSetupAuthenticateRepReason(XCBSetupAuthenticate *R)
+{
+ return XCBSetupAuthenticateReason(R);
+}
+
+int XCBConnSetupAuthenticateRepReasonLength(XCBSetupAuthenticate *R)
+{
+ return XCBSetupAuthenticateReasonLength(R);
+}
+
+XCBGenericIter XCBConnSetupAuthenticateRepReasonEnd(XCBSetupAuthenticate *R)
+{
+ return XCBSetupAuthenticateReasonEnd(R);
+}
+
+void XCBConnSetupAuthenticateRepNext(XCBSetupAuthenticateIter *i)
+{
+ XCBSetupAuthenticateNext(i);
+}
+
+XCBGenericIter XCBConnSetupAuthenticateRepEnd(XCBSetupAuthenticateIter i)
+{
+ return XCBSetupAuthenticateEnd(i);
+}
+
+char *XCBConnSetupSuccessRepVendor(XCBSetup *R)
+{
+ return XCBSetupVendor(R);
+}
+
+int XCBConnSetupSuccessRepVendorLength(XCBSetup *R)
+{
+ return XCBSetupVendorLength(R);
+}
+
+XCBGenericIter XCBConnSetupSuccessRepVendorEnd(XCBSetup *R)
+{
+ return XCBSetupVendorEnd(R);
+}
+
+XCBFORMAT *XCBConnSetupSuccessRepPixmapFormats(XCBSetup *R)
+{
+ return XCBSetupPixmapFormats(R);
+}
+
+int XCBConnSetupSuccessRepPixmapFormatsLength(XCBSetup *R)
+{
+ return XCBSetupPixmapFormatsLength(R);
+}
+
+XCBFORMATIter XCBConnSetupSuccessRepPixmapFormatsIter(XCBSetup *R)
+{
+ return XCBSetupPixmapFormatsIter(R);
+}
+
+int XCBConnSetupSuccessRepRootsLength(XCBSetup *R)
+{
+ return XCBSetupRootsLength(R);
+}
+
+XCBSCREENIter XCBConnSetupSuccessRepRootsIter(XCBSetup *R)
+{
+ return XCBSetupRootsIter(R);
+}
+
+void XCBConnSetupSuccessRepNext(XCBSetupIter *i)
+{
+ XCBSetupNext(i);
+}
+
+XCBGenericIter XCBConnSetupSuccessRepEnd(XCBSetupIter i)
+{
+ return XCBSetupEnd(i);
+}
diff --git a/src/xcbint.h b/src/xcbint.h
index 359c681..a6d92aa 100644
--- a/src/xcbint.h
+++ b/src/xcbint.h
@@ -141,7 +141,7 @@ void _xcb_ext_destroy(XCBConnection *c);
struct XCBConnection {
/* constant data */
- XCBConnSetupSuccessRep *setup;
+ XCBSetup *setup;
int fd;
/* I/O data */