diff options
author | Josh Triplett <josh@freedesktop.org> | 2006-10-06 12:36:39 -0700 |
---|---|---|
committer | Josh Triplett <josh@freedesktop.org> | 2006-10-06 12:36:39 -0700 |
commit | ab728ca372288d0db1b486c265e34c1376f29104 (patch) | |
tree | da28f713c269f8db5d11c7b7d16beec10e48e9c0 | |
parent | 5b73093203039d307eb7ab3845c3ced207e9e26c (diff) |
XCL is dead; long live Xlib/XCB
Rename all instances of "XCL" to Xlib/XCB-derived names.
The only user-visible change: rename the include file <X11/xcl.h> to
<X11/Xlib-xcb.h>; programs will need to change their #include lines to match.
Remove the XCL cast inlines from Xlib-xcb.h.
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | include/Makefile.am | 2 | ||||
-rw-r--r-- | include/X11/Xlib-xcb.h | 15 | ||||
-rw-r--r-- | include/X11/Xlibint.h | 2 | ||||
-rw-r--r-- | include/X11/xcl.h | 52 | ||||
-rw-r--r-- | src/ClDisplay.c | 4 | ||||
-rw-r--r-- | src/Makefile.am | 8 | ||||
-rw-r--r-- | src/OpenDis.c | 12 | ||||
-rw-r--r-- | src/Xxcbint.h (renamed from src/xclint.h) | 20 | ||||
-rw-r--r-- | src/x11_xcb.c (renamed from src/xcl/x11-xcb.c) | 6 | ||||
-rw-r--r-- | src/xcb_disp.c (renamed from src/xcl/display.c) | 26 | ||||
-rw-r--r-- | src/xcb_io.c (renamed from src/xcl/io.c) | 82 | ||||
-rw-r--r-- | src/xcb_lock.c (renamed from src/xcl/xcblock.c) | 78 |
13 files changed, 136 insertions, 173 deletions
diff --git a/configure.ac b/configure.ac index d26bf0a4..e1aab918 100644 --- a/configure.ac +++ b/configure.ac @@ -20,7 +20,7 @@ AC_PROG_CC XORG_PROG_RAWCPP -# Build XCL? or traditional Xlib? +# Build with XCB support? AC_ARG_WITH(xcb, AC_HELP_STRING([--with-xcb], [use XCB for low-level protocol implementation]), [ac_cv_use_xcb=$withval], [ac_cv_use_xcb=yes]) diff --git a/include/Makefile.am b/include/Makefile.am index 97932084..c5cdb4ff 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -16,5 +16,5 @@ EXTRA_DIST=\ X11/XlibConf.h.in if XCB -x11include_HEADERS += X11/xcl.h +x11include_HEADERS += X11/Xlib-xcb.h endif diff --git a/include/X11/Xlib-xcb.h b/include/X11/Xlib-xcb.h new file mode 100644 index 00000000..b88e2e7a --- /dev/null +++ b/include/X11/Xlib-xcb.h @@ -0,0 +1,15 @@ +/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett + * This file is licensed under the MIT license. See the file COPYING. */ + +#ifndef XLIB_XCB_H +#define XLIB_XCB_H + +#include <xcb/xcb.h> +#include <X11/Xlib.h> + +xcb_connection_t *XGetXCBConnection(Display *dpy); + +enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue }; +void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner); + +#endif /* XLIB_XCB_H */ diff --git a/include/X11/Xlibint.h b/include/X11/Xlibint.h index a3e3ebfb..8aab764a 100644 --- a/include/X11/Xlibint.h +++ b/include/X11/Xlibint.h @@ -184,7 +184,7 @@ struct _XDisplay int xcmisc_opcode; /* major opcode for XC-MISC */ struct _XkbInfoRec *xkb_info; /* XKB info */ struct _XtransConnInfo *trans_conn; /* transport connection object */ - struct XCLPrivate *xcl; /* XCB glue private data */ + struct _X11XCBPrivate *xcb; /* XCB glue private data */ }; #define XAllocIDs(dpy,ids,n) (*(dpy)->idlist_alloc)(dpy,ids,n) diff --git a/include/X11/xcl.h b/include/X11/xcl.h deleted file mode 100644 index f6925b59..00000000 --- a/include/X11/xcl.h +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright (C) 2003 Jamey Sharp. - * This file is licensed under the MIT license. See the file COPYING. */ - -#ifndef XCL_H -#define XCL_H - -#include <xcb/xcb.h> -#include <X11/Xlib.h> - -/* Coercions from Xlib XID types to XCB XID types. - * On GCC/x86 with optimizations turned on, these compile to zero - * instructions. */ - -#define XCLCASTDECL(src_t, dst_t, field) \ - static inline xcb_##dst_t xcl_##dst_t(src_t src) \ - { \ - xcb_##dst_t dst; \ - dst.field = src; \ - return dst; \ - } -#define XCLXIDCASTDECL(src_t, dst_t) XCLCASTDECL(src_t, dst_t, xid) -#define XCLIDCASTDECL(src_t, dst_t) XCLCASTDECL(src_t, dst_t, id) - -XCLXIDCASTDECL(Window, window_t) -XCLXIDCASTDECL(Pixmap, pixmap_t) -XCLXIDCASTDECL(Cursor, cursor_t) -XCLXIDCASTDECL(Font, font_t) -XCLXIDCASTDECL(GContext, gcontext_t) -XCLXIDCASTDECL(Colormap, colormap_t) -XCLXIDCASTDECL(Atom, atom_t) - -/* For the union types, pick an arbitrary field of the union to hold the - * Xlib XID. Assumes the bit pattern is the same regardless of the field. */ -XCLCASTDECL(Drawable, drawable_t, window.xid) -XCLCASTDECL(Font, fontable_t, font.xid) - -XCLIDCASTDECL(VisualID, visualid_t) -XCLIDCASTDECL(Time, timestamp_t) -XCLIDCASTDECL(KeySym, keysym_t) -XCLIDCASTDECL(KeyCode, keycode_t) -XCLIDCASTDECL(CARD8, button_t) - -/* xcl/display.c */ - -xcb_connection_t *XGetXCBConnection(Display *dpy); - -/* xcl/io.c */ - -enum XEventQueueOwner { XlibOwnsEventQueue = 0, XCBOwnsEventQueue }; -void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner); - -#endif /* XCL_H */ diff --git a/src/ClDisplay.c b/src/ClDisplay.c index 97e4d43a..3a52d8bd 100644 --- a/src/ClDisplay.c +++ b/src/ClDisplay.c @@ -33,7 +33,7 @@ from The Open Group. #include <config.h> #endif #if USE_XCB -#include "xclint.h" +#include "Xxcbint.h" #else /* !USE_XCB */ #include <X11/Xtrans/Xtrans.h> #endif /* USE_XCB */ @@ -75,7 +75,7 @@ XCloseDisplay ( XSync(dpy, 1); } #if USE_XCB - xcb_disconnect(dpy->xcl->connection); + xcb_disconnect(dpy->xcb->connection); #else /* !USE_XCB */ _XDisconnectDisplay(dpy->trans_conn); #endif /* USE_XCB */ diff --git a/src/Makefile.am b/src/Makefile.am index 6ab7412b..861f0264 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -342,12 +342,12 @@ EXTRA_DIST = \ if XCB libX11_la_SOURCES += \ - xcl/xcblock.c \ - xcl/display.c \ - xcl/io.c + xcb_lock.c \ + xcb_disp.c \ + xcb_io.c lib_LTLIBRARIES += libX11-xcb.la -libX11_xcb_la_SOURCES = xcl/x11-xcb.c +libX11_xcb_la_SOURCES = x11_xcb.c libX11_xcb_la_LDFLAGS = -version-info 1:0:0 -no-undefined libX11_xcb_la_LIBADD = libX11.la else diff --git a/src/OpenDis.c b/src/OpenDis.c index 37a0a54c..2d88ab91 100644 --- a/src/OpenDis.c +++ b/src/OpenDis.c @@ -33,7 +33,7 @@ in this Software without prior written authorization from The Open Group. #endif #include "Xlibint.h" #if USE_XCB -#include "xclint.h" +#include "Xxcbint.h" #else /* !USE_XCB */ #include <X11/Xtrans/Xtrans.h> #include <X11/extensions/bigreqstr.h> @@ -363,7 +363,7 @@ XOpenDisplay ( #if USE_XCB { - const xcb_setup_t *xcbsetup = xcb_get_setup(dpy->xcl->connection); + const xcb_setup_t *xcbsetup = xcb_get_setup(dpy->xcb->connection); setuplength = xcbsetup->length << 2; memcpy(&prefix, xcbsetup, sizeof(prefix)); setup = (char *) xcbsetup; @@ -673,7 +673,7 @@ XOpenDisplay ( (void) XSynchronize(dpy, _Xdebug); #if USE_XCB - dpy->bigreq_size = xcb_get_maximum_request_length(dpy->xcl->connection); + dpy->bigreq_size = xcb_get_maximum_request_length(dpy->xcb->connection); if(dpy->bigreq_size <= dpy->max_request_size) dpy->bigreq_size = 0; #endif /* USE_XCB */ @@ -907,7 +907,7 @@ void _XFreeDisplayStructure(dpy) Xfree (dpy->filedes); #if USE_XCB - _XFreeXCLStructure(dpy); + _XFreeX11XCBStructure(dpy); #endif /* USE_XCB */ Xfree ((char *)dpy); @@ -921,8 +921,8 @@ static void OutOfMemory (dpy, setup) char *setup; { #if USE_XCB - if(dpy->xcl->connection) - xcb_disconnect(dpy->xcl->connection); + if(dpy->xcb->connection) + xcb_disconnect(dpy->xcb->connection); #else /* !USE_XCB */ _XDisconnectDisplay (dpy->trans_conn); #endif /* USE_XCB */ diff --git a/src/xclint.h b/src/Xxcbint.h index 8e60a538..28edae82 100644 --- a/src/xclint.h +++ b/src/Xxcbint.h @@ -1,12 +1,12 @@ -/* Copyright (C) 2003-2005 Jamey Sharp. +/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett * This file is licensed under the MIT license. See the file COPYING. */ -#ifndef XCLINT_H -#define XCLINT_H +#ifndef XXCBINT_H +#define XXCBINT_H #include <assert.h> #include <X11/Xlibint.h> -#include <X11/xcl.h> +#include <X11/Xlib-xcb.h> #define XCB_SEQUENCE_COMPARE(a,op,b) ((int) ((a) - (b)) op 0) #define assert_sequence_less(a,b) assert(XCB_SEQUENCE_COMPARE((a), <=, (b))) @@ -17,7 +17,7 @@ struct PendingRequest { unsigned int sequence; }; -typedef struct XCLPrivate { +typedef struct _X11XCBPrivate { struct _XLockPtrs lock_fns; xcb_connection_t *connection; PendingRequest *pending_requests; @@ -32,14 +32,14 @@ typedef struct XCLPrivate { int reply_consumed; enum XEventQueueOwner event_owner; XID next_xid; -} XCLPrivate; +} _X11XCBPrivate; -/* xcl/display.c */ +/* xcb_disp.c */ int _XConnectXCB(Display *dpy, _Xconst char *display, char **fullnamep, int *screenp); -void _XFreeXCLStructure(Display *dpy); +void _XFreeX11XCBStructure(Display *dpy); -/* xcl/xcblock.c */ +/* xcb_lock.c */ int _XCBInitDisplayLock(Display *dpy); @@ -49,4 +49,4 @@ int _XCBInitDisplayLock(Display *dpy); void _XGetXCBBuffer(Display *dpy); void _XPutXCBBuffer(Display *dpy); -#endif /* XCLINT_H */ +#endif /* XXCBINT_H */ diff --git a/src/xcl/x11-xcb.c b/src/x11_xcb.c index 88509200..3ddf403b 100644 --- a/src/xcl/x11-xcb.c +++ b/src/x11_xcb.c @@ -2,14 +2,14 @@ * This file is licensed under the MIT license. See the file COPYING. */ #include "Xlibint.h" -#include "xclint.h" +#include "Xxcbint.h" xcb_connection_t *XGetXCBConnection(Display *dpy) { - return dpy->xcl->connection; + return dpy->xcb->connection; } void XSetEventQueueOwner(Display *dpy, enum XEventQueueOwner owner) { - dpy->xcl->event_owner = owner; + dpy->xcb->event_owner = owner; } diff --git a/src/xcl/display.c b/src/xcb_disp.c index d4a65252..c78e5040 100644 --- a/src/xcl/display.c +++ b/src/xcb_disp.c @@ -1,8 +1,8 @@ -/* Copyright (C) 2003 Jamey Sharp. +/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett * This file is licensed under the MIT license. See the file COPYING. */ #include "Xlibint.h" -#include "xclint.h" +#include "Xxcbint.h" #include <xcb/xcbext.h> #include <X11/Xatom.h> #include <X11/Xresource.h> @@ -61,8 +61,8 @@ int _XConnectXCB(Display *dpy, _Xconst char *display, char **fullnamep, int *scr dpy->fd = -1; - dpy->xcl = Xcalloc(1, sizeof(XCLPrivate)); - if(!dpy->xcl) + dpy->xcb = Xcalloc(1, sizeof(_X11XCBPrivate)); + if(!dpy->xcb) return 0; if(!xcb_parse_display(display, &host, &n, screenp)) @@ -82,22 +82,22 @@ int _XConnectXCB(Display *dpy, _Xconst char *display, char **fullnamep, int *scr dpy->fd = xcb_get_file_descriptor(c); - dpy->xcl->connection = c; - dpy->xcl->pending_requests_tail = &dpy->xcl->pending_requests; - dpy->xcl->next_xid = xcb_generate_id(dpy->xcl->connection); + dpy->xcb->connection = c; + dpy->xcb->pending_requests_tail = &dpy->xcb->pending_requests; + dpy->xcb->next_xid = xcb_generate_id(dpy->xcb->connection); return !xcb_connection_has_error(c); } -void _XFreeXCLStructure(Display *dpy) +void _XFreeX11XCBStructure(Display *dpy) { /* reply_data was allocated by system malloc, not Xmalloc */ - free(dpy->xcl->reply_data); - while(dpy->xcl->pending_requests) + free(dpy->xcb->reply_data); + while(dpy->xcb->pending_requests) { - PendingRequest *tmp = dpy->xcl->pending_requests; - dpy->xcl->pending_requests = tmp->next; + PendingRequest *tmp = dpy->xcb->pending_requests; + dpy->xcb->pending_requests = tmp->next; free(tmp); } - Xfree(dpy->xcl); + Xfree(dpy->xcb); } diff --git a/src/xcl/io.c b/src/xcb_io.c index e2ba9923..39af0c22 100644 --- a/src/xcl/io.c +++ b/src/xcb_io.c @@ -1,8 +1,8 @@ -/* Copyright (C) 2003-2004 Jamey Sharp. +/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett * This file is licensed under the MIT license. See the file COPYING. */ #include "Xlibint.h" -#include "xclint.h" +#include "Xxcbint.h" #include <xcb/xcbext.h> #include <xcb/xcbxlib.h> @@ -95,12 +95,12 @@ static void call_handlers(Display *dpy, xcb_generic_reply_t *buf) static void process_responses(Display *dpy, int wait_for_first_event, xcb_generic_error_t **current_error, unsigned long current_request) { void *reply; - xcb_generic_event_t *event = dpy->xcl->next_event; + xcb_generic_event_t *event = dpy->xcb->next_event; xcb_generic_error_t *error; PendingRequest *req; int ret; - xcb_connection_t *c = dpy->xcl->connection; - if(!event && dpy->xcl->event_owner == XlibOwnsEventQueue) + xcb_connection_t *c = dpy->xcb->connection; + if(!event && dpy->xcb->event_owner == XlibOwnsEventQueue) { if(wait_for_first_event) { @@ -114,7 +114,7 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi while(1) { - req = dpy->xcl->pending_requests; + req = dpy->xcb->pending_requests; if(event && XCB_SEQUENCE_COMPARE(event->full_sequence, <=, current_request) && (!req || XCB_SEQUENCE_COMPARE(event->full_sequence, <=, req->sequence))) { @@ -128,9 +128,9 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi event = xcb_poll_for_event(c, &ret); } else if(req && XCB_SEQUENCE_COMPARE(req->sequence, <, current_request) - && xcb_poll_for_reply(dpy->xcl->connection, req->sequence, &reply, &error)) + && xcb_poll_for_reply(dpy->xcb->connection, req->sequence, &reply, &error)) { - dpy->xcl->pending_requests = req->next; + dpy->xcb->pending_requests = req->next; if(!reply) reply = error; if(reply) @@ -144,10 +144,10 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi else break; } - if(!dpy->xcl->pending_requests) - dpy->xcl->pending_requests_tail = &dpy->xcl->pending_requests; + if(!dpy->xcb->pending_requests) + dpy->xcb->pending_requests_tail = &dpy->xcb->pending_requests; - dpy->xcl->next_event = event; + dpy->xcb->next_event = event; if(xcb_connection_has_error(c)) _XIOError(dpy); @@ -157,7 +157,7 @@ static void process_responses(Display *dpy, int wait_for_first_event, xcb_generi int _XEventsQueued(Display *dpy, int mode) { - if(dpy->xcl->event_owner != XlibOwnsEventQueue) + if(dpy->xcb->event_owner != XlibOwnsEventQueue) return 0; if(mode == QueuedAfterFlush) @@ -174,7 +174,7 @@ int _XEventsQueued(Display *dpy, int mode) void _XReadEvents(Display *dpy) { _XSend(dpy, 0, 0); - if(dpy->xcl->event_owner != XlibOwnsEventQueue) + if(dpy->xcb->event_owner != XlibOwnsEventQueue) return; check_internal_connections(dpy); process_responses(dpy, 1, 0, dpy->request); @@ -189,11 +189,11 @@ void _XReadEvents(Display *dpy) */ void _XSend(Display *dpy, const char *data, long size) { - xcb_connection_t *c = dpy->xcl->connection; + xcb_connection_t *c = dpy->xcb->connection; - assert(!dpy->xcl->request_extra); - dpy->xcl->request_extra = data; - dpy->xcl->request_extra_size = size; + assert(!dpy->xcb->request_extra); + dpy->xcb->request_extra = data; + dpy->xcb->request_extra_size = size; /* give dpy->buffer to XCB */ _XPutXCBBuffer(dpy); @@ -229,9 +229,9 @@ void _XFlush(Display *dpy) static int _XIDHandler(Display *dpy) { - XID next = xcb_generate_id(dpy->xcl->connection); + XID next = xcb_generate_id(dpy->xcb->connection); LockDisplay(dpy); - dpy->xcl->next_xid = next; + dpy->xcb->next_xid = next; if(dpy->flags & XlibDisplayPrivSync) { dpy->synchandler = dpy->savedsynchandler; @@ -245,8 +245,8 @@ _XIDHandler(Display *dpy) /* _XAllocID - resource ID allocation routine. */ XID _XAllocID(Display *dpy) { - XID ret = dpy->xcl->next_xid; - dpy->xcl->next_xid = 0; + XID ret = dpy->xcb->next_xid; + dpy->xcb->next_xid = 0; assert(!(dpy->flags & XlibDisplayPrivSync)); dpy->savedsynchandler = dpy->synchandler; @@ -261,16 +261,16 @@ void _XAllocIDs(Display *dpy, XID *ids, int count) int i; _XPutXCBBuffer(dpy); for (i = 0; i < count; i++) - ids[i] = xcb_generate_id(dpy->xcl->connection); + ids[i] = xcb_generate_id(dpy->xcb->connection); _XGetXCBBuffer(dpy); } static void _XFreeReplyData(Display *dpy, Bool force) { - if(!force && dpy->xcl->reply_consumed < dpy->xcl->reply_length) + if(!force && dpy->xcb->reply_consumed < dpy->xcb->reply_length) return; - free(dpy->xcl->reply_data); - dpy->xcl->reply_data = 0; + free(dpy->xcb->reply_data); + dpy->xcb->reply_data = 0; } /* @@ -282,11 +282,11 @@ static void _XFreeReplyData(Display *dpy, Bool force) Status _XReply(Display *dpy, xReply *rep, int extra, Bool discard) { xcb_generic_error_t *error; - xcb_connection_t *c = dpy->xcl->connection; + xcb_connection_t *c = dpy->xcb->connection; unsigned long request = dpy->request; char *reply; - assert(!dpy->xcl->reply_data); + assert(!dpy->xcb->reply_data); UnlockDisplay(dpy); reply = xcb_wait_for_reply(c, request, &error); @@ -351,17 +351,17 @@ Status _XReply(Display *dpy, xReply *rep, int extra, Bool discard) dpy->last_request_read = request; /* there's no error and we have a reply. */ - dpy->xcl->reply_data = reply; - dpy->xcl->reply_consumed = sizeof(xReply) + (extra * 4); - dpy->xcl->reply_length = sizeof(xReply); - if(dpy->xcl->reply_data[0] == 1) - dpy->xcl->reply_length += (((xcb_generic_reply_t *) dpy->xcl->reply_data)->length * 4); + dpy->xcb->reply_data = reply; + dpy->xcb->reply_consumed = sizeof(xReply) + (extra * 4); + dpy->xcb->reply_length = sizeof(xReply); + if(dpy->xcb->reply_data[0] == 1) + dpy->xcb->reply_length += (((xcb_generic_reply_t *) dpy->xcb->reply_data)->length * 4); /* error: Xlib asks too much. give them what we can anyway. */ - if(dpy->xcl->reply_length < dpy->xcl->reply_consumed) - dpy->xcl->reply_consumed = dpy->xcl->reply_length; + if(dpy->xcb->reply_length < dpy->xcb->reply_consumed) + dpy->xcb->reply_consumed = dpy->xcb->reply_length; - memcpy(rep, dpy->xcl->reply_data, dpy->xcl->reply_consumed); + memcpy(rep, dpy->xcb->reply_data, dpy->xcb->reply_consumed); _XFreeReplyData(dpy, discard); return 1; } @@ -371,10 +371,10 @@ int _XRead(Display *dpy, char *data, long size) assert(size >= 0); if(size == 0) return 0; - assert(dpy->xcl->reply_data != 0); - assert(dpy->xcl->reply_consumed + size <= dpy->xcl->reply_length); - memcpy(data, dpy->xcl->reply_data + dpy->xcl->reply_consumed, size); - dpy->xcl->reply_consumed += size; + assert(dpy->xcb->reply_data != 0); + assert(dpy->xcb->reply_consumed + size <= dpy->xcb->reply_length); + memcpy(data, dpy->xcb->reply_data + dpy->xcb->reply_consumed, size); + dpy->xcb->reply_consumed += size; _XFreeReplyData(dpy, False); return 0; } @@ -387,13 +387,13 @@ int _XRead(Display *dpy, char *data, long size) void _XReadPad(Display *dpy, char *data, long size) { _XRead(dpy, data, size); - dpy->xcl->reply_consumed += -size & 3; + dpy->xcb->reply_consumed += -size & 3; _XFreeReplyData(dpy, False); } /* Read and discard "n" 8-bit bytes of data */ void _XEatData(Display *dpy, unsigned long n) { - dpy->xcl->reply_consumed += n; + dpy->xcb->reply_consumed += n; _XFreeReplyData(dpy, False); } diff --git a/src/xcl/xcblock.c b/src/xcb_lock.c index b9b7f5f6..77061d00 100644 --- a/src/xcl/xcblock.c +++ b/src/xcb_lock.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2003-2004 Jamey Sharp. +/* Copyright (C) 2003-2006 Jamey Sharp, Josh Triplett * This file is licensed under the MIT license. See the file COPYING. */ #ifdef HAVE_CONFIG_H @@ -7,7 +7,7 @@ #include "Xlibint.h" #include "locking.h" -#include "xclint.h" +#include "Xxcbint.h" #include <xcb/xcbext.h> #include <xcb/xcbxlib.h> @@ -15,34 +15,34 @@ static void _XCBLockDisplay(Display *dpy) { - if(dpy->xcl->lock_fns.lock_display) - dpy->xcl->lock_fns.lock_display(dpy); - xcb_xlib_lock(dpy->xcl->connection); + if(dpy->xcb->lock_fns.lock_display) + dpy->xcb->lock_fns.lock_display(dpy); + xcb_xlib_lock(dpy->xcb->connection); _XGetXCBBuffer(dpy); } static void _XCBUnlockDisplay(Display *dpy) { _XPutXCBBuffer(dpy); - assert(dpy->xcl->partial_request == 0); - assert(xcb_get_request_sent(dpy->xcl->connection) == dpy->request); + assert(dpy->xcb->partial_request == 0); + assert(xcb_get_request_sent(dpy->xcb->connection) == dpy->request); /* Traditional Xlib does this in _XSend; see the Xlib/XCB version * of that function for why we do it here instead. */ _XSetSeqSyncFunction(dpy); - xcb_xlib_unlock(dpy->xcl->connection); - if(dpy->xcl->lock_fns.unlock_display) - dpy->xcl->lock_fns.unlock_display(dpy); + xcb_xlib_unlock(dpy->xcb->connection); + if(dpy->xcb->lock_fns.unlock_display) + dpy->xcb->lock_fns.unlock_display(dpy); } int _XCBInitDisplayLock(Display *dpy) { if(!dpy->lock_fns && !(dpy->lock_fns = Xcalloc(1, sizeof(dpy->lock_fns)))) return 0; - dpy->xcl->lock_fns.lock_display = dpy->lock_fns->lock_display; + dpy->xcb->lock_fns.lock_display = dpy->lock_fns->lock_display; dpy->lock_fns->lock_display = _XCBLockDisplay; - dpy->xcl->lock_fns.unlock_display = dpy->lock_fns->unlock_display; + dpy->xcb->lock_fns.unlock_display = dpy->lock_fns->unlock_display; dpy->lock_fns->unlock_display = _XCBUnlockDisplay; return 1; } @@ -50,10 +50,10 @@ int _XCBInitDisplayLock(Display *dpy) void _XGetXCBBuffer(Display *dpy) { static const xReq dummy_request; - unsigned int xcb_req = xcb_get_request_sent(dpy->xcl->connection); + unsigned int xcb_req = xcb_get_request_sent(dpy->xcb->connection); /* if Xlib has a partial request pending then XCB doesn't know about * the current request yet */ - if(dpy->xcl->partial_request) + if(dpy->xcb->partial_request) ++xcb_req; assert(XCB_SEQUENCE_COMPARE(xcb_req, >=, dpy->request)); @@ -120,14 +120,14 @@ static inline int issue_complete_request(Display *dpy, int veclen, struct iovec /* if we don't own the event queue, we have to ask XCB to set our * errors aside for us. */ - if(dpy->xcl->event_owner != XlibOwnsEventQueue) + if(dpy->xcb->event_owner != XlibOwnsEventQueue) flags |= XCB_REQUEST_CHECKED; /* XCB will always skip request 0; account for that in the Xlib count */ - if (xcb_get_request_sent(dpy->xcl->connection) == 0xffffffff) + if (xcb_get_request_sent(dpy->xcb->connection) == 0xffffffff) dpy->request++; /* send the accumulated request. */ - sequence = xcb_send_request(dpy->xcl->connection, flags, vec, &xcb_req); + sequence = xcb_send_request(dpy->xcb->connection, flags, vec, &xcb_req); if(!sequence) _XIOError(dpy); @@ -144,8 +144,8 @@ static inline int issue_complete_request(Display *dpy, int veclen, struct iovec assert(req); req->next = 0; req->sequence = sequence; - *dpy->xcl->pending_requests_tail = req; - dpy->xcl->pending_requests_tail = &req->next; + *dpy->xcb->pending_requests_tail = req; + dpy->xcb->pending_requests_tail = &req->next; } return 1; } @@ -153,8 +153,8 @@ static inline int issue_complete_request(Display *dpy, int veclen, struct iovec void _XPutXCBBuffer(Display *dpy) { static char const pad[3]; - const int padsize = -dpy->xcl->request_extra_size & 3; - xcb_connection_t *c = dpy->xcl->connection; + const int padsize = -dpy->xcb->request_extra_size & 3; + xcb_connection_t *c = dpy->xcb->connection; _XExtension *ext; struct iovec iov[6]; @@ -164,20 +164,20 @@ void _XPutXCBBuffer(Display *dpy) for(ext = dpy->flushes; ext; ext = ext->next_flush) { ext->before_flush(dpy, &ext->codes, dpy->buffer, dpy->bufptr - dpy->buffer); - if(dpy->xcl->request_extra) + if(dpy->xcb->request_extra) { - ext->before_flush(dpy, &ext->codes, dpy->xcl->request_extra, dpy->xcl->request_extra_size); + ext->before_flush(dpy, &ext->codes, dpy->xcb->request_extra, dpy->xcb->request_extra_size); if(padsize) ext->before_flush(dpy, &ext->codes, pad, padsize); } } - iov[2].iov_base = dpy->xcl->partial_request; - iov[2].iov_len = dpy->xcl->partial_request_offset; + iov[2].iov_base = dpy->xcb->partial_request; + iov[2].iov_len = dpy->xcb->partial_request_offset; iov[3].iov_base = dpy->buffer; iov[3].iov_len = dpy->bufptr - dpy->buffer; - iov[4].iov_base = (caddr_t) dpy->xcl->request_extra; - iov[4].iov_len = dpy->xcl->request_extra_size; + iov[4].iov_base = (caddr_t) dpy->xcb->request_extra; + iov[4].iov_len = dpy->xcb->request_extra_size; iov[5].iov_base = (caddr_t) pad; iov[5].iov_len = padsize; @@ -185,32 +185,32 @@ void _XPutXCBBuffer(Display *dpy) /* empty */; /* first discard any completed partial_request. */ - if(iov[2].iov_len == 0 && dpy->xcl->partial_request) + if(iov[2].iov_len == 0 && dpy->xcb->partial_request) { - free(dpy->xcl->partial_request); - dpy->xcl->partial_request = 0; - dpy->xcl->partial_request_offset = 0; + free(dpy->xcb->partial_request); + dpy->xcb->partial_request = 0; + dpy->xcb->partial_request_offset = 0; } /* is there anything to copy into partial_request? */ if(iov[3].iov_len != 0 || iov[4].iov_len != 0 || iov[5].iov_len != 0) { int i; - if(!dpy->xcl->partial_request) + if(!dpy->xcb->partial_request) { size_t len = request_length(iov + 3); - assert(!dpy->xcl->partial_request_offset); - dpy->xcl->partial_request = malloc(len); - assert(dpy->xcl->partial_request); + assert(!dpy->xcb->partial_request_offset); + dpy->xcb->partial_request = malloc(len); + assert(dpy->xcb->partial_request); } for(i = 3; i < sizeof(iov) / sizeof(*iov); ++i) { - memcpy(dpy->xcl->partial_request + dpy->xcl->partial_request_offset, iov[i].iov_base, iov[i].iov_len); - dpy->xcl->partial_request_offset += iov[i].iov_len; + memcpy(dpy->xcb->partial_request + dpy->xcb->partial_request_offset, iov[i].iov_base, iov[i].iov_len); + dpy->xcb->partial_request_offset += iov[i].iov_len; } } - dpy->xcl->request_extra = 0; - dpy->xcl->request_extra_size = 0; + dpy->xcb->request_extra = 0; + dpy->xcb->request_extra_size = 0; dpy->bufptr = dpy->buffer; } |