2005-12-28 Jamey Sharp * configure.ac: Replace obsolete AC_OUTPUT(...) call with AC_CONFIG_FILES(...) and the no-argument AC_OUTPUT macro. 2005-12-24 Jamey Sharp * src/xcb_xlib.c, src/xcbxlib.h, src/Makefile.am: New header and two functions specifically for Xlib's use, so we can quit installing xcbint.h. * src/xcb_out.c, src/xcbint.h: Now that Xlib uses entirely public API, force_sequence_wrap is purely internal to xcb_out. 2005-12-20 Jamey Sharp * src/xcb_util.c: Use AF_UNIX instead of PF_UNIX, because they're interchangeable on Linux (and 4.x BSD?) but on MacOS X the latter is not available. Thanks to Ian Osgood for testing. 2005-12-12 Jamey Sharp * src/xcb_util.c: Rewrite XCBParseDisplay to handle all error cases correctly. Thanks to Travis Spencer for pointing out a problem with the previous sscanf call; turns out that sscanf won't do what I want anyway, so this version just uses strtoul. 2005-12-12 Jamey Sharp * tests/check_public.c: Fix segfault in fail_unless calls and provide more useful error messages. Also remove DISPLAY from the environment and test ParseDisplay on a null pointer. 2005-12-07 Jamey Sharp * src/xcb.h, src/xcb_in.c: Use GCC attribute extension, if available, to mark some functions deprecated; and rename XCBWaitEvent to XCBWaitForEvent, with a deprecated backwards compatibility function. 2005-12-07 Jamey Sharp * src/xcb.h, src/xcb_conn.c, src/xcb_util.c: Rename XCBConnect to XCBConnectToFD, and implement XCBConnect and XCBConnectToDisplayWithAuthInfo, as specified by the XcbApi documentation. Provide a trivial implementation of deprecated XCBConnectBasic for backwards compatibility. Fix XCBParseDisplay to accept a null screen pointer. 2005-09-30 Trevor Woerner reviewer: Jamey Sharp * Makefile.am, configure.ac, src/Makefile.am, tests/Makefile.am, src/check_all.c, src/check_public.c, src/check_suites.h: Created a new directory called "tests" where the unit tests will reside, separate from other files. Moved the unit test files from the "src" directory into the new "tests" directory. * configure.ac, tests/CheckLog.xsl, tests/.cvsignore, tests/Makefile.am, tests/check_all.c: Added an XSLT transform to post-process the XML log file which is generated by the unit test suite into an HTML page. Added the necessary hooks into the build system to have this translation occur when necessary as part of the build process. 2005-08-15 Trevor Woerner reviewer: Jamey Sharp * src/Makefile.am: Make builds work when the source and build directories are different. 2005-08-03 Trevor Woerner reviewer: Jamey Sharp * configure.ac: Allow people to not have check as long as they have at least automake version 1.9. Older versions of automake still work as long as check is installed or the NoCheck instructions are followed. 2005-07-21 Jamey Sharp * src/xcb_conn.c: Fix one uninitialized memory warning from Valgrind. More will have to wait. 2005-07-21 Jamey Sharp * src/xcb_ext.c: Fix memory leak reported by Carl Worth (thanks Carl!). 2005-05-22 Josh Triplett * src/c-client.xsl: Permit unions to have fixed-length list fields. 2005-05-21 Josh Triplett * src/c-client.xsl: In function parameters and structure fields, line up field names in the same starting column. 2005-05-17 Josh Triplett * src/c-client.xsl: Make header files self-sufficient, by including xcb.h in the generated headers rather than the generated sources. * src/xcbext.h: Make xcbext.h self-sufficient, by including xcb.h. 2005-05-17 Josh Triplett * src/c-client.xsl: Line up function parameters with opening parenthesis. 2005-05-17 Jamey Sharp * src/c-client.xsl: Improve whitespace output on function declarations. 2005-04-23 Jeremy Kolb * src/c-client.xsl: Added list support for typedefs. GLX now compiles. 2005-04-23 Josh Triplett * src/c-client.xsl: Allow protocol descriptions to explicitly qualify types with a namespace, which should be the value of the header attribute from the protocol description containing the desired type. 2005-04-10 Jamey Sharp * src/xcb.h, src/xcb_in.c: New public function XCBGetRequestRead: returns the last sequence number that the server is known to have processed. This function enables apps to determine whether forcing a cookie is going to block. 2005-04-09 Jamey Sharp * src/xcb_ext.c: Implement XCBPrefetchExtensionData. An extension can now be in one of three states in a particular connection's cache: not queried; query cookie available; and query reply available. 2005-04-09 Jamey Sharp * src/xcb_ext.c, src/xcbint.h: Assign a display-independent unique integer to each XCBExtension structure. Use a map instead of a list for the extension cache. Key the map on the assigned integer. 2005-04-06 Jeremy Kolb * src/c-client.xsl: Added support for c types float and double. Needed for GLX extension. 2005-04-02 Jamey Sharp * src/c-client.xsl: Workaround for XSLT processors that can't understand attribute values of the form '{{ "{...}" }}'. (What? That looks completely clear to me. *grin*) 2005-04-01 Jamey Sharp * src/xcb_list.c: Make the _destroy operations no-op on null pointers. 2005-03-31 Jamey Sharp * src/xcb.h, src/xcb_conn.c, src/xcb_out.c, src/xcbint.h: Lazily check for BIG-REQUESTS support. The first call to XCBGetMaximumRequestLength takes the two-round-trip penalty for discovering BIG-REQUESTS support, and caches the result for subsequent calls. Also XCBSendRequest is now careful to only ask for the true maximum request length if the length from the connection setup data isn't sufficient for the current request. 2005-03-31 Jamey Sharp * src/xcb_in.c: Fix X error handling to, uh, not hang. 2005-03-30 Jamey Sharp * src/xcb_in.c, src/xcbint.h: Accept zero or more replies to any request. Eliminates, for the moment, nearly all run-time error checking regarding the number of replies expected for a particular request. Also breaks the unexpected reply callback, which is OK because I was going to remove it anyway, and now I've done so. 2005-03-30 Jamey Sharp * src/xcb_list.c, src/xcbint.h: Add a map ADT implemented using the list ADT. 2005-03-28 Vincent Torri * doc/tutorial/index.html, doc/tutorial/xcb.css: Add a tutorial 2005-03-27 Jeremy Kolb * src/Makefile.am: Added xf86dri (xcb-proto/src/extensions/xf86dri.h). Removed compilation of record as it's broken. 2005-03-25 Jamey Sharp * src/xcb_in.c: Instead of storing a pending flag per reply record, look in the readers list to find out whether there's a reader waiting for the reply we've just been asked to wait for. 2005-03-25 Jamey Sharp * src/xcb_list.c, src/xcbint.h: Add _xcb_queue_is_empty. 2005-03-25 Jamey Sharp * src/xcb_in.c, src/xcb_list.c, src/xcbint.h: Add a queue ADT. Currently implemented using the list ADT, but analysis will probably suggest a better data structure. The split is intended to help that analysis. 2005-03-25 Jamey Sharp * src/xcb_in.c, src/xcb_list.c, src/xcbint.h: Remove _xcb_list_length. (Two callers in xcb_in didn't actually care about the returned value beyond "empty" or "non-empty", which they can get other ways.) _xcb_in_events_length became obsolete in the process, and I took _xcb_list_clear out of xcbint.h while I was at it because only _xcb_list_delete calls it these days. 2005-03-25 Jamey Sharp * src/xcb.h, src/xcb_in.c: Remove XCBEventQueueLength and XCBEventQueueClear: they're not part of the new API, and they interfere with analysis of the _xcb_list implementation. 2005-03-24 Josh Triplett * configure.ac: Change pdx.freedesktop.org to lists.freedesktop.org in package email address. 2005-03-23 Jamey Sharp * src/xcb_conn.c, src/xcb_in.c: avn@daemon.hole.ru pointed out two memory leaks in XCB, which this update fixes. I also introduced a third a couple of days ago, which this fixes as well. 2005-03-23 Jamey Sharp * src/xcb_in.c: Quit storing an "error" flag: it's redundant with the contents of the packet that it was stored with. 2005-03-22 Jamey Sharp * src/xcb_in.c, src/xcbint.h: My recent Xlib patch stressed XCB's pending reply queue in ways it has never been stressed before, with thousands of entries. Profiling revealed that wake_up_next_reader was taking most of the cycles of my test app with its linear search of the reply queue. So I gave it its own 'readers' queue, which can have at most one entry per thread, and which can be no more than the number of pending replies. In the current implementation the readers queue uses only constant-time operations, too. 2005-03-20 Jamey Sharp * src/xcb_in.c: Wait for the last known read sequence number to pass the request we're waiting for, instead of checking whether data has arrived for the current request. Causes null to be returned if somebody screwed up by expecting a reply when none can come; relied on by new Xlib/XCB bits that intentionally and routinely screw up this way because the API doesn't give them enough information. * src/xcb_list.c, src/xcbint.h: Add _xcb_list_peek_head so Xlib doesn't have to repeatedly remove and re-insert the item at the head of its new pending_requests queue. Profiling showed that was a significant performance hit for the above-mentioned patch and with this three-line function apps are actually usable again. 2004-11-26 Josh Triplett * src/c-client.xsl: In do-request processing, use the existing num-parts variable rather than recalculating the same expression. 2004-11-26 Josh Triplett * src/c-client.xsl: * Add a list of known core types, and don't search all the protocol descriptions for types in that list. This significantly shortens the processing time. * Search for all definitions of a non-core type, not just the first, in order to check for duplicate definitions. * Add an error message for non-core types with no definitions found. 2004-11-10 Josh Triplett * src/c-client.xsl: Don't create a separate local variable for exprfields, and change an explicit xsl:for-each to an xsl:apply-templates. 2004-11-10 Josh Triplett * src/c-client.xsl: Prefix variables in request functions with "xcb_" to avoid collisions with field names. 2004-11-09 Josh Triplett * src/c-client.xsl: * src/xcb_out.c: * src/xcbext.h: More API changes: Put constant request-specific data into a static const structure in each request function. 2004-11-09 Josh Triplett * src/c-client.xsl: Add support for an tag in a function body, which indents the s it contains. * debian/.cvsignore: debian/copyright is a generated file, so add it to debian/.cvsignore 2004-11-08 Jamey Sharp * src/xcb_conn.c: Make the __thread-based assertion a compile-time option, defaulting to off. It breaks on many systems and isn't critical to XCB's functionality. 2004-11-07 Josh Triplett * c-client.xsl: Update XSLT to deal with change from extension element to extension-name and extension-xname attributes on xcb element. 2004-11-06 Josh Triplett * xcb.h: * xcb_auth.c: * xcb_conn.c: * xcb_ext.c: * xcb_in.c: * xcb_list.c: * xcb_out.c: * xcb_util.c: * xcb_xid.c: * xcbext.h: * xcbint.h: Include license in every file rather than referencing COPYING. Update copyright notices to 2004. * COPYING: Remove non-applicable licenses from COPYING file. 2004-11-06 Josh Triplett * configure.ac: * src/.cvsignore: * src/Makefile.am: * src/xcb.h: Merged changes for XML-XCB project. * src/c-client.xsl: * src/xcb.h: Add XSLT binding generator and non-M4 version of xcb.h. * src/client-c.xcb: * src/xcb.h.m4: Remove M4 binding generator and M4 version of xcb.h. * debian/changelog: * debian/control: * debian/copyright.debian: * debian/rules: Updated Debian packaging. 2004-09-30 Jamey Sharp * src/xcbext.h: * src/xcb_in.c: * src/client-c.xcb: Renamed XCBWaitReply to XCBWaitForReply for new API. 2004-09-30 Jamey Sharp * src/Makefile.am: Fix build failure when compiling tests. 2004-09-29 Jamey Sharp * src/xcb.h.m4: * src/xcb_in.c: Added XCBPollForEvent function from new API. 2004-09-29 Jamey Sharp * src/xcb.h.m4: * src/xcbext.h: * src/client-c.xcb: * src/xcb_ext.c: Update the extension cache for its new API. The optimizations that this API enables are not yet implemented, but the current implementation should at least function correctly. 2004-09-29 Jamey Sharp * src/xcb_util.c: * src/xcbext.h: Oops, XCBPopcount was supposed to change argument types too. 2004-09-29 Jamey Sharp * src/client-c.xcb: * src/xcb_util.c: * src/xcbext.h: Renamed XCBOnes to XCBPopcount as per new API spec. 2004-09-29 Jamey Sharp * src/xcbext.h: * src/xcb.h.m4: * src/Makefile.am: * src/client-c.xcb: * src/xcb_in.c: * src/xcb_out.c: * src/xcb_util.c: * src/xcb_xid.c: Moved declarations that are only useful to protocol implementations into a separate header file, xcbext.h. 2004-09-28 Jamey Sharp * src/xcbint.h: * src/xcb_conn.c: Add internal sanity check macros for sequence numbers, and invoke them every time _xcb_conn_wait is entered. 2004-09-28 Jamey Sharp * src/client-c.xcb: Allow LISTPARAMs to omit the length argument. When generating C code, a LOCALPARAM is automatically generated for the length if the length argument is omitted. 2004-08-13 Jamey Sharp * configure.ac: * src/Makefile.am: * src/.cvsignore: * src/check_all.c: * src/check_suites.h: * src/check_public.c: Add the first unit tests for XCB. This adds a build dependency on 'check'; I hope somebody will make it more of a build recommendation. 2004-08-13 Jamey Sharp * src/xcb_conn.c: Add a sanity check: assert() that _xcb_conn_wait will not be re-entered within the same thread. This turns out not to be true in some current buggy code. Xlib re-enters from _XAsyncReplyHandler in src/xcl/display.c; and the X Test Suite seems to catch SIGABRT and continue running. 2004-08-10 Jamey Sharp * src/xcb_out.c: I misread the BIG-REQUESTS specification. The long length field needs to count itself too. 2004-07-24 Jamey Sharp * src/client-c.xcb: Renamed functions that return new iterators to *Iter, to avoid conflict with similar functions that return arrays. Deprecating ARRAYFIELD in favor of LISTFIELD, which now generates both array and iterator accessors. You get an array accessor as long as the element type is fixed length; you get an interator accessor as long as the base type has an iterator. You always get a 'Length' function. 2004-07-24 Jamey Sharp * src/xcb_auth.c: Bart cleaned up some code that I made ugly, and I'm fixing a warning that resulted from a static function being created but not necessarily used. 2004-07-07 Jamey Sharp * src/xcb_xid.c: OK, it might be a good idea to commit something that compiles. I thought I'd tested this change... 2004-07-06 Jamey Sharp * src/xcbint.h: * src/xcb_xid.c: Added support for the XC-Misc extension's ability to request more XIDs from the server when the client runs out of them. 2004-07-06 Jamey Sharp * src/xcb.h.m4: * src/xcb_auth.c: * src/xcb_util.c: Removed XCBNextNonce, and the nonce parameter of XCBGetAuthInfo, from the API. XCB can compute that just fine without help from the application. 2004-07-06 Jamey Sharp * src/Makefile.am: Importing part of patches, adding SYNC, by Mikko Markus Torni . This needed better padding computation in XCB before it could be implemented cleanly. 2004-07-02 Jamey Sharp * src/Makefile.am: Importing part of patches, adding XC-MISC, by Mikko Markus Torni . 2004-07-02 Jamey Sharp * src/xcb.h.m4: * src/xcb_in.c: Remove XCBEventQueueRemove and XCBEventQueueFind. Their existence in the API constrains the implementation, and they're not useful for real code, like toolkits, anyway. 2004-07-02 Jamey Sharp * src/client-c.xcb: * src/xcb.h.m4: XCB headers are now compatible with C++ source. 2004-07-02 Jamey Sharp * src/client-c.xcb: * src/xcb.h.m4: Keith's fix for padding didn't quite work, despite looking quite sensible at the time. Replaced XCB_TYPE_CEIL with XCB_TYPE_PAD and made all the iterators, lists, and arrays count the number of bytes from the beginning of the current request. 2004-07-02 Jamey Sharp * src/xcb_out.c: * src/xcbint.h: Force a response from the server if we haven't seen one in 65530 requests. If you don't do this, XCB gets confused the next time it waits for a reply. 2004-06-16 Keith Packard * src/client-c.xcb: * src/xcb.h.m4: Must round datatype lengths to 4-byte boundary for NEXTFIELD and End macros. Created new XCB_TYPE_CEIL macro for this purpose and used it in a couple of places. It is to be hoped that this represents all of the locations that need changing...