H.2 Miscellaneous Xlib Changes

A new type, XPointer, has been defined to replace caddr_t, which is not a standard type and is therefore not necessarily portable. (The type XtPointer was added to the X11R4 X Toolkit for the same reason.) An XPointer is a typedef for a char *, and occurs most noticeably in the XrmValue and XrmOptionDescRec structures.

The X11R5 distribution installs the file XKeysymDB in /usr/lib/X11. This file contains a list of vendor-private keysyms names and their corresponding values. It is required for the correct operation of many Motif applications and any application that wants to make use of vendor-specific keys on a keyboard. This file was in the X11R4 distribution, but was not installed by default.

A new function, XFlushGC(), forces Xlib to write its cached GC changes to the X server. For efficiency, Xlib combines multiple GC changes into a single server request whenever multiple changes to a GC occur before a use of that GC. It is possible for extensions to X to use GCs in ways that Xlib is not aware of, and this can mean that requests made by the extension client library may not operate with the expected contents of the GC. XFlushGC() is provided to address this problem.

The XErrorEvent structure used by Xlib contains only 32 bits of data specific to the error, which is usually used to return a resource ID. This is sufficient for all core X errors, but may not be enough for extensions (notably PEX). There is plenty of room in the protocol error structure ...

Get XLIB Programming Manual, Rel. 5, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.